数值积分及MATLAB实现综述

数值积分及MATLAB实现综述

ID:310778

大小:277.50 KB

页数:9页

时间:2017-07-21

数值积分及MATLAB实现综述_第1页
数值积分及MATLAB实现综述_第2页
数值积分及MATLAB实现综述_第3页
数值积分及MATLAB实现综述_第4页
数值积分及MATLAB实现综述_第5页
资源描述:

《数值积分及MATLAB实现综述》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数值积分及MATLAB实现综述各种求积公式的MATLAB编程实现与应用MATLAB是由MathWorks公式开发的一种主要用于数值计算及可视化图形处理的工程语言,是当今最优秀的科技应用软件之一。它将数值计算、矩阵运算、图形图像处理、信号处理和仿真等诸多强大的功能集成在较易使用的交互计算机环境中,为科学研究、工程应用提供了一种功能强、效率高的编程工具。下面我们将各种求积算法通过MATLAB软件编程实现,以下程序均用MATLAB7.0编写,运行坏境:1、硬件环境CPU(intelCorei3-2310M,2.1GHz),内存(2GB昱联),2、软件环境wi

2、ndows7(32位)操作系统。以下总共编写了六个算法程序,部分代码参考文献[10-13],为了体现程序的正确性,以下程序都以为例进行运算。原积分的精确值为牛顿-科特斯求积公式的MATLAB实现先用M文件定义一个名为f1.m的函数:%i是要调用第几个被积函数g(i),x是自变量functionf=f1(i,x)g(1)=sqrt(x);ifx==0g(2)=1;elseg(2)=sin(x)/x;endg(3)=4/(1+x^2);f=g(i);程序一:-9-function[C,g]=NCotes(a,b,n,m)%a,b分别为积分的上下限;%n是子

3、区间的个数;%m是调用上面第几个被积函数;%当n=1时计算梯形公式;当n=2时计算辛浦生公式,以此类推;i=n;h=(b-a)/i;z=0;forj=0:ix(j+1)=a+j*h;s=1;ifj==0s=s;elsefork=1:js=s*k;endendr=1;ifi-j==0r=r;elsefork=1:(i-j)r=r*k;endendifmod((i-j),2)==1q=-(i*s*r);elseq=i*s*r;endy=1;fork=0:iifk~=jy=y*(sym('t')-k);endendl=int(y,0,i);C(j+1)=l/

4、q;z=z+C(j+1)*f1(m,x(j+1));-9-endg=(b-a)*z1)当输入,时,即在MATLAB命令窗口输入>>NCotes(0,1,1,2)即可得用梯形公式的积分值和相应科特斯系数如图3.12)当输入,时,即在MATLAB命令窗口输入>>NCotes(0,1,2,2)即可得用辛浦生公式的积分值和相应科特斯系数如图3.23)当输入,时,即在MATLAB命令窗口输入>>NCotes(0,1,4,2)即可得用科特斯公式的积分值和相应科特斯系数如图3.3图3.1-9-图3.2图3.3复化求积公式的MATLAB实现一、复化梯形求积公式的MAT

5、LAB实现通过的个等步长节点逼近积分其中,,。-9-程序二:functions=trapr1(f,a,b,n)%f是被积函数;%a,b分别为积分的上下限;%n是子区间的个数;%s是梯形总面积;h=(b-a)/n;s=0;fork=1:(n-1)x=a+h*k;s=s+feval('f',x);endformatlongs=h*(feval('f',a)+feval('f',b))/2+h*s;先用M文件定义一个名为f.m的函数:functiony=f(x)ifx==0y=1;elsey=sin(x)/x;end在MATLAB命令窗口中输入>>trapr

6、1('f',0,1,4)回车得到如图3.4图3.4若取子区间的个数在MATLAB命令窗口中输入>>trapr1('f',0,1,8)-9-回车得到如图3.5图3.5龙贝格求积公式的MATLAB实现构造数表来逼近积分其中。表示数表的最后一行,最后一列的值。程序五:function[R,quad,err,h]=romber(f,a,b,n,delta)%f是被积函数%a,b分别是积分的上下限%n+1是T数表的列数%delta是允许误差%R是T数表%quad是所求积分值M=1;h=b-a;err=1J=0;R=zeros(4,4);R(1,1)=h*(fev

7、al('f',a)+feval('f',b))/2while((err>delta)&(J

8、(J<4)J=J+1;h=h/2;s=0;-9-forp=1:Mx=a+h*(2*p-1);s=s+feval('f',x);endR(J+1,1)=R(J,1)/2+h*s;M=2*M;forK=1:JR(J+1,K+1)=R(J+1,K)+(R(J+1,K)-R(J,K))/(4^K-1);enderr=abs(R(J,J)-R(J+1,K+1));endquad=R(J+1,J+1)先用M文件定义一个名为f.m的函数:functiony=f(x)i

9、fx==0y=1;elsey=sin(x)/x;end在MATLAB命令窗口中输入>>romb

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

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

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