不請自來。
我把題主的問題變換一下,如何構造0--90度之間整數度數的正弦函式表。
以下特殊角的正弦值眾所周知,如18º,30º,45º,60º,等。
利用兩角和,兩角差,半形等公式,我們可以計算出諸如12º,9º,6º,3º等的正弦值。
但是,這樣能計算出的最小整數度數為3º。怎麼辦?
考慮三倍角公式, Sin3θ=3Sinθ-4Sin³θ
設x=Sin1º,則Sin3º=3x-4x³。這是個一元三次方程,至少有一個實數根,可公式解不記得了,而且很繁瑣。但是沒關係,我們只要數值解,有個好辦法:迭代。具體操作如下,
設x=Sin10º,則1/2=3x-4x³ 。是的,我想算出的是Sin10º,再計算Sin(10º-9º)。
移項,得 x=4/3 x³+1/6。取x初值為1/6,以下迭代,使用計算器加減乘除計算得出,過程中保留9位有效數字。
第1次迭代,
X①=4/3(1/6)^3+1/6≈0.172839506
第2次迭代,
X②≈ 0.173551093
第3次迭代,
第4次迭代,
X④≈ 0.173646766
我們取4位有效數字,則Sin10º≈0.1736
有了Sin10º,0--90度之間所有整數度數的正弦值就可以計算出來了。
++++++++++++++++++++++++++++++++++
剛看了一個資料,古希臘的托勒密沒有解三次方程,就算出了間隔為1/2度的正弦表,就是編纂了《至大論》(又稱“天文學大全”)的那位“反動”學術權威。
簡單介紹一下託老師的思路。
託老師也是先算到了Sin3º,然後繼續計算Sin1.5º和Sin0.75º,我們知道Sin1º肯定介於這二者之間。另外,對於銳角的正弦值,有以下不等式:
若0<α<β≤90º,則
α/β<Sinα/Sinβ。
∵ 1º<1.5º
∴ Sin1º>Sin1.5º/1.5≈0.017451
∵ 0.75º<1º
∴ Sin1º<Sin0.75º/0.75≈0.017453
如果我們要求正弦值保留到小數點後五位,那麼託老師可以負責任地說,Sin1º≈0.01745。
實際上,托勒密(約公元90--168)構造出了間隔為0.5º的正弦表,計算精度為(1/60)^3=1/216000。
據說,知乎有句名言:離開劑量談毒性,近於耍流氓。那麼,不給出誤差範圍談數值計算,也應該近乎耍流氓了。
以上。
Ps
託老師使用的不等式有個簡單的非初等數學的證明。考察函式f(x)=sinx/x,此函式在(0,90º]區間上為減函式。
不請自來。
我把題主的問題變換一下,如何構造0--90度之間整數度數的正弦函式表。
以下特殊角的正弦值眾所周知,如18º,30º,45º,60º,等。
利用兩角和,兩角差,半形等公式,我們可以計算出諸如12º,9º,6º,3º等的正弦值。
但是,這樣能計算出的最小整數度數為3º。怎麼辦?
考慮三倍角公式, Sin3θ=3Sinθ-4Sin³θ
設x=Sin1º,則Sin3º=3x-4x³。這是個一元三次方程,至少有一個實數根,可公式解不記得了,而且很繁瑣。但是沒關係,我們只要數值解,有個好辦法:迭代。具體操作如下,
設x=Sin10º,則1/2=3x-4x³ 。是的,我想算出的是Sin10º,再計算Sin(10º-9º)。
移項,得 x=4/3 x³+1/6。取x初值為1/6,以下迭代,使用計算器加減乘除計算得出,過程中保留9位有效數字。
第1次迭代,
X①=4/3(1/6)^3+1/6≈0.172839506
第2次迭代,
X②≈ 0.173551093
第3次迭代,
第4次迭代,
X④≈ 0.173646766
我們取4位有效數字,則Sin10º≈0.1736
有了Sin10º,0--90度之間所有整數度數的正弦值就可以計算出來了。
++++++++++++++++++++++++++++++++++
剛看了一個資料,古希臘的托勒密沒有解三次方程,就算出了間隔為1/2度的正弦表,就是編纂了《至大論》(又稱“天文學大全”)的那位“反動”學術權威。
簡單介紹一下託老師的思路。
託老師也是先算到了Sin3º,然後繼續計算Sin1.5º和Sin0.75º,我們知道Sin1º肯定介於這二者之間。另外,對於銳角的正弦值,有以下不等式:
若0<α<β≤90º,則
α/β<Sinα/Sinβ。
∵ 1º<1.5º
∴ Sin1º>Sin1.5º/1.5≈0.017451
∵ 0.75º<1º
∴ Sin1º<Sin0.75º/0.75≈0.017453
如果我們要求正弦值保留到小數點後五位,那麼託老師可以負責任地說,Sin1º≈0.01745。
實際上,托勒密(約公元90--168)構造出了間隔為0.5º的正弦表,計算精度為(1/60)^3=1/216000。
++++++++++++++++++++++++++++++++++
據說,知乎有句名言:離開劑量談毒性,近於耍流氓。那麼,不給出誤差範圍談數值計算,也應該近乎耍流氓了。
以上。
Ps
託老師使用的不等式有個簡單的非初等數學的證明。考察函式f(x)=sinx/x,此函式在(0,90º]區間上為減函式。