我想知道如何在matlab中求解微分方程
[t,y] = ode45(odefun,tspan,y0)。
我有一个例子 恋情但我不确定这段代码的什么部分,或者我只是不明白语法。eq(1,1)=, eq(2,1)=, eq(3,1)= 是向量吗?第一参数是时间吗,第二参数负责什么?任何帮助是感激!
function eq = f (t, y)
t0=0.2;
x=y(1)+t0*y(2);
P = 11 - (t + y(3));
if (11 - (t + y(3))<=0)
P = -1;
end
eq(1,1)=y(2);
eq(2,1)=-P*sign(x);
eq(3,1)=0;
end
eq
这里是一个列向量,格式为3x1,这里的赋值是针对它的组件。你也可以写成
eq = [ y(2); -P*sign(x); 0 ]
这意味着,该组件 y(3)
是恒定的,而且 y(2)
的导数 y(1)
.
通常这是一个边界值问题的设置,只有一个变量参数。