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