2 回答

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
的問題arcsin(1)
是它arcsin(x)
在 x=1 處垂直(導(dǎo)數(shù)無限增長(zhǎng))。像泰勒級(jí)數(shù)這樣的多項(xiàng)式逼近跟不上。您的收斂速度非常慢,并且需要大量的項(xiàng)才能獲得合適的近似值。你需要改變你處理問題的方式。
例如,對(duì)于小的 x,y = sin(pi/2 - x)
近似為1 - x^2/2
,您可以從中推導(dǎo)出近似值asin(y) = pi/2 - sqrt(2 - 2*y)
。此近似值適用于非常接近 1 的值 - 您可以直接使用它。
如果你努力一點(diǎn),你可以證明確切的身份
asin(x) = pi/2 - 2*asin( sqrt( (1-x)/2 ) )
使用此恒等式,您可以使用適用于接近 0 的asin(x)
x 的現(xiàn)有函數(shù)來計(jì)算接近 1 的 x 。asin
例如:要計(jì)算,asin(0.99)
您將計(jì)算:
asin(0.99) = pi/2 - 2*asin( sqrt( (1-.99)/2 ) ) = pi/2 - 2*asin( sqrt(.005) ) = pi/2 - 2*asin(0.07071067811865475)
... 然后您將使用您現(xiàn)有的算法來獲得 的高質(zhì)量近似值asin(0.07071067811865475)
。
這是在生產(chǎn)質(zhì)量數(shù)學(xué)庫實(shí)現(xiàn)中使用的技術(shù) - 例如參見OpenLibm或fdlibm。

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
一個(gè)非?;镜慕浦祵⒔o出sum from 0 to N
近似值(以弧度表示)。在這里,您以度為單位給出結(jié)果,因?yàn)槎群突《戎g存在大致的比率,您需要將arcsin 設(shè)置為近似值。arcsin
1e(-N)
1e2
NUM_ITER = 1e(N+2)
1e(-N)
因此,對(duì)于您的具體問題,您需要使用N = 1
(大約 1 分)進(jìn)行測(cè)試,因此NUM_ITER = 1e(1+2) = 1,000
. 這一點(diǎn)都不精確,但可以讓您了解您正在尋找的價(jià)值。
然后,如果您想查找確切的值,我看不到每次都使用精確的數(shù)學(xué)方法(無論 x.point 精度如何)。但是,您可以使用二分法算法來查找NUM_ITER
,如果它是您算法的目標(biāo)。第一近似值將減少您的計(jì)算時(shí)間。
精確的近似值來自比率 orx^O(n)
和4^O(n)
,4^O(n)
更大。我們可以用 來近似求和項(xiàng)O(1/10^n)
。
如果有人可以進(jìn)行精確的微積分,我將非常高興看到它。
添加回答
舉報(bào)