C語言求解定積分的方法
阿新 • • 發佈:2020-02-28
本文例項為大家分享了C語言求解定積分的具體方法,供大家參考,具體內容如下
題目要求:
求下面函式的定積分:
思路:
求一個函式的定積分,其實就是求它的面積,如對函式
求積分。
也就是要求出綠色部分的面積,如下:
我們可以通過矩形的方法來無限逼近定積分的求解,如下:
因為被分成n等分,就可以認為每一等分是一個矩形,那麼每一矩形的面積為:
每一個矩形面積為:***Sn=f(x)(b-a)/n
總面積為:****S=S1+S2+…+Sn
通過這樣的一個思路就可以完成,定積分的求解。
這樣這三個定積分的求解程式碼,如下:
#include <stdio.h> #include <math.h> void main( ) { float f1(float x); float f2(float x); float f3(float x); float s1 = 0; float s2 = 0; float s3 = 0; int n; // 被分成的份數 float a,b; // 積分範圍 int i; // 迴圈變數 printf("請輸入極限下限:"); scanf("%f",&a); printf("請輸入極限上限:"); scanf("%f",&b); printf("請輸入被分成的份數:"); scanf("%d",&n); for(i=1; i<=n;i++) { s1 = s1 + f1(a+((b-a)/n)*i)*((b-a)/n); s2 = s2 + f2(a+((b-a)/n)*i)*((b-a)/n); s3 = s3 + f3(a+((b-a)/n)*i)*((b-a)/n); } printf("積分的結果為:%0.4f\n",s1); printf("積分的結果為:%0.4f\n",s2); printf("積分的結果為:%0.4f\n",s3); } /* y=x */ float f1(float x) { float y=0; y = x; return y; } /* y = x*x */ float f2(float x) { float y=0; y = x*x; return y; } /* y = sin(x) */ float f3(float x) { float y=0; y = (float)sin(x); return y; }
結果為:
這樣就把定積分求完了,當然還有其他的方法。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。