定積分的C語言實現
阿新 • • 發佈:2018-12-11
想到求積分,我們第一步想到的可能是通過算出帶求函式的不定積分,再將兩個區間端點帶進去做差。但是對於計算機而言計算一個函式的不定積分往往是很困難的,那麼該如何實現呢?
這裡我們就要回到定積分的最原始的定義,一切從定義出發就一定能算出來。
定積分的定義,不過是 分割、求和、取極限
當然,這裡面影響定積分的精度的主要因素就是N的大小,N越大,計算結果越接近真實值, 但同時,N越大,計算時間也就越長。
下面是C語言的程式碼,我們以求 的定積分為例。
#include <stdio.h> #include <math.h> long double function(long double x) { long double y; y = exp(x); return y; } int main(void) { unsigned long long N = 100000000; printf("Please enter the interval.\n"); //讓使用者輸入積分割槽間 long double a , b; scanf("%Lf %Lf" , &a , &b); //這裡的 a 和 b 分別是積分上下界 long double integration; for (unsigned long long i = 0 ; i <= N ; i++) { integration += function(a + ((b - a) / N) * i) * ((b - a) / N); } printf("The integration is %Lf\n" , integration); return 0; }
下面是終端執行結果