利用复化梯形公式复化simpson 公式计算积分
分别用复化梯形求积公式和复化辛普森求积公式计算积分

1习题 三1. 用辛普森求积公式计算积分dx e x ∫−10,并估计误差。
2. 给定数据表x 1.8 2.0 2.2 2.4 2.6)(x f 3.12014 4.042569 6.04241 8.03014 10.46675分别用复化梯形求积公式和复化辛普森求积公式计算积分.)(6.28.1dx x f ∫3. 分别用变步长求积方法和龙贝格求积方法计算下列积分,并估计误差:(1);sin 40dx xx ∫π(2);1)1ln(102dx x x ∫++ (3);)1ln(110dx x x ∫+ (4).110∫+xdx 4. 确定下列求积公式的待定参数,使其代数精度尽量高,并指出其代数精度的准确次数:(1));()0()()(210h f A f A h f A dx x f hh ++−≈∫− (2));()0()()(21022h f A f A h f A dx x f hh ++−≈∫−(3)).0()1()0()(21010f A f A f A dx x f ′++≈∫ 5. 证明求积公式 )]()([12)]()([2)(0121010x f x f h x f x f h dx x f x x ′−′++≈∫ 具有3次代数精度,其中01x x h −=.6. 利用高斯-勒让德公式计算积分)(14102π=+∫dx x 的近似值. 7. 利用高斯-切比雪夫求积公式计算积分dx x x ∫−−−112211 的近似值。
8. 已知函数)(x f y =的如下数据:x 0.8 0.9 1 1.1 1.2 1.4)(x f 0.8365 0.9095 1 1.1105 1.2446 1.6017利用李查逊外推法计算)1(y ′.。
复化梯形公式和复化辛普生公式

}
void simpson::integration()//实现积分
{
cout<<"输入上限和下限";
cin>>b>>a;
cout<<"输入你要使用simposn法则的数目(即等分数)";
cin>>n;
h=(b-a)/n;
sum_even_terms=0.0;
sum_odd_terms=0.0;
for(k=1;k<n;k++)
{
sum_even_terms+=sine(k*h);
}
for(k=0;k<n;k++)
{
sum_odd_terms+=sine((2*k+1)*h/2);
}
integral=(2.0*sum_even_terms+4.0*sum_odd_terms+sine(b)+1)*h/6.0;
《数值分析》实验报告
姓名
学号
日期
2012.11.20
实验室
设备编号
实验题目
用复化梯形公式和复化辛普生公式求I=∫01sinx/xdx
一实验目的
1.了解复化梯形公式和复化辛普生公式。
2.用复化梯形公式和复化辛普生公式求I=∫01sinx/xdx。
二实验内容
算法:复化梯形公式是Tn=∑h/2[f(xi)+ f(xi+1)]=(b-a)/2n[f(a)+2∑f(xi)+f(b)]记子段[xi,xi+1]的中点为xi+1/2,则复化Simpson公式为Sn=∑h/6[f(xi)+4f(xi+1/2)+ f(xi+1)]=b-a/6n[f(a)+4∑f(xi+1/2)+2f(xi)+f(b)]
用复合梯形公式和复合辛普森公式求函数积分

《数值分析》实验报告(模板)
学号********班级信科121姓名张凯茜
【实验课题】用复合梯形公式和复合辛普森公式求函数积分
【实验目标】
1.掌握复合梯形公式与复合辛普森公式的基本思想。掌握常用的数值积分方法(特别是梯形法、Simpson方法、Cotes公式、Romberg算法以及Gauss求积公式)的原理。
【附程序】
复合梯形公式
functionT=comptra(a,b,tol)
h=b-a;
k=0;
T=((f(a)+f(b))*h)/2;
P=T+1;
whileabs(P-T)>tol
P=T;
m=0; h=h/2;
fori=1:2^k
m=m+f(a+(2*i-1)*h);
end
T=0.5*P+m*h; k=k+1;
2.学会用matlab编程实现用复合梯形公式与复合辛普森公式求积分。
3.熟悉matlab软件的使用,通过实验体会常用数值积分方法的逐步精致化过程。
【理论概述与算法描述】
1.根据梯形公式 ,将区间【a,b】划分为n等份,分点x(k)=a+kh,h=(b-a)/n,k=0,1,2,3,……,在每个区间【x(k),x(k+1)】(k=0,1,2……n-1)上采用梯形公式,得
end
复合辛普森公式
functionS=comsinp(a,b,tol)
h=b-a;
k=1;
S=((f(a)+f(b)+4*f((a+b)/2))*h)/6;
P=S;
whileabs(P-S)>tol
P=S;
选用复合梯形公式,复合Simpson公式,计算

数值分析实验 三班级:10信计2班 学号:59 姓名:王志桃 分数一·问题提出:选用复合梯形公式,复合Simpson 公式,计算(1) I =dx x ⎰-4102sin 4 ()5343916.1≈I(2) I = dx x x⎰1sin ()9460831.0,1)0(≈=I f(3) I = dx xe x⎰+1024(4) I = ()dx x x ⎰++10211ln二·实验要求:1.编制数值积分算法的程序2.分别用两种算法计算同一个积分,并比较计算结果3.分别取不同步长()/ a b h -=n ,试比较计算结果(如n = 10, 20等)4.给定精度要求ε,试用变步长算法,确定最佳步长三·实验流程图:复化梯形公式:输入 端点 a , b 正整数 n直接计算TN=h/2*[f(a)+2∑f(x k )+f(b)] k=1,2…,n-1输出 定积分近似值TN复化Simpson 公式输入 端点 a , b 正整数 n输出 定积分近似值SN(1) 置h=(b-a)/(2n)(2) F0=f(a)+f(b) , F1=0 , F2=0(3) 对j=1,2,…,2n-1循环执行步4到步5(4) 置x=a+jh(5) 如果j 是偶数,则F2=F2+f(x),否则F1=F1+f(x)(6) 置SN=h(F0+4F1+2F2)/3(7) 输出SN,停机四·源程序:#include<iostream>#include<math.h>using namespace std;#define n 20//此为步长double f1(double x){double y;y=sqrt(4-sin(x)*sin(x));return y;}double f2(double x){if(x==0)return 1;double y;y=sin(x)/x;return y;}double f3(double x){double y;y=exp(x)/(4+x*x);return y;}double f4(double x){double y;y=log(1+x)/(1+x*x);return y;}int main(){int j;double e=0.000001,h,F0,F1,F2,a,b,x,S;cout<<"利用复化Simpson公式求积分"<<endl;//1a=0;b=0.25*3.141592;h=(b-a)/(2*n);F0=f1(a)+f1(b);F1=F2=0;for(j=1;j<2*n;j++){x=a+j*h;if(j%2==0)F2=F2+f1(x);elseF1=F1+f1(x);}S=((F0+F1*4+F2*2)*h)/3;cout<<"第一个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//2a=0;b=1;h=(b-a)/(2*n);F0=f2(a)+f2(b);F1=F2=0;for(j=1;j<2*n;j++){x=a+j*h;if(j%2==0)F2=F2+f2(x);elseF1=F1+f2(x);}S=(F0+F1*4+F2*2)*h/3;cout<<"第二个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//3a=0;b=1;h=(b-a)/(2*n);F0=f3(a)+f3(b);F1=F2=0;for(j=1;j<2*n;j++){x=a+j*h;if(j%2==0)F2=F2+f3(x);elseF1=F1+f3(x);}S=(F0+F1*4+F2*2)*h/3;cout<<"第三个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//4a=0;b=1;h=(b-a)/(2*n);F0=f4(a)+f4(b);F1=F2=0;for(j=1;j<2*n;j++){x=a+j*h;if(j%2==0)F2=F2+f4(x);elseF1=F1+f4(x);}S=(F0+F1*4+F2*2)*h/3;cout<<"第四个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl<<endl;cout<<"利用复化梯形公式求积分"<<endl;//1a=0;b=0.25*3.141592;h=(b-a)/n;F0=f1(a)+f1(b);F1=0;for(j=1;j<n;j++){x=a+j*h;F1=F1+f1(x);}S=((F0+F1*2)*h)/2;cout<<"第一个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//2a=0;b=1;h=(b-a)/n;F0=f2(a)+f2(b);F1=0;for(j=1;j<n;j++){x=a+j*h;F1=F1+f2(x);}S=((F0+F1*2)*h)/2;cout<<"第二个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//3a=0;b=1;h=(b-a)/n;F0=f3(a)+f3(b);F1=0;for(j=1;j<n;j++){x=a+j*h;F1=F1+f3(x);}S=((F0+F1*2)*h)/2;cout<<"第三个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;//4a=0;b=1;h=(b-a)/n;F0=f4(a)+f4(b);F1=0;for(j=1;j<n;j++){x=a+j*h;F1=F1+f4(x);}S=((F0+F1*2)*h)/2;cout<<"第四个积分公式:端点a为"<<a<<"、b为"<<b<<",n为"<<n<<endl<<"结果为"<<S<<endl;return 0;}五.实验结果六.实验心得:通过本次实验,我掌握了求数值积分的各种方法。
数值计算考题五——复合梯形求积公式与复合辛普森求积公式求积分

数值计算考题五1. 分别用复合梯形求积公式与复合辛普森求积公式求积分I=⎰102x e sinx dx 的近似值,要求误差不超过ε=0.5⨯10-5.解:方法一: 复合梯形求积公式复合梯形求积公式是将积分区间划分为n 个很小的区间,然后将各个小区间的面积相加而得到在整个积分区间上的积分,当分成的小区间数n →∞时,求得的面积就等于积分的精确值。
由复合梯形求积公式的余项R n T 可得满足精度要求≤ε0.5⨯10-5时区间()b a ,被分成的区间数n 的最小值为700,所以在编程时循环次数应大于等于这个值,方可满足精度要求。
以下是编写的C 语言程序:#include<stdio.h>#include<math.h>void main(){int n=700,i;double x,f=0.0,t,h,T=0.0,c=2.0,a=0.0,b=1.0;h=(b-a)/n;for(i=0;i<n;i++){x=a+i*h;f=f+exp(pow(x,c))*sin(x);}t=(h/2)*(2*f+sin(1)*exp(1));printf("T=%f\n",t);}输出结果为T=0.778746.方法二:复合辛普森求积公式:复合辛普森求积法是将积分区间分割之后,在每个小区间[x i ,x i+1]上运用辛普森求积公式。
以下是编写的c 语言程序:#include<stdio.h>#include<math.h>void main(){int n=700,i;double x1,x2,f1=0.0,f2=0.0,t,h,T=0.0,c=2.0,a=0.0,b=1.0;h=(b-a)/n;for(i=0;i<n;i++){x1=a+i*h;x2=a+(i+0.5)*h;f1=f1+exp(pow(x1,c))*sin(x1);f2=f2+exp(pow(x2,c))*sin(x2); }t=(h/6)*(2*f1+sin(1)*exp(1)+4*f2); printf("T=%f\n",t);}程序输出结果为0.778745.2. 用高斯求积法求上述积分的近似值。
数值分析复化Simpson积分公式和复化梯形积分公式计算积分的通用程序

数值分析第五次程序作业PB09001057 孙琪【问题】分别编写用复化Simpson 积分公式和复化梯形积分公式计算积分的通用程序;用如上程序计算积分: I (f )=∫sin (x )dx 40取节点x i , i =0,…,N,N 为2k ,k =0,1,…,12,并分析误差;简单分析你得到的数据。
【复化Simpson 积分公式】Simpson 法则:∫f (x )dx ≈b −a 6[f (a )+4f (a +b 2)+f (b )]b a 使用偶数个子区间上的复合Simpson 法则:设n 是偶数,x i =a +ih , h =b−a n ,(0≤i ≤n) 则有∫f (x )dx =∫f (x )dx +∫f (x )dx +⋯+∫f (x )dx =∑∫f (x )dx x 2i x 2i−2n 2i=1x n x n−2x 4x 2x 2x 0b a 将Simpson 法则应用于每一个区间,得到复合Simpson 法则:∫f (x )dx ≈h 3b a [f (x 0)+2∑f (x 2i−2)n 2i=2+4∑f (x 2i−1)n 2i=1+f (x n )] 公式的误差项为:−1180(b −a )h 4f (4)(δ) 其中δ∈(a,b)【复化梯形积分公式】梯形法则:对两个节点相应的积分法则称为梯形法则:∫f (x )dx ≈b −a 2b a [f (a )+f (b )] 如果划分区间[a,b]为:a =x 0<x 1<⋯<x n =b那么在每个区间上可应用梯形法则,此时节点未必是等距的,由此得到复合梯形法则:∫f (x )dx =∑∫f (x )dx x i x i−1n i=1b a ≈12∑(x i −x i−1)[f (x i−1)+f (x i )]ni=1 对等间距h=(b-a)/n 及节点x i =a +ih ,复合梯形法则具有形式:∫f (x )dx ≈h 2[f (a )+2∑f (a +ih )n−1i=1+f (b )]b a 误差项为:−112(b −a )h 2f ′′(δ)【算法分析】复合Simpson 法则和复合梯形法则的算法上述描述中都已介绍了,在此不多做叙述。
利用数值积分公式求解积分方程 分别用复化求积公式和高斯型求积公式

利用数值积分公式求解积分方程分别用复化求积公式和高斯
型求积公式
数值积分方法通常用于求解无法解析求解的定积分问题,其中复化求积公式和高斯型求积公式是两种常见的数值积分方法。
1. 复化求积公式:
复化求积公式是通过将积分区间等分成多个小区间,并在每个小区间上采用简单的数值积分公式来逼近原积分问题。
常见的复化求积公式包括梯形法则和Simpson法则。
梯形法则:将积分区间[a, b]等分成n个小区间,每个小区间
用梯形面积的方法求解,然后将各个小区间的积分结果相加得到最终的积分近似值。
Simpson法则:将积分区间[a, b]等分成n个小区间,每个小区
间用Simpson公式求解,然后将各个小区间的积分结果相加得到最终的积分近似值。
2. 高斯型求积公式:
高斯型求积公式是通过将积分区间映射为[-1, 1]上的积分问题,然后通过选取合适的节点和权重,将原积分问题转化为有限个加权节点的求和问题。
常见的高斯型求积公式包括Gauss-Legendre公式和Gauss-Hermite公式。
Gauss-Legendre公式:适用于求解定义在[-1, 1]区间上的定积
分问题,根据节点个数的不同,可以得到不同阶数的Gauss-Legendre公式。
Gauss-Hermite公式:适用于求解定义在整个实数轴上的定积分问题,通过选取合适的节点和权重,将原积分问题转化为有限个加权节点的求和问题。
总结:复化求积公式适用于一般的定积分问题,可以通过合理选择划分区间和数值积分公式来提高数值积分的精度。
而高斯型求积公式通常适用于具有特殊形式或定义域的定积分问题,可以通过选取合适的节点和权重来获得较高的数值积分精度。
利用复化梯形公式、复化simpson 公式计算积分

1、运用复化梯形公式、复化simpson公式计算积分
2、比较计算误差与实际误差
实验原理(算法流程图或者含注释旳源代码)
取n=2,3,…,10分别运用复化梯形公式、复化simpson公式计算积分 ,并与真值进行比较,并画出计算误差与实际误差之间旳曲线。
运用复化梯形公式旳程序代码如下:
function f=fx(x)
functionf=fx1(x)
f=x.^4;
a=0;%积分下线
b=1;%积分上线
T=[];%用来装不同n值所计算出旳成果
forn=2:10
h=(b-a)/(2*n);%步长
x=zeros(1,2*n+1);%给节点定初值
for i=1:2*n+1
x(i)=a+(i-1)*h;%给节点赋值
end
y=x.^4;%给相应节点处旳函数值赋值
实
验
结
果
分
析
及
心
得
体
会
上图是运用复化梯形公式所画出旳误差。其中:红线是计算误差,‘*’号是实际误差。-0.0017是计算误差。0.0417、0.0185、0.0104、0.00670.0046、0.0034、0.0026、0.0021、0.0017是n值分别为2到10旳实际误差。
上图是运用复化simpson公式所画出旳误差。其中:红线是计算误差,‘*’号是实际误差。
t=0;
for i=1:n
t=t+h/3*(y(2*i-1)+4*y(2*i)+y(2*i+1));%运用复化simpson公式求值
end
T=[T,t];%把不同n值所计算出旳成果装入T中
end
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验
目
的
或
要
求1、利用复化梯形公式、复化simpson 公式计算积分 2、比较计算误差与实际误差
实
验
原
理
(
算
法
流
程
图
或
者
含
注
释
的
源
代
码
)
取n=2,3,…,10分别利用复化梯形公式、复化simpson 公式计算积分1
20I x dx =⎰,并与真值进行比较,并画出计算误差与实际误差之间的曲线。
利用复化梯形公式的程序代码如下: function f=fx(x) f=x.^2; %首先建立被积函数,以便于计算真实值。
a=0; %积分下线 b=1; %积分上线 T=[]; %用来装不同n 值所计算出的结果 for n=2:10; h=(b-a)/n; %步长 x=zeros(1,n+1); %给节点定初值 for i=1:n+1 x(i)=a+(i-1)*h; %给节点赋值 end y=x.^2; %给相应节点处的函数值赋值 t=0; for i=1:n t=t+h/2*(y(i)+y(i+1)); %利用复化梯形公式求值 end T=[T,t]; %把不同n 值所计算出的结果装入 T 中 end R=ones(1,9)*(-(b-a)/12*h.^ 2*2); %积分余项(计算误差)
true=quad(@fx,0,1); %积分的真实值
A=T-true; %计算的值与真实值之差(实际误差)
x=linspace(0,1,9);
plot(x,A,'r',x,R,'*') %将计算误差与实际误差用图像画出来
注:由于被积函数是x.^2,它的二阶倒数为2,所以积分余项为:(-(b-a)/12*h.^ 2*2)
实
验
原
理
(
算
法
流
程
图
或
者
含
注
释
的
源
代
码)利用复化simpson 公式的程序代码如下:
同样首先建立被积函数的函数文件:
function f=fx1(x)
f=x.^4;
a=0; %积分下线
b=1; %积分上线
T=[]; %用来装不同n值所计算出的结果
for n=2:10
h=(b-a)/(2*n); %步长
x=zeros(1,2*n+1); %给节点定初值
for i=1:2*n+1
x(i)=a+(i-1)*h; %给节点赋值
end
y=x.^4; %给相应节点处的函数值赋值
t=0;
for i=1:n
t=t+h/3*(y(2*i-1)+4*y(2*i)+y(2*i+1)); %利用复化simpson公式求值end
T=[T,t] ; %把不同n值所计算出的结果装入T中
end
R=ones(1,9)*(-(b-a)/180*((b-a)/2).^4*24) ; %积分余项(计算误差)
true=quad(@fx1,0,1); %积分的真实值
A=T-true; %计算的值与真实值之差(实际误差)
x=linspace(0,1,9);
plot(x,A,'r',x,R,'*')
法二:
a=0;
b=1;
T=[];
for n=2:10
h=(b-a)/(2*n);
x=zeros(1,2*n+1);
for i=1:2*n+1
x(i)=a+(i-1)*h;
end
y=x.^4;
t=y(1)+y(2*n+1);
for i=1:n
t=t+4*y(2*i)+2*y(2*i-1);
end
T=[T,h/3*t];
end
true=quad(@fx1,0,1);
A=T-true;
x=linspace(0,1,9);
plot(x,A)
此法与第一种一样,只是所用的表达式不同。
注:由于被积函数是x.^4,它的四阶倒数是24,所以它的积分余项是:(-(b-a)/180*((b-a)/2).^4*24)
实
验结果分析及心得体会上图是利用复化梯形公式所画出的误差。
其中:红线是计算误差,‘*’号是实际误差。
-0.0017是计算误差。
0.0417、0.0185、0.0104、0.0067 0.0046、0.0034、0.0026、0.0021、0.0017是n值分别为2到10的实际误差。
上图是利用复化simpson公式所画出的误差。
其中:红线是计算误差,‘*’号是实际误差。
注:纵轴是0.0001。
0.5208、0.1029、0.0326、0.0133、0.0064、0.0035、0.0020、0.0013、0.0008是n值分别为2到10的实际误差,-0.0083是计算误差。
成
绩
评
定
教师签名:
年月日。