matlab短学期任务

matlab短学期任务

ID:29883522

大小:59.32 KB

页数:9页

时间:2018-12-24

matlab短学期任务_第1页
matlab短学期任务_第2页
matlab短学期任务_第3页
matlab短学期任务_第4页
matlab短学期任务_第5页
资源描述:

《matlab短学期任务》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数学应用软件大型实验实验报告实验序号:B56日期:2013年7月3日班级数学1101姓名姜永成学号201110790106实验名称编写抛物线法求定积分近似值的程序问题背景描述:利用牛顿-莱布尼茨公式虽然可以精确地计算出定积分的值;但它仅仅适用用于被积函数的原函数能用初等函数表达出来的情况,如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法,在很多的定积分应用过程中,大多被积函数没有解析表达式,可能只是一条实验记录曲线或者是一组离散的采样值,这时只能应用近似方法去求解相应的定积分。实验目的:本实验只要研究定积分的一种近似计算算法:抛物线法,并了解如何控制精确

2、度,然后对积分具体计算。实验原理与数学模型:由梯形法求近似值时,当为曲线时,它就偏小,当y=f(x)是为曲线时,它就偏大,若每部分改用与性相接近的抛物线来近似时,就可以减少上述缺点,这就是抛物线法。当把区间作2n等分,分点依次为;对应函数值为;曲线上相应点为:现把区间上的曲线y=f(x)用通过三点的抛物线;来近似替代,然后求函数从到的定积分;同样也有:………………………………将这n个积分相加即得原来要求计算的定积分的近似值这就是抛物线法,也称为辛普森(simpson)公式。主要内容(要点):用matlab编写抛物线法求定积分近似值的程序,要求精确到小数点后第k(本

3、题假设k=13),并对积分具体计算。实验所用软件及版本:matlab7.0实验过程记录(含:基本步骤、主要程序清单及异常情况记录等):一:基本步骤:(1)查找相关资料(数值分析,中国知网网站等)来了解什么是抛物线法,抛物线法的原理以及数学模型。(2)在了解抛物线法概念的前提下,开始编写程序(以积分)为例。formatlong%长格式,显示15位有效数字n=10;a=0;b=1;inum=0;symsxfxfx=1/(1+x^2);fori=1:nxj=a+(i-1)*(b-a)/n;xi=a+i*(b-a)/n;xk=(xi+xj)/2;fxj=subs(fx,'

4、x',xj);fxi=subs(fx,'x',xi);fxk=subs(fx,'x',xk);inum=inum+(fxj+4*fxk+fxi)*(b-a)/(6*n);endinum(3)在编写程序时,遇到了如何来很好得控制精确度的问题。(4)在不断的修改下,最终得到了较好的程序代码。formatlong%长格式,显示15位有效数字n=10;a=0;b=1;inum=0;symsxfxfx=1/(1+x^2);fori=1:nxj=a+(i-1)*(b-a)/n;xi=a+i*(b-a)/n;xk=(xi+xj)/2;fxj=subs(fx,'x',xj);fx

5、i=subs(fx,'x',xi);fxk=subs(fx,'x',xk);inum=inum+(fxj+4*fxk+fxi)*(b-a)/(6*n);endinumintegrate=int(fx,0,1)integrate=double(integrate)fprintf('therelativeerrorbetweeninumandreal-valueisabout:%d',...abs(inum-integrate)/intagrate)实验结果报告与实验总结:(1)程序一的结果:inum=0.78539816324245(2)程序二的结果:inu

6、m=0.78539816324245integrate=1/4*piintegrate=0.78539816339745(3)在程序中可以将n的值改变,变成n=20时,得到如下结果:inum=0.78539816339503integrate=1/4*piintegrate=0.78539816339745现在可以改变n的值,加大精确值。又当n=40时,结果如下:inum=0.78539816339741integrate=1/4*piintegrate=0.78539816339745现在看到刚好精确值到达小数点后第13位,即满足题目要求。实验总结:从中可以发现

7、,程序中随着n的值变大,所求得的定积分与真实值越来越接近,当n的值改变到一定程度,它的值最终不会改变。所以,我们可以控制n的值来控制它的精确度。在编写代码的时候,把fx=1/(1+x^2)错写成了fx=1/1+x^2,导致代码最终运行不了。思考与深入:1.在matlab本身存在一些求数值积分的命令就可以控制精度,如quad,quad1,quad8,现在我们可以来看看quad;先编写m文件,functionf=example11(x)f=1./(1+x.^2);>>z=quad('example11',0,1)z=0.78539814924326我们可以看出它的精确

8、值为1e-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。