Ett hyggligt bra värde på pi

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
4kTRB
Inlägg: 20702
Blev medlem: 16 augusti 2009, 19:04:48

Ett hyggligt bra värde på pi

Inlägg av 4kTRB »

24*atan(1/8) + 8*atan(1/57) + 4*atan(1/239)

Räcker säkert i många tillämpningar.
Kanske i microprocessorsammanhang? Fast det kanske finns snabbare sätt att beräkna pi om det
skulle behövas?
Om det finns någon fortsättning vet jag inte, alltså ett mönster för att få ännu bättre likhet.
Användarvisningsbild
ahlsten
Inlägg: 659
Blev medlem: 12 november 2005, 00:24:14
Ort: Uppsala

Re: Ett hyggligt bra värde på pi

Inlägg av ahlsten »

Ska vi blanda in inverstrigonometriska funktioner är nog 2*asin(1) en bra "approximation".
Användarvisningsbild
Icecap
Inlägg: 26637
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Ett hyggligt bra värde på pi

Inlägg av Icecap »

Då dessa uträkningar vill resultera i en himla massa bits kan det kvitta i µC-sammanhang, där använder man ju ändå bara 32 bit flyttal om man absolut måste använda flyttal alls... En float är ju ett 16-bit flyttal och där duger 3,14159265 rikligt bra som en definition.

Så varför räkna ut vad som kan definieras utmärkt med de begränsningar som redan finns?
Användarvisningsbild
4kTRB
Inlägg: 20702
Blev medlem: 16 augusti 2009, 19:04:48

Re: Ett hyggligt bra värde på pi

Inlägg av 4kTRB »

atan x går serieutveckla och få bra närmevärde på.

atan x = x - x^3/3 + x^5/5 - x^7/7 + ....

pi/4 = 1 - 1/3 + 1/5 - 1/7 + ....
bearing
Inlägg: 11675
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Ett hyggligt bra värde på pi

Inlägg av bearing »

Pi går ju att beräkna genom att t.ex. dividera omkretsen av en n-hörning med dess "medeldiameter". Ju större n, ju bättre approximation.

Men när behöver man beräkna ett värde på pi?
När man tappat minnet, hamnat på en öde ö och ska tillverka en cirkulär hydda?
Användarvisningsbild
Walle
Moderator
Inlägg: 7701
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Re: Ett hyggligt bra värde på pi

Inlägg av Walle »

Man kommer hyffsat långt med denna: http://www.eveandersson.com/pi/digits/1000000

Kanske svårt på en öde ö dock (;
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Ett hyggligt bra värde på pi

Inlägg av jesse »

Beräkna Pi gör man väl bara för nöjes skull, oavsett hur noggrann man vill vara och oavsett sifferformat. Vill man använda Pi så är det väl smartare att bara ange siffran. Det tar ju betydligt mindre utrymme än själva algoritmen, och det tar ingen tid.

Pi binärt: 11.0010010000111111011010101000100010000101101000110000100011010001100010011

Pi som 32-bitars flyttal:
Assume that we have the following 32 bit floating point value:

0100 | 0000 | 0100 | 1001 | 0000 | 1111 | 1101 | 1011
^ ^
Bit 31 Bit 0

For simplicity's sake, the Hex representation of this value is 40490FDB. Using the IEEE 32 bit floating point definition, the mantissa is 490FDB (bits 22 through zero); the exponent is bits 30 through 23 (10000000) which is the Hex value of 80; and the sign (bit 31) is zero, which means it is positive.

For the 8087 math co-processor, the exponent has an assumed one, thus 80 + 1 = 81 which is 129 decimal. The real exponent is 129 minus 128 which is 1. This value of 1 is raised by the power of two and the resulting value (21 = 2) is used to multiply the mantissa with.

The mantissa is 490FDB which is a 22 bit number that represents the range from one to two. Thus, 490FDB is normalized by dividing it by 800000 (Hex) which is .570796 (decimal). Since the normalization bit is omitted, we add 1 to .570796 and get 1.570796. Multiply 1.570796 by 21 and we get 3.14159.

This turns out to be the value of Pi (p). Thus, the 32 bit floating value shown above (40490FDB Hex) is the IEEE 32 bit floating point format of Pi!

You can verify this with the following line in C:

float f=3.1415926535; printf("%IX",*(long*)&f);
Rattus1975
Inlägg: 21
Blev medlem: 14 februari 2010, 19:10:22
Ort: Halmstad

Re: Ett hyggligt bra värde på pi

Inlägg av Rattus1975 »

Sitter man och skissar på en ny dödsstjärna bör man minst använda 22/7 som approx.

Själv är jag inte bättre snickare än att 3 är en fullt godtagbar approximation :(
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Ett hyggligt bra värde på pi

Inlägg av jesse »

Ojdå. 22/7 ger bara 0.04% fel. Imponerande.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Ett hyggligt bra värde på pi

Inlägg av Swech »

Jag hörde att just på grund av detta så skall nästa dödsstjärna bli en kub

Swech
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Ett hyggligt bra värde på pi

Inlägg av blueint »

4kTRB, Varför behövs sådan precision på pi ?
bearing
Inlägg: 11675
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Ett hyggligt bra värde på pi

Inlägg av bearing »

355/113 är rätt bra också. Mindre än 1/10-dels promille fel.

Publicerades visst på 1600-talet i västvärlden, men användes redan i Kina år 480.
Nerre
Inlägg: 27208
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Ett hyggligt bra värde på pi

Inlägg av Nerre »

Swech skrev:Jag hörde att just på grund av detta så skall nästa dödsstjärna bli en kub
Resistance is futile.
Användarvisningsbild
AndLi
Inlägg: 18262
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Ett hyggligt bra värde på pi

Inlägg av AndLi »

Men frågan måste väll vara, varför skulle man vilja beräkna pi i en µC? Det är ju inte ett värde som ändrar sig, inte så ofta i alla fall :)
Användarvisningsbild
Walle
Moderator
Inlägg: 7701
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Re: Ett hyggligt bra värde på pi

Inlägg av Walle »

säker? Tänk vad förvånade alla skulle bli om pi helt plötsligt var 1.4 :D
Skriv svar