odefun如何工作(matlab)

问题描述 投票:0回答:1

我想知道如何在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
matlab ode ode45
1个回答
0
投票

eq 这里是一个列向量,格式为3x1,这里的赋值是针对它的组件。你也可以写成

eq =  [ y(2); -P*sign(x); 0 ]

这意味着,该组件 y(3) 是恒定的,而且 y(2) 的导数 y(1).

通常这是一个边界值问题的设置,只有一个变量参数。

© www.soinside.com 2019 - 2024. All rights reserved.