【数值分析】微分求积:复化梯形、复化辛浦生
2013-02-17 14:19
375 查看
本科课程参见:《软件学院那些课》
![](http://img.my.csdn.net/uploads/201302/17/1361081046_6186.png)
,求积节点
![](http://img.my.csdn.net/uploads/201302/17/1361081071_1115.png)
,
![](http://img.my.csdn.net/uploads/201302/17/1361081096_3195.png)
在每个小区间
![](http://img.my.csdn.net/uploads/201302/17/1361081125_6891.png)
上应用梯形公式
![](http://img.my.csdn.net/uploads/201302/17/1361081147_6882.png)
然后将它们累加求和,作为所求积分I的近似值.
![](http://img.my.csdn.net/uploads/201302/17/1361081201_2675.png)
记
![](http://img.my.csdn.net/uploads/201302/17/1361081243_5475.png)
式为复化梯形求积公式,下标n表示将区间n等分。
![](http://img.my.csdn.net/uploads/201302/17/1361081346_9505.png)
![](http://img.my.csdn.net/uploads/201302/17/1361081715_2123.png)
的中点为
![](http://img.my.csdn.net/uploads/201302/17/1361081754_6228.png)
在每个小区间上应用辛普森公式,则有
![](http://img.my.csdn.net/uploads/201302/17/1361081779_4260.png)
其中
![](http://img.my.csdn.net/uploads/201302/17/1361081812_8634.png)
记
![](http://img.my.csdn.net/uploads/201302/17/1361081876_9222.png)
式为复化辛普森求积公式。
![](http://img.my.csdn.net/uploads/201302/17/1361081958_4842.png)
![](http://img.my.csdn.net/uploads/201302/17/1361082150_7985.png)
取n=2,4,8,16,精确解为0.9460831
![](http://img.my.csdn.net/uploads/201302/17/1361082194_8264.png)
2、比较两种方法运算的结果,复化辛甫生公式等分2份时实际要计算5个点的函数值,与复化梯形公式等分4份时计算量基本相同,但得到精度明显复化辛甫生公式要精确很多。
3、复化梯形公式和复化辛甫生公式对于光滑性较差的被积函数都能得到较为精确的结果,而且公式简单,十分利于编译简单的程序由计算机运算,因而得到广泛的应用。
4、实验中的主要误差来自于计算机浮点运算中的截余。
复化梯形
将积分区间[a,b]划分n等分,步长![](http://img.my.csdn.net/uploads/201302/17/1361081046_6186.png)
,求积节点
![](http://img.my.csdn.net/uploads/201302/17/1361081071_1115.png)
,
![](http://img.my.csdn.net/uploads/201302/17/1361081096_3195.png)
在每个小区间
![](http://img.my.csdn.net/uploads/201302/17/1361081125_6891.png)
上应用梯形公式
![](http://img.my.csdn.net/uploads/201302/17/1361081147_6882.png)
然后将它们累加求和,作为所求积分I的近似值.
![](http://img.my.csdn.net/uploads/201302/17/1361081201_2675.png)
记
![](http://img.my.csdn.net/uploads/201302/17/1361081243_5475.png)
式为复化梯形求积公式,下标n表示将区间n等分。
算法流程
![](http://img.my.csdn.net/uploads/201302/17/1361081346_9505.png)
算法代码
double f(double x){ if(x==0) return 1; else return (sin(x)/x); } double FuhuaTixing(int n,double a,double b){ double h = (b-a)/n; double x = a; double s = 0; for(int k=0; k< n-1; k++){ x += h; s += f(x); } double T = (f(a)+s*2+f(b))*h/2; return T; } int main(){ char ans='n'; do{ cout<<"请输入积分区间(a,b):"<<endl; double a; double b; cin>>a>>b; cout<<"请输入等分份数n: "<<endl; int n; cin>>n; cout<<"由复化梯形公式球的结果:"<<FuhuaTixing(n,a,b)<<endl; cout<<"是否要继续?(y/n)"; cin>>ans; }while(ans == 'y'); return 0; }
复化辛复生
将积分区间[a,b]划分n等分,记子区间![](http://img.my.csdn.net/uploads/201302/17/1361081715_2123.png)
的中点为
![](http://img.my.csdn.net/uploads/201302/17/1361081754_6228.png)
在每个小区间上应用辛普森公式,则有
![](http://img.my.csdn.net/uploads/201302/17/1361081779_4260.png)
其中
![](http://img.my.csdn.net/uploads/201302/17/1361081812_8634.png)
记
![](http://img.my.csdn.net/uploads/201302/17/1361081876_9222.png)
式为复化辛普森求积公式。
算法流程
![](http://img.my.csdn.net/uploads/201302/17/1361081958_4842.png)
算法代码
double f(double x){ if (x==0) return 1; else return (sin(x)/x); } double Xinfusheng(double a,double b,int n){ double h = (b-a)/n; double x = a+1/2*h; double s = 4*f(x); for(int k=1;k<n;k++){ x += 1/2*h; s += 4*f(x); x += 1/2*h; s += 2*f(x); } double T=(f(a)+s+f(b))*h/6; return T; } int main(){ char ans='n'; do{ cout<<"请输入积分区间(a,b):"<<endl; double a; double b; cin>>a>>b; cout<<"请输入等分份数n: "<<endl; int n; cin>>n; cout<<"由复化梯形公式球的结果:"<<Xinfusheng(a,b,n)<<endl; cout<<"是否要继续?(y/n)"; cin>>ans; }while(ans == 'y'); return 0; }
实验过程原始记录
分别用复化梯形公式和复化辛浦生公式计算定积分![](http://img.my.csdn.net/uploads/201302/17/1361082150_7985.png)
取n=2,4,8,16,精确解为0.9460831
![](http://img.my.csdn.net/uploads/201302/17/1361082194_8264.png)
实验结果及分析
1、用复化梯形公式和复化辛甫生公式都能得到较为准确的结果,且等分份数越多,结果的精度越高,梯形公式虽然在等分16份时得到精度与等分4份时相同,但已经越来越接近精确解。辛甫生公式由于C++运算中双精度数值(double)只有7位有效数字的限制,增加等分份数时不容易看出其精度的增加。2、比较两种方法运算的结果,复化辛甫生公式等分2份时实际要计算5个点的函数值,与复化梯形公式等分4份时计算量基本相同,但得到精度明显复化辛甫生公式要精确很多。
3、复化梯形公式和复化辛甫生公式对于光滑性较差的被积函数都能得到较为精确的结果,而且公式简单,十分利于编译简单的程序由计算机运算,因而得到广泛的应用。
4、实验中的主要误差来自于计算机浮点运算中的截余。
(转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu 未经允许请勿用于商业用途)
相关文章推荐
- 【数值分析】微分求积:复化梯形、复化辛浦生
- 复化梯形求积公式 c语言实现 数值积分
- 数值分析之龙贝格求积法
- 【数值分析】复化积分公式
- 变步长复化梯形法求积
- 数值积分之复化求积法
- 微分求积:复化梯形、复化辛浦生
- 变步长梯形求积公式 c语言实现 数值积分
- 梯形方法(数值分析 c++)
- 数值作业:变步长梯形求积算法计算积分C语言实现
- 【数值分析】复化积分公式
- 高等数值分析_9月27号课程讲义
- 数值分析多种算法C语言代码-推荐
- 《用Python学习数值分析--解方程》
- C++与matlab混合编程基于主成份分析算法的数值分析(二)
- 数值分析之 拉格朗日插值、牛顿插值、分段线性插值实现
- PING数值的TTL情况分析
- 数值分析:数据插值方法
- 数值分析 第七章 常微分方程的数值解法
- 数值分析小项目Numeric