【数值分析】微分求积:复化梯形、复化辛浦生
来源:互联网 发布:java统计字符出现次数 编辑:程序博客网 时间:2024/06/06 04:27
本科课程参见:《软件学院那些课》
复化梯形
将积分区间[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份时计算量基本相同,但得到精度明显复化辛甫生公式要精确很多。
3、复化梯形公式和复化辛甫生公式对于光滑性较差的被积函数都能得到较为精确的结果,而且公式简单,十分利于编译简单的程序由计算机运算,因而得到广泛的应用。2、比较两种方法运算的结果,复化辛甫生公式等分2份时实际要计算5个点的函数值,与复化梯形公式等分4份时计算量基本相同,但得到精度明显复化辛甫生公式要精确很多。
4、实验中的主要误差来自于计算机浮点运算中的截余。
0 0
- 【数值分析】微分求积:复化梯形、复化辛浦生
- 【数值分析】微分求积:复化梯形、复化辛浦生
- 微分求积:复化梯形、复化辛浦生
- 复化梯形公式求积
- 梯形方法(数值分析 c++)
- 变步长梯形求数值积分
- 数值作业:变步长梯形求积算法计算积分C语言实现
- 数值微分
- 复化梯形公式
- 数值微分画线算法
- Matlab实现数值微分
- 梯形求积公式 和 复合梯形求积公式 Matlab 实现
- DDA(数值微分法)
- 数值微分法划DDA
- 数值分析课题二 矩阵求逆
- d009: 求梯形的面积
- 小程序求梯形面积
- 梯形法、龙格库塔法求解微分方程 数值解
- 实现拍照本地上传在GridView中显示
- 回复大姐夫哥几个开会开会公开
- 【数值分析】常微分方程数值解:欧拉公式
- cocos2d 纹理加载机制
- ssh反向连接和简单实现
- 【数值分析】微分求积:复化梯形、复化辛浦生
- 解决Git出现rpc failed 问题
- 自然图像抠图/视频抠像技术发展情况梳理
- OCP 1Z0 053 265
- cocos2d lua集成XML教程
- ARM 汇编命令参考AREA
- UIButton使用详解
- 【数值分析】插值法:拉格朗日插值、牛顿插值
- hibernate 注解(一)主键生成(转)