用MATLAB求解常微分方程实验报告

实验五 利用Matlab求解常微分方程(组)的实验报告

学院:数计学院 班级:1003班 姓名:黄晓丹 学号:1051020144

一.实验目的:

熟悉Matlab软件中关于求解常微分方程的各种命令. 掌握利用Matlab软件进行常微分方程的求解。 二.相关知识

在MATLAB中,由函数dsolve()解决常微分方程(组)的求解问题,其具体格式如下:

X=dsolve(‘eqn1’,’eqn2’,…)

函数dsolve用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解.

用字符串方程表示,自变量缺省值为t。导数用D表示,2阶导数用D2表示,以此类推。S返回解析解。在方程组情形,s为一个符号结构。 *tout,yout+=ode45(‘yprime’,*t0,tf+,y0) 采用变步长四阶Runge-Kutta法和五阶Runge-Kutta-Felhberg法求数值解,yprime是用以表示f(t,y)的M文件名,t0表示自变量的初始值,tf表示自变量的终值,y0表示初始向量值。输出向量tout表示节点(t0,t1, …,tn),输出矩阵yout表示数值解,每一列对应y的一个分量。若无输出参数,则自动作出图形. 三.实验内容:

例1 求下列微分方程的解析解

(1)y' ay b

(2)y'' sin(2x) y,y(0) 0,y'(0) 1 (3)

f' f g,g' g f,f'(0) 1,g'(0) 1

T

方程(1)求解的MATLAB代码为:

>>clear;

>>s=dsolve('Dy=a*y+b')

结果为

s =-b/a+exp(a*t)*C1

方程(2)求解的MATLAB代码为:

>>clear;

>>s=dsolve('D2y=sin(2*x)-y','y(0)=0','Dy(0)=1','x') >>simplify(s) %以最简形式显示s

结果为

s =(-1/6*cos(3*x)-1/2*cos(x))*sin(x)+(-1/2*sin(x)+1/6*sin(3*x))*cos(x)+5/3*sin(x) ans =-2/3*sin(x)*cos(x)+5/3*sin(x) 方程(3)求解的MATLAB代码为:

你可能喜欢

  • 微分方程数值解法
  • MATLAB实验报告
  • matlab求解微分方程
  • 人口增长模型
  • LU分解法
  • 改进欧拉法

用MATLAB求解常微分方程实验报告相关文档

最新文档

返回顶部