第3-1章 连续系统数值积分法仿真Matlab编程
- 格式:ppt
- 大小:162.00 KB
- 文档页数:32
数值积分的MATLAB实现数值积分是通过数值方法计算定积分的近似值。
MATLAB是一种功能强大的数值计算软件,提供了多种函数和工具箱用于数值积分的实现。
在MATLAB中,常用的数值积分方法包括梯形法则、辛普森法则和龙贝格法。
梯形法则是最简单的数值积分方法之一、它的基本思想是将要积分的区间划分成多个小的梯形并计算每个梯形的面积,然后将这些面积相加得到最终的近似积分值。
在MATLAB中,可以使用trapz函数进行梯形法则的计算。
例如,要计算函数sin(x)在区间[0, pi]的积分,可以使用以下代码:```MATLABx = linspace(0, pi, 1000); % 在[0, pi]区间生成1000个等间隔的点y = sin(x); % 计算函数sin(x)在每个点的值integral_value = trapz(x, y) % 使用梯形法则进行数值积分```辛普森法则是一种更精确的数值积分方法,它使用二次多项式来逼近被积函数。
在MATLAB中,可以使用simpson函数进行辛普森法则的计算。
例如,上面例子中的积分可以改用辛普森法则进行计算:```MATLABintegral_value = simpson(x, y) % 使用辛普森法则进行数值积分```龙贝格法是一种高效的自适应数值积分方法,它通过逐步加密网格和逼近函数来提高积分的精度。
在MATLAB中,可以使用quad和quadl函数进行龙贝格法的计算。
例如,计算函数sin(x)在区间[0, pi]的积分:```MATLAB```除了上述方法外,MATLAB还提供了许多其他的数值积分函数和工具箱,用于处理不同类型的积分问题。
例如,int和integral函数可以用于处理多重积分和奇异积分。
Symbolic Math Toolbox中的函数可以用于计算符号积分。
需要注意的是,数值积分是一种近似方法,计算结果的误差与划分区间的精细程度有关。
实验10 数值积分实验目的:1.了解数值积分的基本原理; 2.熟练掌握数值积分的MATLAB 实现; 3.会用数值积分方法解决一些实际问题。
实验内容:积分是数学中的一个基本概念,在实际问题中也有很广泛的应用。
同微分一样,在《微积分》中,它也是通过极限定义的,由于实际问题中遇到的函数一般都以列表形式给出,所以常常不能用来直接进行积分。
此外有些函数虽然有解析式,但其原函数不是初等函数,所以仍然得不到积分的精确值,如不定积分⎰10 d sin x x x。
这时我们一般考虑用数值方法计算其近似值,称为数值积分。
10.1 数值微分简介设函数()y f x =在*x 可导,则其导数为hx f h x f x f h )()(lim )(**0*-+='→ (10.1)如果函数()y f x =以列表形式给出(见表10-1),则其精确值无法求得,但可由下式求得其近似值hx f h x f x f )()()(***-+≈' (10.2)表 10-1一般的,步长h 越小,所得结果越精确。
(10.2)式右端项的分子称为函数()y f x =在*x 的差分,分母称为自变量在*x 的差分,所以右端项又称为差商。
数值微分即用差商近似代替微商。
常用的差商公式为:000()()()2f x h f x h f x h +--'≈(10.3)hy y y x f 243)(2100-+-≈' (10.4)hy y y x f nn n n 234)(12+-≈'-- (10.5)其误差均为2()O h ,称为统称三点公式。
10.2 数值微分的MATLAB 实现MATLAB 提供了一个指令求解一阶向前差分,其使用格式为: dx=diff(x) 其中x 是n 维数组,dx 为1n -维数组[]21321,,,n x x x x x x ---,这样基于两点的数值导数可通过指令diff(x)/h 实现。
Matlab是一种功能强大的数学软件,广泛应用于工程、科学和数学领域。
其中,连续积分和非连续微分是其重要功能之一。
本文将对Matlab中的连续积分和非连续微分进行详细介绍。
1. 连续积分在Matlab中,连续积分是指对一个连续函数进行积分运算。
积分是微积分的一个重要概念,用于求函数曲线下的面积以及确定函数的反导数。
在Matlab中,可以使用int函数进行连续积分运算。
对于函数f(x) = x^2,我们可以使用Matlab进行连续积分运算,其代码如下:```matlabsyms xF = int(x^2, x)```上述代码中,我们首先使用syms声明x为符号变量,然后使用int函数对x^2进行积分运算,得到的结果为F = 1/3*x^3。
Matlab还提供了更加丰富的连续积分功能,包括定积分、不定积分、多重积分等。
通过这些功能,用户可以方便地进行各种积分运算,满足不同的数学求解需求。
2. 非连续微分在实际问题中,有些函数是不连续的,这时需要对这些不连续函数进行微分运算。
在Matlab中,可以使用diff函数对不连续函数进行微分运算。
对于函数f(x) = |x|,我们可以使用Matlab进行微分运算,其代码如下:```matlabsyms xf = abs(x)df = diff(f, x)```上述代码中,我们首先使用syms声明x为符号变量,然后使用diff 函数对| x |进行微分运算,得到的结果为df = sign(x)。
除了对不连续函数的微分运算外,Matlab还提供了更多的微分功能,包括高阶微分、偏微分、方程微分等。
这些功能可以帮助用户轻松解决各种微分运算问题。
总结:Matlab作为一种强大的数学软件,提供了丰富的积分和微分功能,包括连续积分、非连续微分等。
利用这些功能,用户可以高效地进行各种数学求解和模拟,满足实际问题的需求。
希望本文对Matlab的积分和微分功能有所帮助,同时也希望读者能够更深入地了解和应用这些功能,进一步提升数学建模和求解的能力。
数值分析MATLAB编程——数值积分法1、调用函数--f.Mfunction y=f(x)%------------------------------------------------------------函数1 y=sqrt(4-sin(x)*sin(x));%------------------------------------------------------------函数2 %y=sin(x)/x;%if x==0% y=0;%end%------------------------------------------------------------函数3 %y=exp(x)/(4+x*x);%------------------------------------------------------------函数4 %y=(log(1+x))/(1+x*x);2、复合梯形公式--tixing.M%复合梯形公式clear alla=input('请输入积分下限:');b=input('请输入积分上限:');n=input('区间n等分:');h=(b-a)/n;x=a:h:b;T=0;for k=1:n;T=0.5*h*(f(x(k))+f(x(k+1)))+T;endT=vpa(T,8)3、复合Simpson公式--simpson.M%复合Simpson公式clear alla=input('请输入积分下限:');b=input('请输入积分上限:');n=input('区间n等分:');h=(b-a)/n;x=a:h:b;S=0;for k=1:n;xx=(x(k)+x(k+1))/2;S=(1/6)*h*(f(x(k))+4*f(xx)+f(x(k+1)))+S;endS=vpa(S,8)4、Romberg算法--romberg.M%Romberg算法clear alla=input('请输入积分下限:');b=input('请输入积分上限:');n=input('区间n等分:');num=0:n;R=[num'];h=b-a;T=h*(f(a)+f(b))/2;t(1)=T;for i=2:n+1;u=h/2;H=0;x=a+u;while x<b;H=H+f(x);x=x+h;endt(i)=(T+h*H)/2;T=t(i);h=u;endR=[R,t'];for i=2:n+1for j=n+1:-1:1if j>=it(j)=(4^(i-1)*t(j)-t(j-1))/(4^(i-1)-1);elset(j)=0;endendR=[R,t'];endR=vpa(R,8)R(n,n)5、变步长算法(以复化梯形公式为例)--tixing2.M%复合梯形公式,确定最佳步长format longclear alla=input('请输入积分下限:');b=input('请输入积分上限:');eps=input('请输入误差:');k=1;T1=(b-a)*(f(a)+f(b))/2;T2=(T1+(b-a)*(f((a+b)/2)))/2; while abs((T1-T2)/3)>=epsM=0;n=2^k;h=(b-a)/n;T1=T2;x=a:h:b;for i=1:n;xx=(x(i)+x(i+1))/2;M=M+f(xx);endT2=(T1+h*M)/2;k=k+1;endT=vpa(T2,8)n=2^k。
东北大学秦皇岛分校数值计算课程设计报告数值积分算法及MATLA实现学院数学与统计学院专业信息与计算科学学号5133201姓名_____________ 陈世_____________指导教师姜玉山张建波成绩教师评语:指导教师签字:2015年07月14日1 绪论数值分析是计算数学的一个主要部分,计算数学是数学科学的一个分支,它研究用计算机求解各种数学问题的数值检索方其理论与软件的实现•而数值分析主要研究数值计算•现科学技术的发展与进步提出了越来越多的复杂的数值计算问题,这些问题的圆满解决已远人工手算所能胜任,必须依靠电子计算机快速准确的数据处理能力•这种用计算机处理数值问题的方法,成为科学计算•今天,科学计算的应用范围非常广泛,天气预报、工程设计、流体计算、经济规划和预测以及国防尖端的一些科研项目,如核武器的研制、导弹和火箭的发射等,始终是科学计算最为活跃的领域•1.1数值积分介绍数值积分是数值分析的重要环节,实际问题当中常常需要计算积分,有些数值方法,如微分方程和积分方程的求解,也都和积分计算相联系求某函数的定积分时,在多数情况下,被积函数的原函数很难用初等函数表达出来,因此能够借助微积分学的牛顿-莱布尼兹公式计算定积分的机会是不多的•另外,许多实际问题中的被积函数往往是列表函数或其他形式的非连续函数,对这类函数的定积分,也不能用不定积分方法求解•由于以上原因,数值积分的理论与方法一直是计算数学研究的基本课题•对微积分学做出杰出贡献的数学大师,如I.牛顿、L.欧拉、C.F.高斯、拉格朗日等人都在数值积分这个领域作出了各自的贡献,并奠定了这个分支的理论基础•构造数值积分公式最通常的方法是用积分区间上的n次插值多项式代替被积函数,由此导出的求积公式称为插值型求积公式•特别在节点分布等距的情形称为牛顿-科特斯公式,例如梯形公式(Trapezoidal Approximations)与抛物线公式(Approximatens Using Parabolas)就是最基本的近似公式•但它们的精度较差•龙贝格算法是在区间逐次分半过程中,对梯形公式的近似值进行加权平均获得准确程度较高的积分近似值的一种方法,它具有公式简练、计算结果准确、使用方便、稳定性好等优点,因此在等距情形宜采用龙贝格求积公式(Rhomberg Integration).当用不等距节点进行计算时,常用高斯型求积公式计算,它在节点数目相同情况下,准确程度较高,稳定性好,而且还可以计算无穷积分•数值积分还是微分方程数值解法的重要依据•许多重要公式都可以用数值积分方程导出•现探讨数值积分算法以及运用MATLAB软件的具体实现1.2 MATLAB 软件MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分.MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室).是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境.它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平•MATLAB和Mathematics Maple并称为三大数学软件.它在数学类科技应用软件中在数值计算方面首屈一指.MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域.MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件.在新的版本中也加入了对C,FORTRAN, C++,JAVA的支持.2数值积分的基本概念一般的,我们可以在区间la,b 1上适当选取某些节点兀,然后用f X k的加权平均得到平均高度f 的近似值,这样构造出的求积公式具有下列形式:a n八A k f X k ,式中X k称为求积节点;A k称为求积系数,亦称伴随节点X k的k =0b f x dx :权.权A k仅仅与节点X k的选取有关,而不依赖于被积函数 f x的具体形式.2.1代数精度的概念如果某个求积公式对于次数不超过m的多项式均能准确的成立,但对于m T次多项式就不准确成立,则称该求积公式具有m次代数精度(或代数精确值)一般地,欲使求积公式具有m次代数精度,只要令它对于 f x =1,x,|||,x m都能准确成立,这就要求:乞A k =b-a,1 2 2为A k x k=2(b -a)‘++-- - m 1 t. m+1 m+1 ,送A k x k =一 b -a .、一m+12.2求积公式的余项b n令求积公式的余项为R【f】,其中R i f ]二J a f (x)dx-送A k f(x J;区间【a,b】可以是k=0有限的或无限的•构造求积公式的问题就是确定X j和A j使得R〔f 1在某种意义下尽可能地小.3数值积分方法及MATLAB实现3.1复合辛普森公式3.1.1插值型求积公式用插值多项式L n(X)替换积分广=[f(XpX中的被积函数f(X),然后计算bI 「L n XdX作为积分的近似值,这样建立的求积公式称为插值型求积公式•用插值多an n项式L n(x)的表达式L n(X)八I k X f X k,代入得I二^ A k f X k,其中:k=0 k=0A = f (X—X。
第3章 连续系统仿真的方法3.1 数值积分法连续系统数值积分法,就是利用数值积分方法对广微分方程建立离散化形式的数学模型——差分方程,并求其数值解。
可以想象在数学计算机上构造若干个数字积分器,利用这些数字积分器进行积分运算。
在数字计算机上构造数字积分器的方法就是数值积分法,因而数字机的硬件特点决定了这种积分运算必须是离散和串行的。
把被仿真系统表示成一阶微分方程组或状态方程的形式。
一阶向量微分方程及初值为()(),00t Y Y t Y ⎧⎫⎪⎪⎨⎬⎪⎪⎩⎭Y =F =(3-1)其中,Y 为n 维状态向量,F (t ,Y )为n 维向量函数。
设方程(3-1)在011,,,,n n t t t t t +=…处的形式上的连续解为()()()()n+1n+1t t n+10t t t =Y t +,(),n Y F t Y dt Y t F t Y dt=+⎰⎰(3-2)设 n =()n Y Y t ,令1n n n Y Y Q +=+(3-3)则有:()1n+1t n Y Y +=也就是说,1(,)n nt n t Q F t Y dt +≈⎰(3-4)如果n Y 准确解()n Y t 为近似值,n Q 是准确积分值的近似值,则式(3-4)就是式(3-2)的近似公式。
换句话说,连续系统的数值解就转化为相邻两个时间点上的数值积分问题。
因此,所谓数值解法,就是寻求初值问题(3-1)的真解在一系列离散点12n t t t <…<…上的近似解12,,,n Y Y Y ……,相邻两个时间离散点的间隔1n n n t t +=-h ,称为计算步距或步长,通常取n =h h 为定值。
可见,数值积分法的主要问题归结为对函数(,)F t y 的数值积分问题,即如何求出该函数定积分的近似解。
为此,首先要把连续变量问题用数值积分方法转化成离散的差分方程的初值问题,然后根据已知的初值条件0y ,逐步地递推计算后续时刻的数值解(1,2,)i y i =…。
数值积分用matlab实现编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(数值积分用matlab实现)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为数值积分用matlab实现的全部内容。
东北大学秦皇岛分校数值计算课程设计报告数值积分及Matlab实现学院数学与统计学院专业信息与计算科学学号5133117姓名楚文玉指导教师张建波姜玉山成绩教师评语:指导教师签字:2015年07月14日1 绪论在科研计算中,经常会碰到一些很难用公式定理直接求出精确解的积分问题,对于这类问题,我们一般转化为数值积分问题,用计算机来实现求解问题. 1.1 课题的背景对于定积分()ba f x dx ⎰在求某函数的定积分时,在一定条件下,虽然有牛顿—莱布里茨公式()()()ba I f x dx Fb F a ==-⎰可以计算定积分的值,但在很多情况下的原函数()f x 不易求出或非常复杂.被积函数的原函数很难用初等函数表达出来,例如2sin (),x x f x e x-=等;有的函数()f x 的原函数()F x 存在,但其表达式太复杂,计算量太大,有的甚至无法有解析表达式.因此能够借助牛顿-莱布尼兹公式计算定积分的情形是不多的.另外,许多实际问题中的被积函数()f x 往往是列表函数或其他形式的非连续函数,对这类函数的定积分,也不能用不定积分方法求解,只能设法求其近似值.因此,探讨近似计算的数值积分方法是有明显的实际意义的,即有必要研究定积分的数值计算方法,以解决定积分的近似计算.而数值积分就是解决此类问题的一种有效的方法,它的特点是利用被积函数在一些节点上的信息求出定积分的近似值.微积分的发明是人类科学史上一项伟大的成就,在科学技术中,积分是经常遇到的一个重要计算环节数值积分是数学上重要的课题之一,是数值分析中重要的内容之一.随着计算机的出现,近几十年来,对于数值积分问题的研究已经成为一个很活跃的研究领域.现在,数值积分在计算机图形学,积分方程,工程计算,金融数学等应用科学领域都有着相当重要的应用,所以研究数值积分问题有着很重要的意义.国内外众多学者在数值积分应用领域也提出了许多新方法.在很多实际应用中,只能知道积分函数在某些特定点的取值,比如天气测量中的气温、湿度、气压等,医学测量中的血压、浓度等等.通过这个课题的研究,我们将会更好地掌握运用数值积分算法求出特殊积分函数的定积分的一些基本方法、理论基础;并且通过Matlab 软件编程的实现,应用于实际生活中. 1.2 课题的主要内容框架1。