实验9 数值积分实验

成绩

实验类型:●验证性实验  ○综合性实验  ○设计性实验

实验目的:进一步熟练掌握变步长数值积分算法,提高编程能力和解决定积分问题的实践技能。

实验内容:用龙贝格积分算法计算

实验原理

实验算例中a=0,b=1,f(x)=x2 .

T(0)=(b-a)(f(a)+f(b))/2 ; H(0) =(b-a)·f( (a+b)/2 ) ; T(i)=(T(i-1)+H(i-1))/2

T(i)的语义是将积分区间做2i 等分复化梯形求积分公式算出的近似值。

H(i)的语义是将积分区间做2i 等分时,将每个小区间的长度乘该小区间中点处函数值的乘积进行累加求和的结果。

龙贝格积分算法:生成i>=j 的积分近似值表R(i, j)具体计算如下:.

R(i,0)=T(i)=(T(i-1)+H(i-1))/2, i>=0,T(i)为区间逐次减半递推梯形求积分公式算出的结果;

R(i,1)=S(i), i>=1,S(i)为由T(i)、T(i-1)联合递推得出的区间逐次减半递推辛普森求积分公式算出的结果;

R(i,2)=B(i), i>=2,B(i)为由S(i)、S(i-1)联合递推得出布尔求积分公式算出的结果;

,,,,,,,,,,;归纳总结有如下递推关系式

由上面递推关系式计算积分近似值R(i, j)构成三角表,循环结束条件:|R(i, i)-R(i-1, i-1)|<< span="">成立时,则以R(i, i)作为最终的积分近似值,否则继续循环计算。这一算法叫龙贝格积分算法,

实验步骤

1 要求上机实验前先编写出程序代码

2 编辑录入程序

3 调试程序并记录调试过程中出现的问题及修改程序的过程

4 经反复调试后,运行程序并验证程序运行是否正确。

5 记录运行时的输入和主要中间结果输出,以便与手工解算作比较。

6 要求在A4纸上手工计算并和计算机程序计算的主要中间结果进行比较,验证手工解算和机器解算的R(i, j)构成三角表是否一致。

实验报告:根据实验情况和结果撰写并递交实验报告。

实验总结 (学会了......; 掌握了......; 训练了......; 发现了......; 今后学习中......有待提高。)

程序代码(MATLAB程序,必须自己独立编程)

电子报告word文件命名规则:专业班级-学号后两位-实验X-姓名.doc, 如信息123班学号为201212030315的郭海涛同学实验9报告word文件命名则应是:信息123-15-实验9-郭海涛.doc, 其中 .doc是Word文件扩展名。特别提醒:电子报告文件命名不规范的报告将不予接收。

一、实验代码

function s = maromb(fun,a,b,tol)

%用龙贝格公式求积分

%格式:s = maromb(fun,a,b,tol),fun 是被积函数,a,b是积分

%下、上限,tol 是容许误差,s 是返回积分近似值

if nargin < 4,tol = 1e-4;end

i = 1;j = 1;h = b - a;

T(1,1) = h * (feval(fun,a) + feval(fun,b)) / 2;

T(i+1,j) = T(i,j)/2 + sum(feval(fun,a + h/2:h:b - h/2)) * h/2;

T(i+1,j+1) = (4^j * T(i+1,j) - T(i,j)) / (4^j - 1);

while (abs(T(i+1,i+1) - T(i,i)) > tol)

i = i+1;

h = h/2;

T(i+1,1) = T(i,1)/2 + sum(feval(fun,a + h/2:h:b - h/2)) * h/2;

for j = 1:i

T(i+1,j+1) = (4^j * T(i+1,j) - T(i,j)) / (4^j - 1);

end

end

T

s = T(i+1,j+1);

运行结果:

>> fun = inline('x.^2');

>> a = 0;

>> b = 1;

>> tol = 1e-5;

>> s = maromb(fun,a,b,tol)

T =

0.5000         0         0

0.3750    0.3333         0

0.3438    0.3333    0.3333

s =

0.3333

二、实验总结

通过本次实验我学会了使用龙贝格公式求积分的算法程序;掌握了使用龙贝格算法求解积分的本领;训练了我的编程的能力和把数学问题转化为算法的能力;在本次实验中我发现了自己在编程方面和思考问题方面的一些不足;在今后的学习中我的编程能力和编写算法的能力有待提高。

matlab用辛普森公式求积分_数值计算实验9 数值积分实验相关推荐

  1. matlab用辛普森公式求积分_标准正态分布概率密度函数的定积分计算方法及Python实现代码...

    最近利用碎片时间在读Allen B.Downey的<贝叶斯思维:统计建模的Python学习法>,顺便用手机上的Pythonista写实例.因为Pythonista没有scipy科学计算包, ...

  2. matlab用辛普森公式求积分_积分近似计算之辛普森公式

    对于积分区间[a, b],若 则成立 辛普森公式 辛普森公式可看作是改良的梯形公式.梯形公式是以直线逼近实际曲线,而辛普森公式则以二次曲线(即抛物线)逼近. 以二次曲线逼近实际曲线 根据辛普森公式可得 ...

  3. matlab用辛普森公式求积分_数值积分常用方法

    数值积分的基本思想 由积分中值定理可知,在积分区间 内存在一点 ,成立 式的几何意义即为:底为 而高为 的矩形的面积恰等于所求曲边梯形的面积 .因此,要想求出 式左端积分,我们只需要知道三个值: 即可 ...

  4. matlab用辛普森公式求积分_如何用Excel公式求最大值对应的行列序号

    微信公众号: Excel and Python 微信名搜索: 实用办公编程技能 如何用Excel公式求最大值对应的行列序号呢? 下面,我们来看看来自问题互动栏目的一个具体问题. 具体问题:求出哪一天哪 ...

  5. matlab用辛普森公式求积分_变限积分函数求导以及高阶导数求法的一些总结

    感谢 @聚创考研 的张帆老师,给我上了一堂生动的课.特此总结一下课上求导数的方法(怕自己忘了). 1.变限积分函数求导 变限积分函数求导简单的分为三类: 第一类(或者形如 这种)可以直接得到 ,第二. ...

  6. 2017杭电ACM集训队单人排位赛 - 2 -1002 地狱飞龙 (辛普森公式求积分)(模板)

    题干: 最近clover迷上了皇室战争,他抽到了一种地狱飞龙,很开心.假设地域飞龙会对距离为d的敌人每秒造成k/d2k/d^2伤害.假设地域飞龙位于坐标轴原点,以每秒v1的速度向y轴正方向移动,敌人在 ...

  7. C++实现复化辛普森公式求积分算法

    1. 算法原理简介 步1 将积分区间 [a,b] 分成 n 等分,分点为 xk=a+kh(k=0,1,⋯,n),其中 h=(b-a)/n. 步2 记区间 [xk,x(k+1)] 的中点为 x(k+1/ ...

  8. 自适应复化辛普森公式求积算法(C语言实现)

    自适应复化辛普森公式求积算法(C语言实现) 利用复化辛普森公式求积分自适应步骤 基于C语言实现的代码 利用复化辛普森公式求积分自适应步骤 h为步长,a为积分下限,b为积分上限,f为积分函数,n为划分的 ...

  9. matlab中几种求积分的方法

    matlab中几种求积分的方法 举例图形 Midpoint Rule Trapezoid Rule 13 Simpsons 利用integral 结果显示 matlab中几种求积分的方法 最近看了几天 ...

最新文章

  1. 机器学习(Part I)机器学习的种类
  2. 我说分布式事务之消息最终一致性事务(一):原理及实现
  3. zabbix mysql模板_zabbix模板监控mysql
  4. 如何把 DropDownList 某一个 Item 的 Text 改成粗体 ?
  5. 深度学习实践经验汇总
  6. 又论社区风气, 与程序员是干嘛地的.
  7. 【Cocos游戏实战】功夫小子第七课之游戏主功能场景逻辑功能和暂停功能场景的分析和实现...
  8. django_4:数据库0——配置数据库
  9. Microsoft Deployment Toolkit build 8456
  10. C# 关键字--using
  11. 双目测距(二)--双目标定与矫正
  12. React Router的Route的使用
  13. 预告:阿里云存储+企业出海全球化网络新品发布会 | 凌云时刻
  14. python物性库能调用哪些物质_Python获取流体热物性(1):CoolProp和python-refprop
  15. 程序员面试题分享,掌握八成便可BAT一试!
  16. 在 Chrome 浏览器中安装印象笔记·剪藏插件
  17. MyBatis-Plus中CURD常用方法及注解
  18. 已解决:系统更新报错KB3001652--错误0x80070643
  19. 从苏宁电器到卡巴斯基(第二部)第06篇:我在卡巴的日子 VI
  20. 防红直连php,全新网址缩短防封 QQ/微信防红 短网址生成系统PHP源码

热门文章

  1. 2016-03-02 积累名句 常读常熟
  2. PTA 7-105 寻找250
  3. Vue-基于组件写简单页面-前端网页简历
  4. STM32工作笔记007---认识OLED屏和LCD屏的区别
  5. Ubuntu蓝牙Bluetooth命令行连接发送文件完整流程
  6. 后3Q大战时代的防护选择
  7. MySQL分布式设计
  8. matlab支路参数矩阵,哪位大神看看这个程序呀,参数下面给了
  9. Rodrigues formula
  10. 部署exchange提示“由于父类不在可能的上级列表,不能添加该对象”