1. 用梯形法求定積分
main()
{
double t=(0.8-0)/200;//ÿ´ÎÔöÁ¿Îª0.8ÖÁ0µÄ1/200£¬ÕâÊÇһС¶ÎµÄ³¤
double x=0.0,s=0.0;//xΪ×ø±êͼÉϵÄxÖµ£¬ÓÃÀ´Çó¸ß
short i;
for(i=0;i<200;i++)
{
s+=t*cos(x);//ÓÃһС¶ÎµÄ³¤*һС¶ÎµÄ¸ß =һС¶ÎÃæ»ý£¬Ò»Ð¡¶ÎÃæ»ýÀÛ¼Ó³ö¶¨»ý·ÖµÄÖµ
x+=t;//ÏÂÒ»¸öxÖµ
}
printf("%lf\n",s);
}
2. 15、用梯形法求定積分(數值求解演算法)
#include<stdio.h>
void main()
{
double fun(double x);
double a,b,i,sum=0;
int n;
printf("請輸入a,b,n的值:");
scanf("%lf%lf%d",&a,&b,&n);
for(i=a;i<b;i=i+(b-a)/n)//分割面積求和
{
sum=sum+(b-a)*(fun(i)+fun(i+(b-a)/n))/(2*n);
}
printf("結果為:%lf\n",sum);
}
double fun(double x)
{
double c;
c=x*x+2*x+1;
return c;
}
3. 梯形法求定積分精度要求多少
0.001。用梯形遞推化方法計算:231Ixdx=∫,給出精度達到0.001的定積分近似值。積分結果為曲線與x軸之間部分的面積,也即為每份面積之和。
4. 梯形法求積分(應用題,跪求解。。。需要過程..)
詳細過程……如圖所示,積分過程……
主要沒看懂後面的意思……
5. 梯形法求積分
這個是數值分析裡面的問題。
求積分就是切割嘛。(積分定義)
把積分區域切割成一塊塊的,
對積分區域,橫著數刀,豎著數刀,
看看,割出來的那一塊塊多像梯形啊。
所以就命名為梯形法求積分。然後求出它們的面積。當然也有像矩形的,但是像矩形的都是在區域裡面,面積好求。
而像梯形的都在邊沿處,難求
所以命名為梯形法求積分。
說了那麼多也不知道你明白沒,不明白就找本數值分析的書翻翻。
聽說有關導彈的計算的很多問題,都是這么求的。
6. 梯形法求定積分
對於sin(a+nh)就是等於sinb, 2sin(a+nh)-sinb=sinb 注意梯形公式的兩端只須+1倍,當中的端點需要加2倍,原因如下:
咱們簡單點來看,將梯形公式就分成2段即n=2
則此積分=[sina+sin(a+h)]*h/2+[sin(a+h)+sin(a+2h)]*h/2=[sina+2[sin(a+h)+sin(a+2h)]-sinb]
到以上這步,想必你看懂了吧,其中sin(a+2h)=sinb,因為如果n比較大,那麼記號的時候將sin(a+nh)也記錄進去,但是端點只須要加一次
所以上式就是等於[sina+2sin(a+h)+sinb]*h/2
而此式又可寫成[sina+2[sin(a+h)+sin(a+2h)]-sinb]*h/2
這就是為什麼要 -sinb的原因了
所以對於你給的公式,如果記成
{sina+2[sin(a+h)+sin(a+2h)+...+sin(a+(n-1)h)]+sinb}*h/2的話,你就會更清楚了。
希望我的回答能讓您滿意。
7. matlab梯形法求f(x)在[a,b]上的定積分
matlab中,用梯形法計算定積分的函數是trapz函數。tapz調用格式為:
Z = trapz(X,Y,DIM)
X為自變數,可以預設,預設時函zhuan數將做間隔為1的積分。Y可以是矩陣或是向量,當Y是矩陣時由dim決定,把y看成一個個列向量或是一個個行向量,再對每個向量分別積分;dim一般預設為1,這時是看成列向量積分。
例如:
x=-1:0.05:1的積分區間劃成步長為0.05的41個等分
y=exp(-x.^2) %被積函數f(x)
trapz(x,y) %梯形積分法函數
運行結果:
ans=1.4933
)
(7)梯形演算法積分擴展閱讀:
定理1:設f(x)在區間[a,b]上連續,則f(x)在[a,b]上可積。
定理2:設f(x)區間[a,b]上有界,且只有有限個間斷點,則f(x)在[a,b]上可積。
定理3:設f(x)在區間[a,b]上單調,則f(x)在[a,b]上可積。
定積分與不定積分看起來風馬牛不相及,但是由於一個數學上重要的理論的支撐,使得它們有了本質的密切關系。把一個圖形無限細分再累加,這似乎是不可能的事情,但是由於這個理論,可以轉化為計算積分。
8. C語言實慣用梯形法或辛普森法求解定積分的值
//梯形法求定積分
#include<stdio.h>
#include<math.h>
//定義被積函數
double func(double x){
return sin(x)*cos(x);
}
void main(){
double a,b,h,x,sum;
int i,n;
printf("Input a b and n: ");
scanf("%lf%lf%d",&a,&b,&n);
h=(b-a)/n;
x=a;
sum=(func(a)+func(b))/2;
for(i=1; i<n; i++){
x += h;
sum += func(x);
}
sum *= h;
printf("sum=%.4lf\n",sum);
}