最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

古代炮兵怎樣手算三角函數

2023-01-17 19:46 作者:小給貓  | 我要投稿

前段時間和朋友們聊天說起來,在計算機技術發(fā)展起來之前,炮兵是個要求極高的技術兵種。尤其是手搖式的計算器發(fā)明之前,甚至需要在戰(zhàn)場上手算彈道。而其中最重要的數學工具就是三角函數。

那么,三角函數也能手算?

當然,用泰勒展開式就可以把三角函數轉換成多項式形式,計算近似值。

下面直接上公式。(我數學一般,就不搬運證明過程了)

sinx%3D%5Csum_%7Bn%3D0%7D%5E%E2%88%9E%20%20%5Cfrac%7B(-1)_%7B%7D%5En%7D%7B(2n%2B1)!%7Dx_%7B%7D%5E%7B2n%2B1%7D

cosx%3D%5Csum_%7Bn%3D0%7D%5E%E2%88%9E%20%20%5Cfrac%7B(-1)_%7B%7D%5En%7D%7B(2n)!%7Dx_%7B%7D%5E%7B2n%7D

其余幾個,tan呀sec什么的,展開式對我這種學渣來說太難了,就沒抄。反正只要會算sin和cos其它都能推算出來。

顯然我們沒有辦法計算無窮級數的和。但是如果只是想要一個近似值的話,只需計算級數的前幾項就可以了。具體取決于實際的精度需求。

舉個例子,假如需要計算cos17°的近似值,要求精度為百萬分之一。需要計算幾項呢?

精度為百萬分之一,也就是說,計算值與實際之差的絕對值要小于千萬分之五。

而在計算過程中的中間值的近似值就要取到千萬分之一級。

所以,第一步,將17°轉換為弧度值的時候,π值要取3.1415927 。

角度17°的弧度近似值就是0.2967060 。

※千萬分之一的小數必須寫滿7位,時即使最末位是0也不能省略。但是輸入計算器或電腦計算的時候無所謂。

接下來就是對比計算結果來選擇項數了。本學渣這里就不手工計算了,而是借用上個世紀的科技幫忙。

先用Excel自帶的VBA編程工具寫一個基于泰勒展開新余弦函數,姑且就叫cosTay 。

函數需要2個輸入變量,弧度值和項數。

代碼如下:

Function cosTay(a As Double, n As Integer) As Double

?Dim i As Integer

?Dim k As Double

? For i = 0 To n

?? k = Application.WorksheetFunction.Fact(2 * i)

?? cosTay = cosTay + ((-1) ^ i) * (a ^ (2 * i)) / k

? Next i

End Function

※引入k是因為調用Excel自帶的階乘(Fact)函數這句話有點長,這樣寫看起來舒服一點。

?

然后寫一個計算對比值的模塊,輸出直到達到精度需求前的計算值。

代碼如下:

Sub test()

?Dim n As Integer

?Dim a As Double

?Dim d As Double

? a = 0.296706

? n = 1

? Do

?? Cells(n + 1, 1).Value = Cos(a)

?? Cells(n + 1, 2).Value = cosTay(a, n)

?? d = Abs(Cos(a) - cosTay(a, n))

?? Cells(n + 1, 3).Value = d

?? n = n + 1

? Loop While d >= 5 / 10000000

End Sub

運行以后的輸出如下

原來,只需計算3項(也可以說4項,因為從n=0開始算的),精度別說千萬分之一了,都已經億分之一了。

當然了,這個精度和輸入的弧度值也有一點關系。

如果是53°,弧度值0.9250245,就需要4項才能達到同等精度。如下表。

輸入的弧度值越大就需要計算更多的項數來確保精度。當然,也可以通過加法定理將需要計算的弧度值變得小一些,這樣就不必計算太多項。

比如:

cos53%C2%B0%3Dcos(60%C2%B0-7%C2%B0)%3D%5Cfrac%7B1%7D%7B2%7Dcos(7%C2%B0)%2B%5Cfrac%7B%5Csqrt%7B3%7D%20%7D%7B2%7Dsin(7%C2%B0)

這樣就從計算53°變成計算7°了。

?

?

再來看一個我在工作中遇到的實例。

我拿到幾千張畫稿,上面大概是這樣的圖像。

有一系列階梯下降的短橫線,長度是3mm。相鄰的兩條橫線在豎直方向上的理論間距是0.0400mm(我不能說真實的數值,這是隨意擬的同數量級的一個數值)。通過測量實際間距和理論值的接近程度來評價成像精度的優(yōu)劣。

現有的工具可以對掃描稿件進行分析,得出所有相鄰兩條橫線(中點)的間距。但是,由于實際印刷、掃描時不可避免的存在歪斜。所以需要增加一個對歪斜角度的補償功能。

這里就把它當一道數學題來做,要求精度是萬分之一。

通過上面這個圖應該比較容易看出來。原有工具導出的結果為D,歪斜角是α,短線長是L,需要計算的是D’ 。于是有:

D%3DL%5Ccdot%20sin%5Calpha%20%2BD'%5Ccdot%20cos%5Calpha%20

D'%3D%5Cfrac%7BD-L%5Ccdot%20sin%5Calpha%20%7D%7Bcos%5Calpha%20%7D

因為需求精度并不太高,所以將三角函數轉換為n=2的泰勒級數。

sinx%3Dx-%5Cfrac%7Bx%5E3%20%7D%7B6%7D%2B%5Cfrac%7Bx%5E5%20%7D%7B120%7D

cosx%3D1-%5Cfrac%7Bx%5E2%20%7D%7B4%7D%2B%5Cfrac%7Bx%5E4%20%7D%7B24%7D

x%3D%5Cfrac%7B%5Calpha%20%5Cpi%20%7D%7B180%7D

D'%3D%5Cfrac%7BD-L(x-%5Cfrac%7B(x%5E3%20)%7D%7B6%7D%2B%5Cfrac%7B(x%5E5%20)%7D%7B120%7D)%7D%7B1-%5Cfrac%7Bx%5E2%20%7D%7B4%7D%2B%5Cfrac%7Bx%5E4%20%7D%7B24%7D%7D

這樣就已經是一個能夠筆算的程度了。

雖然我想不會有人想看,但還是寫一個實例。

D取0.3000,L取3,α取5° ,π取3.14159 ;代入計算(盡量約分):

弧度取0.08727 。

D'%3D%5Cfrac%7B0.3-3%5Ctimes%200.08727%2B%5Cfrac%7B0.08727%5E3%20%7D%7B2%7D-%5Cfrac%7B0.08727%5E5%20%7D%7B40%7D%7D%7B1-%5Cfrac%7B0.08727%5E2%20%7D%7B4%7D%2B%5Cfrac%7B0.08727%5E4%20%7D%7B24%7D%7D

如今,不會有人想去筆算這樣的式子,所以我告訴大家結果,是0.0387 。

然而,在計算機技術普及之前,這是全世界眾多科學家和工程師們解決問題的必經之路。


古代炮兵怎樣手算三角函數的評論 (共 條)

分享到微博請遵守國家法律
拜泉县| 新乡市| 建湖县| 潢川县| 克拉玛依市| 水城县| 罗定市| 高清| 玉山县| 永德县| 子洲县| 鹰潭市| 绿春县| 喀什市| 松桃| 阿巴嘎旗| 鸡西市| 平果县| 南江县| 永安市| 定兴县| 滨州市| 武山县| 兴仁县| 文昌市| 买车| 会昌县| 镇宁| 通城县| 日土县| 潞西市| 辽阳县| 东兰县| 嘉黎县| 博乐市| 安溪县| 翁牛特旗| 怀柔区| 台江县| 新河县| 静宁县|