Räkna ut decimaler på pi med hjälp av kalkylprogram eller programmering

Från Wikiskola
Hoppa till navigering Hoppa till sök
Mål för undervisningen Kom igång med programmering i matematiken.

Målet är att du ska köra ditt första program för att utföra matematiska beräkningar. Du bör testa att modifiera algoritmen så att dina beräkningar blir mer effektiva.

Målet är inte att du ska lära dig programmering på matematiklektionen men det oundvikligt att du ändå lär dig lite kod.


Här finns färdiga kodexempel som du kan använda för att testa kombinationen programmering och matematik.

Koden beräknar ett närmevärde på pi genom att omväxlande addera respektive subtrahera allt mindre tal Det är en av de första algoritmerna för att beräkna pi och den är inte särskilt effektiv. Hur bra får du undersöka själv. Genom att följa länkarna nedan kommer du att hitta mycket bättre algoritmer.

Skälet att vi valde denna algoritm är att den är lätt att programmera och därför överskådlig så det är enkelt att förstå programmet.

Serier

Vi tar ett enkelt exempel från första länken nedan och gör det i kalkylprogram och i Python

the Leibniz formula for [math]\displaystyle{ \pi }[/math], named after Gottfried Leibniz , states that

[math]\displaystyle{ 1 \,-\, \frac{1}{3} \,+\, \frac{1}{5} \,-\, \frac{1}{7} \,+\, \frac{1}{9} \,-\, \cdots \,=\, \frac{\pi}{4}. }[/math]

eller

[math]\displaystyle{ \pi = 4 (1 \,-\, \frac{1}{3} \,+\, \frac{1}{5} \,-\, \frac{1}{7} \,+\, \frac{1}{9} \,-\, \cdots ) }[/math]

Exempel med kalkylark

Gregory Leibnitz - Håkan exempel.

Exempel med Pyhton3 kod

Här finns en lathund till Python.

#4*(1 - (1/3) + (1/5) - (1/7)...) ~ Pi
iterationer = int(input("Hur många iterationer?"))
pi = 0
n = 1
t = 1
for i in range(iterationer):
	pi += (1/n)*t
	n += 2
	t = t*(-1)
	print(i+1, pi*4)

Exempel i JavaScript

let pi = 1, b = 1;

for(let i = 3 ;; i += 2) {
	pi += (b *= -1) * 1/i;

	console.log(pi * 4);
}

Exempel i Java

public static void main(String[] args) {
	double pi = 1, b = 1;
	
	for(int i = 3 ;; i += 2) {
		pi += (double) (b *= -1) * 1/i;
		
		System.out.println(pi * 4);
	}
}

Monte Carlo-simulering

Generating π from 1,000 random numbers

Experimentell bestämning av [math]\displaystyle{ \pi }[/math] är kanske inte den bästa av idéer. Låt datorn göra jobbet istället.

Monte Carlo-simulering

Värt att pröva. Mer info kommer .

Länkar

https://en.wikipedia.org/wiki/Pi#Computer_era_and_iterative_algorithms
https://en.wikipedia.org/wiki/Approximations_of_%CF%80
https://sv.wikipedia.org/wiki/Pi