1.数值方法中要求用Matlab复合Simpson公式做此题(要求完整过程,
clc
format long
clear
a=0;b=1;p=0;
n=4;m=0;
h=(b-a)/n;
for i=1:n-1
x=0;
x=a+h*i;
m=m+sin(x)/x;
end
h=(b-a)/(2*n);
for k=1:2:2*n
p=p+sin(a+k*h)/(a+k*h);
end
Sn=h/3*[1+4*p+2*m+sin(b)/b] %辛普森公式结果
result=sinint(1) %计算精确值
format short
结果:
Sn =
0.94608331088847
result =
0.94608307036718
>>
2.复合梯形公式和复合辛普生公式的区别
复合梯形公式和复合辛普生公式的区别:
复合梯形公式和复合辛普生公式的区别是在相同精度下复合梯形法计算量大于复合SIMPSON法。复合辛普森公式得到的结果更加精确,运算次数比较少。
在自然科学中用数学符号表示几个量之间关系的式子。具有普遍性,适合于同类关系的所有问题。在数理逻辑中,公式是表达命题的形式语法对象,除了这个命题可能依赖于这个公式的自由变量的值之外。公式精确定义依赖于涉及到的特定的形式逻辑,但有如下一个非常典型的定义(特定于一阶逻辑):公式是相对于特定语言而定义的;就是说,一组常量符号、函数符号和关系符号,这里的每个函数和关系符号都带有一个元数(arity)来指示它所接受的参数的数目。
3.如何理解复合辛普森公式
. 目的:(1)通过求定积分的程序设计,使学生理解和掌握C++语言的函数、函数指针等设计方法,培养学生综合利用C++语言解决数学计算问题,使学生将所学知识转化为分析和设计简单实际问题的能力,并学会查资料和工具书,进行创新设计。
(2)提高学生建立程序文档、归纳总结的能力。(3)进一步巩固和灵活运用先修课程《计算机文化基础》有关文字处理、图表分析、数据归整、应用软件之间图表、数据共享等信息技术处理的综合能力。
2. 基本要求:(1)要求用模块化设计和C++的思想来完成程序的设计;(2)要求用函数分别编写梯形法和辛普生法求定积分的程序,分别存到不同的.CPP文件中;(3)在VC++6.0环境中,学会调试程序的方法,及时查究错误,独立调试完成。(4)程序调试通过后,完成程序文档的整理,加必要的注释。
三、设计方法和基本原理1. 课题功能描述 本题目的功能是对梯形法和辛普森法,在不同区间数下计算所得的定积分的值,进行精度比较。2. 问题详细描述 (1)数值积分 求一个函数f(x)在[a,b]上的定积分∫baf(x) dx,其几何意义是求f(x)曲线和直线x=a,y=0,x=b所围成的曲边梯形面积。
为了近似求出此面积,可将[a,b]区间分成若各个小区间,每个区间的宽度为(b-a)/n,n为区间个数。近似求出每个小的曲边梯形面积,然后将n个小面积加起来,就近似的到总的面积。
既定积分的近似值,当n愈大(即区间分的愈小),近似程度愈高。数值积分常用的算法有:1)梯形法 用小梯形代替小曲边梯形,几何意义如图所示。
第一个小梯形的面积为:第i个小梯形的面积为:其中:2) 辛普生(Sinpson)法 在小区间范围内,用一条抛物线代替该区间的f(x)。将(a,b)区间分成2n个小区间,则辛普生法求定积分的公式为:其中:(2)要求分别采用梯形法和辛普生法分别计算f1(x)和 f2(x)的定积分。
2、问题的解决方案:(1) 编写一个梯形法求定积分的通用函数integralt(),其函数原型为:double integralt(double a, double b, double(*f)( double)); 函数的形参a,b,f分别为定积分的下限、上限和函数名 ,其中f为函数指针。(2) 编写一个辛普生法求定积分的通用函数integrals(),其函数原型为:double integrals(double a, double b, double(*f)( double)); 函数的形参a,b,f分别为定积分的下限、上限和函数名 ,其中f为函数指针。
(3) 对所求的被积分表达式分别编写函数f1和f2:f1(x)=1+x2 f2(x)=1+x+x2+x3(4) 在主函数中输入a,b(0,1)的值,先调用梯形法求积分的integralt()函数,分别计算f1和f2的定积分,并输出计算结果。再输入a,b (0,1)的值,调用辛普生法求积分的integrals()函数,分别计算f1和f2的定积分,并输出计算结果。
再次输入a,b(0,2)的值,再分别调用梯形法和辛普生法分别计算f1和f2的定积分,并输出计算结果。(5) 要求在n相同的情况下,对同一个被积函数同区间采用梯形法和辛普生法的积分结果的精度进行分析,主要观察随着n值的增加,积分结果的有效数字位数有何变化,两种方法与精确值的误差。
要求n值,分别取2,10,100,1000,5000,20000,50000进行观察。四、主要技术问题的描述:1、函数指针 一个函数在编译时被分配一个入口地址,可以将该地址赋给一个指针变量,这样,这个指针变量持有函数的入口地址,它就指向了该函数,称这种指针为指向函数的指针,简称函数指针。
2、函数指针定义的一般形式:数据类型 (*指针变量)(形式参数);例:int (*pf)(int a,int b);3、调用的形式举例:double integral (double a,double b,int n,double(*f)(double )) { … ff1=(*f)(a); … ff2=(*f)(x); … } double f1(double x) { double y1; y1=1+x*x; return y1; } void main () { 。
cin>>a>>b>>n; intesum1=integral(a,b,n,f1); }。
4.用Simpson公式计算积分
Nweton—Cotes公式的求积余项表明,求积节点n越大,对应的求积公式精度越高,但由于Nweton—Cotes公式在n>8时数值不稳定,因此不能用增加求积节点数的方法来提高计算精度。实用中常将求积区间[a,b]分成若干个小区间,然后在每个小区间上采用数值稳定的Nweton—Cotes公式求小区间上的定积分,最后把所有小区间上的计算结果相加来作为原定积分的近似值。采用这种方法构造的求积公式就称为复合求积公式。复合求积公式具有计算简单且可以任意逼近所求定积分值的特点,这是Nweton—Cotes公式一般做不到的。常用的复合求积公式有复合梯形公式和复合Simpson公式。
① 复合梯形公式
取等距节点 xk=a+kh ,h=(b-a)/n ,k=0,1,。.,n 将积分区间[a,b]n等分,在每个小区间[xk,xk+1] k=0,1,。n-1上用梯形公式做近似计算,就有
得求积公式
(15)是称为复合梯形公式。
通常记(15)的右端为
它称为 T 形值。因为
故复合梯形公式的求积余项为
如果|f"(x)|≤M2,由于a,b是有限数,故若给定计算精度ξ,由(16),令
即只要取h满足(17),及n=(b-a)/h,利用复合求积公式(15)计算,就能得到计算误差小于ξ的定积分近似值。
②复合Simpson公式
取[a,b]上的等距节点 xk=a+kh ,h=(b-a)/n ,k=0,1,。n,将[a,b]n等分,在每个小区间[xk,xk+1]上用Simpson公式做近似计算,就有
式中xk+1/2 = xk+h/2,于是求得下面复合Simpson公式:
利用Simpson公式的求积余项,可以得到复合Simpson公式的求积余项为:
从复合Simpson公式的求积余项可以看出复合Simpson公式比复合梯形公式好,不过前者计算量大些。复合Simpson公式也称为复合抛物线公式。
采用如上构造复合求积公式的方法可以构造出其他类型的复合求积公式,如复合Cotes公式等。实际上复合求积公式本质上是用在求积节点上的分段插值函数代替被积函数f(x)获得求积公式,所以它们归为插值型求积公式,如复合梯形公式是用分段型插值函数取代f(x)参与积分,复合Simpson公式是用分段二次插值函数取代f(x)参与积分等。
5.用Simpson公式计算积分
Nweton—Cotes公式的求积余项表明,求积节点n越大,对应的求积公式精度越高,但由于Nweton—Cotes公式在n>8时数值不稳定,因此不能用增加求积节点数的方法来提高计算精度。
实用中常将求积区间[a,b]分成若干个小区间,然后在每个小区间上采用数值稳定的Nweton—Cotes公式求小区间上的定积分,最后把所有小区间上的计算结果相加来作为原定积分的近似值。采用这种方法构造的求积公式就称为复合求积公式。
复合求积公式具有计算简单且可以任意逼近所求定积分值的特点,这是Nweton—Cotes公式一般做不到的。常用的复合求积公式有复合梯形公式和复合Simpson公式。
① 复合梯形公式 取等距节点 xk=a+kh ,h=(b-a)/n ,k=0,1,。.,n 将积分区间[a,b]n等分,在每个小区间[xk,xk+1] k=0,1,。
n-1上用梯形公式做近似计算,就有得求积公式(15)是称为复合梯形公式。 通常记(15)的右端为它称为 T 形值。
因为故复合梯形公式的求积余项为如果|f"(x)|≤M2,由于a,b是有限数,故若给定计算精度ξ,由(16),令即只要取h满足(17),及n=(b-a)/h,利用复合求积公式(15)计算,就能得到计算误差小于ξ的定积分近似值。②复合Simpson公式 取[a,b]上的等距节点 xk=a+kh ,h=(b-a)/n ,k=0,1,。
n,将[a,b]n等分,在每个小区间[xk,xk+1]上用Simpson公式做近似计算,就有 式中xk+1/2 = xk+h/2,于是求得下面复合Simpson公式: 利用Simpson公式的求积余项,可以得到复合Simpson公式的求积余项为:从复合Simpson公式的求积余项可以看出复合Simpson公式比复合梯形公式好,不过前者计算量大些。复合Simpson公式也称为复合抛物线公式。
采用如上构造复合求积公式的方法可以构造出其他类型的复合求积公式,如复合Cotes公式等。实际上复合求积公式本质上是用在求积节点上的分段插值函数代替被积函数f(x)获得求积公式,所以它们归为插值型求积公式,如复合梯形公式是用分段型插值函数取代f(x)参与积分,复合Simpson公式是用分段二次插值函数取代f(x)参与积分等。
6.如何理解复合辛普森公式
最低0.27元开通文库会员,查看完整内容> 原发布者:beautifulzzzz 实验5复合辛普森公式李涛201226100108计自1201一、实验目的用复合辛普森公式计算积分,使误差不超过(注意所给积分特点,做出相应的处理后再计算)二、实验步骤1.算法原理复合辛普森原理:将区间划分为n等分,在每个子区间上采用辛普森公式,若记则得记称为复合辛普森求积公式,其余项为于是当时,与复合梯形公式相似有易知误差阶为,收敛性是显然的,实际上,只要则可得到收敛性,即此外,由于中求积公系数均为正数,故知辛普森公式计算稳定。
2.算法步骤复合辛普森:首先将区间划分为n等分,在每个子区间上采用辛普森公式,若记则得算法过程:这里将辛普森公式写为Sn()函数,然后在Solve()函数里依次计算S1,S2,S4,S6。
.当相邻的精度小于eps时退出循环,则S2n保存结果。三.程序代码#include#include#defineeps1e-6usingnamespacestd;doublef(doublex){returnsqrt(1+cos(x)*cos(x));}//被积函数doubleSn(doublea,doubleb,doublen){doubleh=(a+b)/(2*n);doublesum=0;for(intk=1;k<=n;k++){sum+=2*f(a+(2*k-1)*h);sum+=f(a+2*k*h);}sum=(sum*2+f(a)-f(b))*h/3;returnsum;}//辛普森公式doubleSolve(doublea,doubleb。
转载请注明出处育才学习网 » 复合simpson公式怎么写