求解常微分方程matlab求解?作图。matlab

72实验四 求微分方程的解一、問题背景与实验目的实际应用问题通过数学建模所归纳而得到的方程绝大多数都是微分方程,真正能得到代数方程的机会很少.另一方媔能够求解的微分方程也是十分有限的,特别是高阶方程和偏微分方程(组) .这就要求我们必须研究微分方程(组)的解法既要研究微分方程(组)的解析解法(精确解) ,更要研究微分方程(组)的数值解法(近似解) .对微分方程(组)的解析解法(精确解)Matlab 有专門的函数可以用,本实验将作一定的介绍.本实验将主要研究微分方程(组)的数值解法(近似解) 重点介绍 Euler 折线法.二、相关函数(命令)及简介1.dsolve( equ1 , equ2 ,…):Matlab 求微分方程的解析解.equ1 、equ2、…为方程(或条件) .写方程(或条件)时用 Dy 表示 y 因为没有一种算法可以有效地解决所有的 ODE 问題,为此Matlab 提供了多种求解器 Solver,对于不同的 ODE 问题采用不同的 Solver.求解器SolverODE 类型 特点 说明ode45 非刚性 单步算法;4、5 阶 Runge-Kutta 方程;累计截断误差达3)(x?大部汾场合的首选算法ode23 非刚性 单步算法;2、3 阶 Runge-Kutta 方程;累计截断误差达)(x使用于精度较低的情形ode113 非刚性 多步法;Adams 算法;高低精度均可到 6310~?计算时间仳 ode45 短ode23t 适度刚性 采用梯形算法 适度刚性情形ode15s 刚性 多步法;Gear s 反向数值微分;精度中等若 ode45 失效时,可尝试使用ode23s 刚性 单步法;2 阶 Rosebrock 算法;低精度当精喥较低时计算时间比 ode15s 短ode23tb 刚性 梯形算法;低精度 当精度较低时,计算时间比 ode15s 短(6) 要特别的是:ode23、ode45 是极其常用的用来求解非刚性的标准形式的┅阶常微分方程matlab求解(组)的初值问题的解的 Matlab 的常用程序其中:ode23 采用龙格-库塔 2 阶算法,用 3 阶公式作误差估计来调节步长具有低等的精度.ode45 則采用龙格-库塔 4 阶算法,用 5 折线法求解前面讲到过能够求解的微分方程也是十分有限的.下面介绍用 Euler 折线法求微分方程的数值解(近似解)嘚方法.Euler 折线法求解的基本思想是将微分方程初值问题 ?????0)(,yxfd化成一个代数方程,即差分方程主要步骤是用差商 替代微商hxy)((??,于是:dxy????????)(),(,0xyxyfhkkk记 ,从而 法求解读者可将两个结果在一个图中显示,并和精确值比较看看哪个更“ 精确”?(相应的 Matlab 程序参见附錄 2) .四、自己动手1. 求微分方程 的通解.0sin2 )1(2???xyx2. 求微分方程 的通解.ey5 3. 求微分方程组 ???????0yxdt79在初始条件 下的特解并画出解函數 的图形.0|,1|0??ttyx ()yfx?4. 分别用 ode23、ode45 求上述第 3 题中的微分方程初值问题的数值解(近似解 ),求解区间为 .利用画图来比较两种求解器之间的差异.[,2]t?5. 鼡 Euler 折线法求解微分方程初值问题 ??????1)0(,2 3yx的数值解(步长 h 取 0.1)求解范围为区间[0,2] .6. 用四阶 Runge-Kutta 法求解微分方程初值问题 ?????1)0(,cos

这个方程要解出来还要初始条件吧

还有用ode45只能得到数值解不能给出解析式表达

那么先建立一个函数文件

;%根据你所想要的求得值设定t0,间隔是任意的与求解所用的步長无关,

你对这个回答的评价是

应该如何用matlab求解常微分方程matlab求解MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境主要包括MATLAB和Simulink兩大部分。用matlab可以解决许多数学问题如果用得好的话,老师布置的数学作业就不用愁了接下来小编将给大家介绍matlab解常微分方程matlab求解之苻号解法,一起去看看吧!

matlab解常微分方程matlab求解——符号解法:

1、首先得介绍一下在matlab中解常微分方程matlab求解有两种方法,一种是符号解法叧一种是数值解法。在本科阶段的微分数学题基本上可以通过符号解法解决。

2、用matlab解决常微分问题的符号解法的关键命令是dslove命令该命囹中可以用D表示微分符号,其中D2表示二阶微分D3表示三阶微分,以此类推值得注意的是该微分默认是对自变量t求导,也可以很容易在命囹中改为对其他变量求导

4、解释了半天,不如用实例来说明下面以解决一个简单的微分方程入手。方程如下

5、首先启动matlab软件,在命囹行中欢快地敲入

dslove(‘Dy=3*x*x’‘x’),然后轻松地摁一下键盘上的enter建,最后答案就蹦出来了

6、下面,我们来加大难度在上面的方程条件下加入初始条件x=0时,y=2

只需在相同的命令中加入一个条件语句就可以了。命令形式为

dslove(‘Dy=3*x*x’‘y(0)=2’,‘x’)可以看到答案中的常数项

7、最后,我再加大一下难度这次来求一个微分方程组。方程组如下初始条件为x(0)=2,y(0)=1dy(0)=1.

8、在命令中只需改一下相应的方程与條件即可以了,由于是对t求导所以可以用默认,不需要在末尾添加‘t’

9、可以看到用matlab中的dslove命令确实可以解决许多常微分问题。

教程结束以上就是关于如何用matlab求解常微分方程matlab求解?matlab解常微分方程matlab求解之符号解法介绍如果你还不知道如何用matlab求解常微分方程matlab求解,那就按照以上方法试试吧!更多matlab使用技巧尽在我们网站哦!

我要回帖

更多关于 常微分方程matlab求解 的文章

 

随机推荐