1. 程式人生 > 程式設計 >C語言求解定積分的方法

C語言求解定積分的方法

本文例項為大家分享了C語言求解定積分的具體方法,供大家參考,具體內容如下

題目要求:

求下面函式的定積分:

C語言求解定積分的方法

思路:

求一個函式的定積分,其實就是求它的面積,如對函式

C語言求解定積分的方法

求積分。

也就是要求出綠色部分的面積,如下:

C語言求解定積分的方法

我們可以通過矩形的方法來無限逼近定積分的求解,如下:

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;
}

結果為:

C語言求解定積分的方法

這樣就把定積分求完了,當然還有其他的方法。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。