【数值分析】微分求积:复化梯形、复化辛浦生
来源:互联网 发布:淘宝 7折设置 编辑:程序博客网 时间:2024/06/01 12:18
本科课程参见:《软件学院那些课》
复化梯形
将积分区间[a,b]划分n等分,步长,求积节点,在每个小区间上应用梯形公式
记 式为复化梯形求积公式,下标n表示将区间n等分。
算法流程
算法代码
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等分,记子区间的中点为在每个小区间上应用辛普森公式,则有其中
式为复化辛普森求积公式。
算法流程
算法代码
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;}
实验过程原始记录
分别用复化梯形公式和复化辛浦生公式计算定积分
取n=2,4,8,16,精确解为0.9460831
实验结果及分析
1、用复化梯形公式和复化辛甫生公式都能得到较为准确的结果,且等分份数越多,结果的精度越高,梯形公式虽然在等分16份时得到精度与等分4份时相同,但已经越来越接近精确解。辛甫生公式由于C++运算中双精度数值(double)只有7位有效数字的限制,增加等分份数时不容易看出其精度的增加。
2、比较两种方法运算的结果,复化辛甫生公式等分2份时实际要计算5个点的函数值,与复化梯形公式等分4份时计算量基本相同,但得到精度明显复化辛甫生公式要精确很多。
2、比较两种方法运算的结果,复化辛甫生公式等分2份时实际要计算5个点的函数值,与复化梯形公式等分4份时计算量基本相同,但得到精度明显复化辛甫生公式要精确很多。
3、复化梯形公式和复化辛甫生公式对于光滑性较差的被积函数都能得到较为精确的结果,而且公式简单,十分利于编译简单的程序由计算机运算,因而得到广泛的应用。
4、实验中的主要误差来自于计算机浮点运算中的截余。
4、实验中的主要误差来自于计算机浮点运算中的截余。
(转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu 未经允许请勿用于商业用途)
- 【数值分析】微分求积:复化梯形、复化辛浦生
- 【数值分析】微分求积:复化梯形、复化辛浦生
- 微分求积:复化梯形、复化辛浦生
- 复化梯形公式求积
- 梯形方法(数值分析 c++)
- 变步长梯形求数值积分
- 数值作业:变步长梯形求积算法计算积分C语言实现
- 数值微分
- 复化梯形公式
- 数值微分画线算法
- Matlab实现数值微分
- 梯形求积公式 和 复合梯形求积公式 Matlab 实现
- DDA(数值微分法)
- 数值微分法划DDA
- 数值分析课题二 矩阵求逆
- d009: 求梯形的面积
- 小程序求梯形面积
- 梯形法、龙格库塔法求解微分方程 数值解
- ubuntu创建eclipse桌面图标
- Hbase学习笔记(一)
- 开源 免费 java CMS - FreeCMS-标签 infoAttchs .
- Android SharedPreferences问题
- win ce Makefile File !INCLUDE $(_MAKEENVROOT)\makefile.def
- 【数值分析】微分求积:复化梯形、复化辛浦生
- 小命令记下来免得以后找
- Criteria条件查询和全部查询
- 理解面向消息中间件及JMS 以及 ActiveMQ例子
- 分享Windows系统Vim编辑器乱码解决分析
- XMLHttpRequest对象方法和属性
- CentOS下JAVA虚拟机安装攻略
- 程序员学习能力提升三要素
- Apache ActiveMQ介绍