編寫一個用梯形法求一元函數f(x)在(a,b) 上積分近似值的函數過程。並就f(x)=sin(2x)+x,當[a,b]=[0,3.14159]、小區間數n=10 和n=20 時,分別計算並輸出積分的近似值S1和S2,保留3 位小數。
1 #include<stdio.h> 2 #include<math.h> 3 float f(float x) 4 { 5 return sin(2*x)+x; 6 } 7 int main() 8 { 9 float a,b,len,F=0;// 10 int n,i; 11 printf("請輸入a,b: "); 12 scanf("%f%f",&a,&b); 13 printf("請輸入n的值: "); 14 scanf("%d",&n); 15 len=(a+b)/n; 16 for(i=0;i<n;i++) 17 { 18 F+=len*f(a); 19 a+=len; 20 } 21 printf("%.3f\n",F); 22 return 0; 23 }
有問題,請指正,謝謝!