数值解与解析解

数值解与解析解
数值解与解析解

解析解是解的形式可以表达为一个显式函数的表达式的解;而数值解其解的形式不能表达为显式函数,只能通过数值计算的方式求解,得到的是一系列离散的数值,不能表达为一个明确的函数的形式。对于大多数问题是得不到解析解的,只能得到数值解。能得到解析解的只是一小部分问题,而且通常有比较严格的限制条件。解析解能够很直观的体现各参数之间的关系,对于定性分析是很重要的。对于得不到解析解的问题,进行数值计算得到数值解,对于工程应用很重要。

所谓精确解和近似解,是从算法上决定的。一般的力学模型都是有一定的使用和假设条件的,主要是看在求解有关的问题时,计算的结果与模型的真实值的误差是否为零,如果为零,则是精确解法,如算法本身不能保证得到真实值,则是近似解法,与其是否是解析解无关,与是否是手算和机算也无关。简单的例子,如结构力学中的结构有限元法得出的是精确解,而对于多高层结构的分层法则是近似解法。以上两种方法都是数值解法,但有限元法(指结构力学中的矩阵位移法)直接求解的结构的平衡方程,求解过程中没有对方程进行近似的假设,而分层法对则是利用力矩分配法的研究成果,对于不符和利用力矩分配法的高层结构进行了近似,所以求得的是近似解。有限元法多在计算机上进行实现,而分层法是早期计算机没有出现或还不普及的时候,工程师们解决实际问题的时候所采用的方法。分层法所得到的结果虽然是近似的,与真实结果有一定的误差,但只要误差在一定的范围内,则是可以作为设计的依据进行使用的。再如有限元法和力矩分配法,两种算法都是精确解法,只要单元取得足够多,或者分配的次数足够多,算法本身能够保证其结果是精确解。但是很多情况下是没有必要的,单元太多或者分配次数太多,往往会带来计算量过大的问题,只要误差在一定的范围内,是可以满足工程应用的要求的。

对于非线性问题,由于计算上的困难,一般得到的是近似的数值解。

对于该问题的理解,楼主可以看看龙驭球院士编的《结构力学教程》。

解非线性方程组的方法有很多,比如直接降维、搜索(用最小二乘、牛顿迭代及最优化法)、连续法等等!直接降维操作较难,求解时间长;牛顿迭代有局部收敛性;最优化必须给出真实解的初始值;连续发需要构造同伦方程。

数学应用软件作业6 用Matlab求解微分方程的解析解和数值解

注:上机作业文件夹以自己的班级姓名学号命名,文件夹包括如下上机报告和Matlab程序。上机报告模板如下:

分别用函数ode45和ode15s计算求解,分别画出图形,图形分别标注标题。 4、求解微分方程 =y - y + y t ,1 )0( ,1 + '= 先求解析解,在[0,1]上作图; 再用ode45求数值解(作图的图形用“o”表示),在同一副图中作图进行比较,用不同的颜色表示。 三. 上机方法与步骤 给出相应的问题分析及求解方法,并写出Matlab程序,并有上机程序显示截图。 题1:直接用命令dsolve求解出微分方程的通解。 Matlab程序: dsolve('D3y-D2y-3*Dy+2*y','x')

题2:将微分方程组改写为 5cos2exp(2) 5cos2exp(2) (0)2,(0)0 dx t t x y xt dy t t x y dt x y ? =+--- ? ? ? =-+-+- ? ? == ? ? ? ,再用命令dsolve求解微分方 程的通解。 Matlab程序: 建立如下: [x,y]=dsolve('Dx=5*cos(t)+2*exp(-2*t)-x-y','Dy=-5*cos(t)+2*exp(-2*t)+x-y','x(0)=2,y(0) =0','t') x=simple(x) y=simple(y) 题3:由于所给的微分方程为一阶微分方程,则直接用函数ode45和ode15s求解微分方程的数值解,具体程序如下: (1)Matlab程序: 建立M文件,如下: function dy=fun2(t,y); dy=zeros(2,1);

解析解与数值解 精确解和近似解

解析解与数值解精确解和近似解 默认分类2011-01-19 12:51:37 阅读93 评论0 字号:大中小 订阅 在解组件特性相关的方程式时,大多数的时候都要去解偏微分或积分式,才能求得其正确的解。依照求解方法的不同,可以分成以下两类:解析解和数值解。 解析解(analytical solution)就是一些严格的公式,给出任意的自变量就可以求出其因变量,也就是问题的解, 他人可以利用这些公式计算各自的问题. 所谓的解析解是一种包含分式、三角函数、指数、对数甚至无限级数等基本函数的解的形式。用来求得解析解的方法称为解析法〈analytic techniques、analytic methods〉,解析法即是常见的微积分技巧,例如分离变量法等。解析解为一封闭形式〈closed-form〉的函数,因此对任一独立变量,我们皆可将其带入解析函数求得正确的相依变量。因此,解析解也被称为闭式解(closed-form solution)数值解(numerical solution)是采用某种计算方法,如有限元的方法, 数值逼近,插值的方法, 得到的解.别人只能利用数值计算的结果, 而不能随意给出自变量并求出计算值. 当无法藉由微积分技巧求得解析解时,这时便只能利用数值分析的方式来求得其数值解了。数值方法变成了求解过程重要的媒介。在数值分析的过程中,首先会将原方程式加以简化,以利后来的数值分析。例如,会先将微分符号改为差分符号等。然后再用传统的代数方法将原方程式改写成另一方便求解的形式。这时的求解步骤就是将一独立变量带入,求得相依变量的近似解。因此利用此方法所求得的相依变量为一个个分离的数值〈discrete values〉,不似解析解为一连续的分布,而且因为经过上述简化的动作,所以可以想见正确性将不如解析法来的好。 解析解一般可以理解为通过已经有的方法,是对应的问题在这个解决域上,进行变换演绎得到解的一种结果,变换过程也会有增根或漏根。数值解是将问题化解为比较多的子域,然后用比较简单的已知函数来逼近需求函数的相关问题。解析法要求基本功比较强,对概念理解非常有利,仅适合简单形式问题;数值解比较简单,要求运算量大,适合工程实际中的复杂问题。 解析解是解的形式可以表达为一个显式函数的表达式的解;而数值解其解的形式不能表达为显式函数,只能通过数值计算的方式求解,得到的是一系列离散的数值,不能表达为一个明确的函数的形式。对于大多数问题是得不到解析解的,只能得到数值解。能得到解析解的只是一小部分问题,而且通常有比较严格的限制条件。解析解能够很直观的体现各参数之间的关系,对于定性分析是很重要的。对于得不到解析解的问题,进行数值计算得到数值解,对于工程应用很重要。 精确解和近似解 所谓精确解和近似解,是从算法上决定的。一般的力学模型都是有一定的使用和假设条件的,主要是看在求解有关的问题时,计算的结果与模型的真实值的误差是否为零,如果为零,则是精确解法,如算法本身不能保证得到真实值,则是近似解法,与其是否是解析解无关,与

MATLAB求解常微分方程数值解

利用MATLAB求解常微分方程数值解

目录 1. 内容简介 (1) 2. Euler Method(欧拉法)求解 (1) 2.1. 显式Euler法和隐式Euler法 (2) 2.2. 梯形公式和改进Euler法 (3) 2.3. Euler法实用性 (4) 3. Runge-Kutta Method(龙格库塔法)求解 (5) 3.1. Runge-Kutta基本原理 (5) 3.2. MATLAB中使用Runge-Kutta法的函数 (7) 4. 使用MATLAB求解常微分方程 (7) 4.1. 使用ode45函数求解非刚性常微分方程 (8) 4.2. 刚性常微分方程 (9) 5. 总结 (9) 参考文献 (11) 附录 (12) 1. 显式Euler法数值求解 (12) 2. 改进Euler法数值求解 (12) 3. 四阶四级Runge-Kutta法数值求解 (13) 4.使用ode45求解 (14)

1.内容简介 把《高等工程数学》看了一遍,增加对数学内容的了解,对其中数值解法比较感兴趣,这大概是因为在其它各方面的学习和研究中经常会遇到数值解法的问题。理解模型然后列出微分方程,却对着方程无从下手,无法得出精确结果实在是让人难受的一件事情。 实际问题中更多遇到的是利用数值法求解偏微分方程问题,但考虑到先从常微分方程下手更为简单有效率,所以本文只研究常微分方程的数值解法。把一个工程实际问题弄出精确结果远比弄清楚各种细枝末节更有意思,因此文章中不追求非常严格地证明,而是偏向如何利用工具实际求解出常微分方程的数值解,力求将课程上所学的知识真正地运用到实际方程的求解中去,在以后遇到微分方程的时候能够熟练运用MATLAB得到能够在工程上运用的结果。 文中求解过程中用到MATLAB进行数值求解,主要目的是弄清楚各个函数本质上是如何对常微分方程进行求解的,对各种方法进行MATLAB编程求解,并将求得的数值解与精确解对比,其中源程序在附录中。最后考察MATLAB中各个函数的适用范围,当遇到实际工程问题时能够正确地得到问题的数值解。 2.Euler Method(欧拉法)求解 Euler法求解常微分方程主要包括3种形式,即显式Euler法、隐式Euler法、梯形公式法,本节内容分别介绍这3种方法的具体内容,并在最后对3种方法精度进行对比,讨论Euler法的实用性。 本节考虑实际初值问题 使用解析法,对方程两边同乘以得到下式

微分方程数值解

微 分方程数值解及其应用 绪论 自然界中的许多事物的运动和变化规律都可以用微分方程来描述,因此对工程和科学技术中的实际问题的研究中, 常常需要求解微分方程.但往往只有少数较简单和典型的微分方程可求出其解析解,在大多数情况下,只能用近似法求解,数值解法是一类重要的近似方法.本文主要讨论一阶常微分方程的初值问题的数值解法,探讨这些算法在处理来自生活实际问题中的应用,并结合MATLAB 软件,动手编程予以解决. 1 微分方程的初值问题[1] 1.1 预备知识 在对生活实际问题的研究中,通常需要考虑一阶微分方程的初值问题 00(,)()dy f x y dx y x y ?=???=? (1) 这里(),f x y 是矩形区域R :00,x x a y y b -≤-≤上的连续函数. 对初值问题(1)需要考虑以下问题:方程是否一定有解呢?若有解,有多少个解呢?下面给出相关的概念与定理. 定义1 Lipschitz 条件[1][2]:矩形区域R :00,x x a y y b -≤-≤上的连续函数(),f x y 若满足:存在常数0L >,使得不等式()()1212,,f x y f x y L y y -≤-对所有()()12,,,x y x y R ∈都成立,则称(),f x y 在R 上关于y 满足Lipschitz 条件. 定理 1 解的存在唯一性定理[1][3]:设f 在区域()}{,,D x y a x b y R =≤≤∈上连续,关于y 满足Lipschitz 条件,则对任意的[]00,,∈∈x a b y R ,常微分方程初值问题(1)当[],x a b ∈时存在唯一的连续解()y x . 该定理保证若一个函数(),f x y 关于y 满足Lipschitz 条件,它所对应的微分方程的初值问题就有唯一解.在解的存在唯一性得到保证的前提下,自然要考虑方程的求

数学应用软件作业6-用Matlab求解微分方程(组)的解析解和数值解

数学应用软件作业6-用Matlab 求解微分方程(组)的解析解和数值解

注:上机作业文件夹以自己的班级姓名学号命名,文件夹包括如下上机报告和Matlab程序。 上机报告模板如下: 佛山科学技术学院 上机报告 课程名称数学应用软件 上机项目用Matlab求解微分方程(组)的解析解和数值解 专业班级姓名学号 一. 上机目的 1.了解求微分方程(组)的解的知识。 2.学习Matlab中求微分方程的各种解的函数,如 dsolve命令、ode45函数等等,其中注意把方程化为新的方程的形式。 3.掌握用matlab编写程序解决求解微分方程的问 题。 二. 上机内容 1、求高阶线性齐次方程:y’’’-y’’-3y’+2y=0。 2、求常微分方程组

2 210cos,2 24,0 t t t dx dy x t x dt dt dx dy y e y dt dt = - = ? +-== ?? ? ?++== ?? 3、求解 分别用函数ode45和ode15s计算求解,分别画出图形,图形分别标注标题。 4、求解微分方程 ,1 )0( ,1 '= + + - =y t y y 先求解析解,在[0,1]上作图; 再用ode45求数值解(作图的图形用“o”表示),在同一副图中作图进行比较,用不同的颜色表示。 三. 上机方法与步骤 给出相应的问题分析及求解方法,并写出Matlab 程序,并有上机程序显示截图。 题1:直接用命令dsolve求解出微分方程的通解。 Matlab程序:

dsolve('D3y-D2y-3*Dy+2*y','x') 题2:将微分方程组改写为 5cos2exp(2) 5cos2exp(2) (0)2,(0)0 dx t t x y xt dy t t x y dt x y ? =+--- ? ? ? =-+-+- ? ? == ? ? ? , 再用命令dsolve求解微分方程的通解。 Matlab程序: 建立timu2.m如下: [x,y]=dsolve('Dx=5*cos(t)+2*exp(-2*t)-x-y','Dy=-5*cos(t)+2*exp(-2*t)+x-y ','x(0)=2,y(0)=0','t') x=simple(x) y=simple(y)

常微分方程数值解

第四章常微分方程数值解 [课时安排]6学时 [教学课型]理论课 [教学目的和要求] 了解常微分方程初值问题数值解法的一些基本概念,如单步法和多步法,显式和隐式,方法的阶数,整体截断误差和局部截断误差的区别和关系等;掌握一阶常微分方程初值问题的一些常用的数值计算方法,例如欧拉(Euler)方法、改进的欧拉方法、龙贝-库塔(Runge-Kutta)方法、阿达姆斯(Adams)方法等,要注意各方法的特点及有关的理论分析;掌握构造常微分方程数值解的数值积分的构造方法和泰勒展开的构造方法的基本思想,并能具体应用它们导出一些常用的数值计算公式及评估截断误差;熟练掌握龙格-库塔(R-K)方法的基本思想,公式的推导,R-K公式中系数的确定,特别是能应用“标准四阶R-K公式”解题;掌握数值方法的收敛性和稳定性的概念,并能确定给定方法的绝对稳定性区域。[教学重点与难点] 重点:欧拉方法,改进的欧拉方法,龙贝-库塔方法。 难点:R—K方法,预估-校正公式。 [教学内容与过程] 4.1 引言 本章讨论常微分方程初值问题 (4.1.1) 的数值解法,这也是科学与工程计算经常遇到的问题,由于只有很特殊的方程能用解析方法求解,而用计算机求解常微分方程的初值问题都要采用数值方法.通常我们假定(4.1.1)中 f(x,y)对y满足Lipschitz条件,即存在常数L>0,使对,有 (4.1.2) 则初值问题(4.1.1)的解存在唯一. 假定(4.1.1)的精确解为,求它的数值解就是要在区间上的一组离散点 上求的近似.通常取 ,h称为步长,求(4.1.1)的数值解是按节点的顺序逐步 推进求得.首先,要对方程做离散逼近,求出数值解的公式,再研究公式的局部截

微分方程数值解

微分方程数值解 4.1 当常微分方程能解析求解时,可利用Matlab符号工具箱中的功能找到精确解. 见下例 求解方程,,,. 键入: yyy,,,20 syms x y %定义符号变量diff_equ= ‘D2y+2*Dy-y=0’; %D2y表示,,,Dy= y,yy=dsolve (diff_equ, ‘x’) %定义x为自变量 y=cl*exp ((2^(1/2)- 1)*x+c2*exp (-(2^(1/2)+1)*x) %表达式中含c1与c2,表示通解. %初始条件为y (0)=0,,y(0)=1时,按如下方式调用 y=dsolve (diff_equ, ‘y (0)=0’, ‘Dy (0)=1’, ‘x’) y=1/4*2^(1/2)*exp ((2^(1/2)-1)*x)— 1/4*2^(1/2)*exp (-(2^(1/2)+1)*x) %画出函数y=y (x)的图形 ezplot (y,[-2,2]) 图形具体形式请上机试之. 在方程无法获得解析解的情况下,可方便地获得数值解. 下面的例子说明用Matlab求 数值解的方法及应注意的问题. [例1] 求解范德堡(vander pol)方程

2dxdx2,,,,,(1)0xx 2dtdt 求解高阶方程,必须等价地变换为一阶微分方程组,对本例,通过定义两个新的变量, 实现这一变换 yxydxdt1,2/,, 则令 dydty1/2, 2dydtyyy2/(11)*21,,,, 编写求解程序分为两部分,第一部分为待求解的方程,存盘的文件名为,待求 解方程 的函数名.m,,第二部分为求解主程序,本例中取名为main1.m. 首先编写待求解方程的文件. 文件存盘名为“vdpol.m”. M, function yprime=vdpol(,)ty yprime (1)=y (2); ; (1(1)^2)*(2)(1),,yyy mu=2 yprime=[yprime (1);yprime (2)]; yprime (2)=mu*说明函数 yprime=vdpol中. 定义为自变量,的形式取决于求解方程的阶数,本(,)tyyt 例中,,为解向量,为导数向量. yprime, y(2)yyyy,[(1),(2)],(1)(1)(1),y yprime,,,函数返回vander pol方程的导数列向量. 因为所求结果为方程数 值解,(2)(1),y 所以各向量维数只有在主程序求解时定下精度后才能确定. 主程序定名为main1.m,你可用你所喜欢的其它名子,但vdpol.m除外. clear functions %调试程序时,放置这一语句是必要的. 它清除前边已编译的存在于内存中的 废弃程序[]=ode23 (‘vdpol’,[0,30],[1,0]); ty, y1=y (:,1); %解曲线.

两种方法求解方程的数值解

求解方程数值解的两种常用方法(C语言实现) 本文介绍了两种求解方程数值解的常用方法:二分法和牛顿迭代法。均用C语言实现,仅供参考。 源代码如下: #include//二分法求方程的数值解 #include double f(double x) { double y; y=x*(x*(2.0*x-4.0)+3.0)-6.0; return y; } double root(double x1,double x2) { double y1,y2,y0; double x0; do { y1=f(x1); y2=f(x2); x0=(x1+x2)/2; y0=f(x0); if(y0*y1<0) { x2=x0; } else { x1=x0; } } while(fabs(y0)>=1e-5); return x1; } intmain() { double x1,x2; double x; printf("Input x1,x2:\n"); scanf("%lf%lf",&x1,&x2); if(f(x1)*f(x2)>=0)

{ printf("重新选择初值区间!\n"); return 0; } else { x=root(x1,x2); printf("A root of equation is %f.\n",x); return 0; } } 运行结果如下: 源代码如下: #include//牛顿迭代法求方程的解 #include float f(float x) { float y; y=x*(2.0*x*(x-2.0)+3.0)-6.0; return y; } float g(float x)//函数f(x)的导函数 { float y; y=2.0*x*(3.0*x-4.0)+3.0; return y; } float root(float x) { float x0; do { x0=x; x=x0-f(x0)/g(x0);//迭代公式 } while(fabs(x-x0)>=1e-5); return x; } intmain()

MATLAB求解方程解析解和数值解

辽宁工程技术大学上机实验报告

用MATLAB求解质点振动方程 振动是日常生活和工程技术中常见的一种运动形式。利用常系数线性微分方程的理论来讨论有关自由振动和强迫振动的相关问题。利用MA TLAB数学软件大致可分四类情况:(1)无阻尼自由振动情况;(2)有阻尼自由振动;(3)无阻尼强迫振动;(4)有阻尼强迫振动求其数值解和解析解; MATLAB软件求解微分方程解析解的命令“dsolve()” 求通解的命令格式:(’微分方程’,’自变量’) 注:微分方程在输入时,一阶导数y’应输入Dy,y’’应输入D2y等,D应大写。 1,无阻尼自由振动情况:常见的数学摆的无阻尼微小振动方程 代码如下: >> t=0:pi/50:2*pi; >> y=2*sin(3*t+2); >>plot(t,y,'b') 2,有阻尼自由振动 由无阻尼振动的通解可以看出,无阻尼振动是按照正弦规律运动的,摆动似乎可以无限期的进行下去,但事实上,空气从在阻力,在运动时,我们必须把空气阻力考虑在内,所以我们得到有阻尼摆动方程为: 记u/m=2n,g/l=w^2,这里n,w是正常数,所以: y=dsolve('D2y+2*n*Dy+w^2*y=0','t'); (4.43) 解得: y = C3*exp(-t*(n + ((n + w)*(n - w))^(1/2))) + C2*exp(-t*(n - ((n + w)*(n - w))^(1/2))) (1)小阻尼情形:n

数值解与解析解

解析解是解的形式可以表达为一个显式函数的表达式的解;而数值解其解的形式不能表达为显式函数,只能通过数值计算的方式求解,得到的是一系列离散的数值,不能表达为一个明确的函数的形式。对于大多数问题是得不到解析解的,只能得到数值解。能得到解析解的只是一小部分问题,而且通常有比较严格的限制条件。解析解能够很直观的体现各参数之间的关系,对于定性分析是很重要的。对于得不到解析解的问题,进行数值计算得到数值解,对于工程应用很重要。 所谓精确解和近似解,是从算法上决定的。一般的力学模型都是有一定的使用和假设条件的,主要是看在求解有关的问题时,计算的结果与模型的真实值的误差是否为零,如果为零,则是精确解法,如算法本身不能保证得到真实值,则是近似解法,与其是否是解析解无关,与是否是手算和机算也无关。简单的例子,如结构力学中的结构有限元法得出的是精确解,而对于多高层结构的分层法则是近似解法。以上两种方法都是数值解法,但有限元法(指结构力学中的矩阵位移法)直接求解的结构的平衡方程,求解过程中没有对方程进行近似的假设,而分层法对则是利用力矩分配法的研究成果,对于不符和利用力矩分配法的高层结构进行了近似,所以求得的是近似解。有限元法多在计算机上进行实现,而分层法是早期计算机没有出现或还不普及的时候,工程师们解决实际问题的时候所采用的方法。分层法所得到的结果虽然是近似的,与真实结果有一定的误差,但只要误差在一定的范围内,则是可以作为设计的依据进行使用的。再如有限元法和力矩分配法,两种算法都是精确解法,只要单元取得足够多,或者分配的次数足够多,算法本身能够保证其结果是精确解。但是很多情况下是没有必要的,单元太多或者分配次数太多,往往会带来计算量过大的问题,只要误差在一定的范围内,是可以满足工程应用的要求的。 对于非线性问题,由于计算上的困难,一般得到的是近似的数值解。 对于该问题的理解,楼主可以看看龙驭球院士编的《结构力学教程》。 解非线性方程组的方法有很多,比如直接降维、搜索(用最小二乘、牛顿迭代及最优化法)、连续法等等!直接降维操作较难,求解时间长;牛顿迭代有局部收敛性;最优化必须给出真实解的初始值;连续发需要构造同伦方程。

数学应用软件作业6用Matlab求解微分方程(组)的解析解和数值解

注:上机作业文件夹以自己的班级学号命名,文件夹包括如下上机报告和Matlab程序。上机报告模板如下: 科学技术学院 上机报告 课程名称数学应用软件 上机项目用Matlab求解微分方程(组)的解析解和数值解 专业班级姓名学号 一. 上机目的 1.了解求微分方程(组)的解的知识。 2.学习Matlab中求微分方程的各种解的函数,如dsolve命令、ode45函数等等,其中注意把 方程化为新的方程的形式。 3.掌握用matlab编写程序解决求解微分方程的问题。 二. 上机容 1、求高阶线性齐次方程:y’’’-y’’-3y’+2y=0。 2、求常微分方程组 2 210cos,2 24,0 t t t dx dy x t x dt dt dx dy y e y dt dt = - = ? +-== ?? ? ?++== ?? 3、求解

分别用函数ode45和ode15s 计算求解,分别画出图形,图形分别标注标题。 4、求解微分方程 ,1)0(,1'=++-=y t y y 先求解析解,在[0,1]上作图; 再用ode45求数值解(作图的图形用“o ”表示),在同一副图中作图进行比较,用不同的颜色表示。 三. 上机方法与步骤 给出相应的问题分析及求解方法,并写出Matlab 程序,并有上机程序显示截图。 题1:直接用命令dsolve 求解出微分方程的通解。 Matlab 程序: dsolve('D3y-D2y-3*Dy+2*y','x')

题2:将微分方程组改写为 5cos2exp(2) 5cos2exp(2) (0)2,(0)0 dx t t x y xt dy t t x y dt x y ? =+--- ? ? ? =-+-+- ? ? == ? ? ? ,再用命令dsolve求解微分方程的通解。 Matlab程序: 建立timu2.m如下: [x,y]=dsolve('Dx=5*cos(t)+2*exp(-2*t)-x-y','Dy=-5*cos(t)+2*exp(-2*t)+x-y','x(0)=2,y(0) =0','t') x=simple(x) y=simple(y) 题3:由于所给的微分方程为一阶微分方程,则直接用函数ode45和ode15s求解微分方程的数值解,具体程序如下: (1)Matlab程序: 建立M文件fun2.m,如下: function dy=fun2(t,y); dy=zeros(2,1); dy(1)=0.04*(1-y(1))-(1-y(2))*y(1)+0.0001*((1-y(2))^2); dy(2)=-10000*y(1)+3000*((1-y(2))^2); 取t0=0,tf=100,建立程序timu32.m如下: t0=0;tf=100; [T,Y]=ode45('fun2',[0 100],[1 1]); plot(T,Y(:,1),'+',T,Y(:,2),'*');

相关文档
最新文档