Sida 1 av 1

asin/acos, dålig precicion då x --> 1

Postat: 29 januari 2026, 17:03:31
av Marta
Har rensat upp ett fplib för PICoch det fungerar hyfsat i de flesta fall, men asin/acos använder atan för att spara plats.

Antog att det var sqrt(1-x*x) som var orsaken. Provade att istället använda sqrt((1-x)(1+x)), men lika uselt resultat.

number 0.99999999999999978
result 1.5707962425011994
correct 1.5707963057214724
error -6.3220273016639794e-08 errcode: 00

Med tal som inte är på infinitesimalt avstånd från ett är felet kring -15 och -16. Finns det något enkelt sätt att komma ifrån felet?


För atan2 prövade jag att vända divisionen och sedan göra pi/2-result. Blev inget resultat på "svåra" tal som driver upp ingångsvärdet till atan.
Antar enkel division är ett primitivt sätt att göra atan2.

Re: asin/acos, dålig precicion då x --> 1

Postat: 29 januari 2026, 17:05:07
av hawkan
Möjlig precision i flyttalet? 32-bitars? 8-9 siffror.

Re: asin/acos, dålig precicion då x --> 1

Postat: 29 januari 2026, 18:32:05
av Marta
56 bits mantissa.

Re: asin/acos, dålig precicion då x --> 1

Postat: 30 januari 2026, 08:51:29
av HUGGBÄVERN
Kan du använda approximativa metoder, typ serieutveckling??

Re: asin/acos, dålig precicion då x --> 1

Postat: 30 januari 2026, 10:28:11
av Marta
Finns det något annat för trancendentala funktioner?
Det är Chebychew polynoms som används här.

Min gamla träskalle har svårt att hänga med ibland. Jag fick för mig invärdet låg nära ett, men det är ju infinitesimalt och då ger atan egendomliga svar när de kommer så nära noll. Det blir utsläckning i polynomet.

Tangens är något speciellt och blir blaj vid vinklar nära +/- pi/2 så det kan helt enkelt bara bli såhär. Det behövs ett till polynom för att asin/acos skall fungera i det området. Tveksamt om det är värt utrymmet för kod och tabell. Då är där annat av större värde att använda den platsen till.

Re: asin/acos, dålig precicion då x --> 1

Postat: 30 januari 2026, 10:39:45
av guckrum
En approximation är ju en approximation, och för något invärde är den sämst:-) Som du själv var inne på så kanske du kan spela med att byta plats på axlarna nära ändvärdena, om det är just där det blir problematiskt?

Re: asin/acos, dålig precicion då x --> 1

Postat: 30 januari 2026, 11:05:15
av HUGGBÄVERN
Min tanke kom från gamla universitetsstudier i numeriska metoder där man hade krågliga ekvationer är befann sig när singulariteter jobbade med polynom eller andra sätt att bryta ner funktioner och få fram vettiga värden.

Re: asin/acos, dålig precicion då x --> 1

Postat: 1 februari 2026, 17:49:06
av SvenW
Man kan gör en asymtotisk utveckling.
Googla t.ex "asymptotic expansion arctan around pi/2"