實例說明
自然常數e,是數學中最重要的常數之一,是一個無限不循環小數,也是自然對數函數的底數,其值約為2.71828。它的一個經典的數學定義公式是:
使用計算機計算e的值時,可以使用下面的公式近似計算:
那麼在LabVIEW中如何編程實現求解這個公式即e的值呢?
編程思路
從上面的近似公式可以看出,e的值與n的階乘有關,可將上式分解為兩個步驟:
求解n的階乘:n!=1×2×3×......×(n-1)×n;對n!求倒數,然後再累加求和需要說明的是,上式是無窮多項式的累加,編程實現時不可能計算無窮多項的和,因此可限定有限項相加求和,限定的方法,可使用限定某一項的絕對值小於某個數,如小於10的-8次方(0.00000001)。
在LabVIEW中,對於第一步可編寫一個子程序求解n的階乘,然後在第二步中調用這個子程序計算e的值。下面對這兩個步驟分別編程實現。
求解n的階乘
根據階乘公式,編寫下圖所示的程序框圖,用以求解n的階乘,將該程序存儲為一子程序,該子程序輸入一個整數值「n」,輸出其階乘值「n!」。
在上面代碼中,使用for循環,循環次數為n,在循環中添加一個移位寄存器用以存儲乘積的值,其初始值為1,循環結束後,移位寄存器中的即為n的階乘值。
計算自然常數e的值
編寫主程序來調用上面的子程序,計算自然常數e的值,其框圖程序的實現代碼如下:
計算過程中,使用while循環,在循環中添加一移位寄存器用以存儲累加項的和,其初始值設置為雙精度即double類型的0。在循環內部對n的階乘取倒數,即為求e公式中每一項的值,然後判斷該值是否小於1E-8(即10的-8次方),若小於,則退出while循環,否則繼續循環。循環結束後移位寄存器中的值即為常數e的值。
上面代碼運行後即可得自然常數e的值為2.71828。
總結
通過這個例子可以學習到的知識點包括:
while循環的編程移位寄存器的用法
如果你覺得這篇文章對你有用的話,收藏+點讚吧。