能不能写成下面形式?
X function dy = myfun2(t,x,y,z) dy = zeros(3,1); dy(1) = y * z; dy(2) = -x * z; dy(3) = -0.51 * x * y;
-
6
说明
function dy = myfun2(t,y)
odefun
变量属性必须 一一对应!
2、主文件 main3.m
clear;
[T,Y]=ode45(@myfun3,[0,10],[1,1]);
-
8
高阶常微分方程
高阶常微分方程
变量替换 化为
一阶常微分方程组
例: Van der Pol 初值问题
令
x1 y, x2
dy,则原方程可化为 dt
-
参数怎么处理?
用全局变量传递
9
参数传递
1、函数文件 verderpol.m
function dy = myfun2(t,y)
ddyy == z[eryo(s2(3),*1y)(;3)%; dy-myu(s1t)*bey(a3)c;olu.m.n.vector!
dy(1) dy(2)
==-0y-.(y52()11)**y*(y1(y)3(*)3y;)(;2)];
dy(3) = -0.51 * y(1) * y(2);
如果是常微分方程组,y 就是列向量!
dy 必须是列向量,长度为方程组的个数,通常与y的长度相同!
函数中的输入参数和输出参数是形参,名字可以任意取,但必须 满足上述条件。即输入参数有两个,第一个表示自变量,第二个 是由因变量组成的列向量,输出参数必须是列向量。
-
7
例
例:解初值问题: