1樓:
//利用simpson公式來求定積分
#include
#include
double t(double x,double y,int z,double (*fun)(double)) ;
double integral (double a,double b,double (*fun)(double));
double f1(double t);
double f2(double t);
double f3(double t);
double f4(double t);
double f5(double t);
int n=0; //用來記錄積分割槽間劃分的間隔數,數量越大,越精確
void main()
double a,b,s;
printf("積分下限 a:\n");
scanf("%lf",&a);
printf("積分上限 b:\n");
scanf("%lf",&b);
printf("區間等分個數 n :\n");
scanf("%d",&n);
/*利用辛甫生公式求解定積分*/
s=integral(a,b,f1);//用函式f1來驗證
printf("函式 f(x)在區間%f到%f 的積分值為 s=%f\n",a,b,s);
double f1(double t)
return 1+t;
double f2(double t)
return 3+2*t;
double f3(double t)
return pow(2.71828,t)+1;//自然常數e,取了一個近似值2.71828
double f4(double t)
return (1+t)*(1+t);
double f5(double t)
return t*t*t;
//辛普森公式:
double t(double x,double y,int z,double (*fun)(double))
double h,tn;
int i;
h=(y-x)/z;
tn=(fun(x)+fun(y))/2;
for(i=1;itn=tn+fun(x+i*h);
tn=tn*h;
return (tn);
double integral(double x,double y,double(*fun)(double))
return (4*t(x,y,2*n,fun)-t(x,y,n,fun))/3;
驗證結果:
通過數學知識,我們可以知道
f1(t)=1+t;(積分應該是t+0.5*t*t+任意常數)在區間0到1之間定積分的確是1.5
2樓:匿名使用者
//簡單的寫了一下按照最原始的定積分思想來的#include
//定積分通用函式
double integral (double a,double b,double (*fun)(double)); //函式宣告
double func1(double x); //函式宣告// 主函式
void main()
//定積分函式 a下限 b 上限 (*fun)(double) 函式指標 梯形法求積分
double integral (double a,double b,double (*fun)(double))
//返回所求積分
return dtotalarea;
}//函式取一個做示範 其餘類似
double func1(double x)
對變上限積分函式求定積分,變上限積分函式求極限
墨汁諾 解答 設f x 在區間 a,b 上連續,則f x 在 a,b 上可積。設f x 區間 a,b 上有界,且只有有限個間斷點,則f x 在 a,b 上可積。設f x 在區間 a,b 上單調,則f x 在 a,b 上可積。黎曼積分 定積分的正式名稱是黎曼積分。用黎曼自己的話來說,就是把直角座標系上...
利用周期函式的定積分特性計算,周期函式的定積分的一個性質實在不明白 上限x下限0的f(t)dt以T為周
這個式子由於是對絕對值的積分,根據正弦函式的性質,在0到 是大於等於0的,所以可以化為 n 上 下0 sinxdx n cosx 上 下0 2n回答完畢! 唉,你們就只會直接算,這樣根本就不是利用周期函式的定積分特性計算,應該用 像形結合 法吧,你先畫出sinx的影象,再把x軸下方的移到x軸的上方,...
複合函式的積分如何求,如何求複合函式定積分?
複合函式的情況千差萬別,通常是化作簡單的基本函式再行積分。例如 sinx 2dx 1 cos2x 2 dx dx 2 1 2 cos2xdx x 2 sin2x 2 2 c x 2 sin2x 4 c 可以把它成無窮級數以後再積分,代人不會得到簡單的初等函式。 小丁看歷史 拓展資料 若函式y f u...