使用ode45在Matlab中求解y'= y和y'= t

时间:2016-01-03 06:43:07

标签: matlab math ode scientific-computing differential-equations

我首先为dy / dt = y和dy / dt = t:

定义了函数
function dy=d(y):
    dy=y
end

function ddy=dd(t):
    ddy=t
end

然后我分别使用了ode45:

[t,y]=ode45('d',[1 10],1)
[t,y]=ode45('dd',[1 10],1)

返回以下错误:使用d时出错 输入参数太多。

我的问题是:

  1. 我哪里出错了?
  2. Matlab如何知道y或t是否是自变量?当我定义第一个函数时,它可以合理地解释为dt / dy = y而不是dy / dt = y。是否有用于定义函数的内置约定?

1 个答案:

答案 0 :(得分:0)

首先要做的事情是ode45上的文档在mathworks网站上,或者您可以通过输入help ode45从控制台获取它们。

您传入的函数需要使用两个变量y然后t。正如您所注意到的那样,仅使用一个就不可能仅将y的函数与仅t的函数区分开来。第一个参数必须是独立的,第二个参数是依赖的。

尝试使用相同的主体将您的功能定义为dy = d(t, y)ddy = dd(t, y)

另外注意,虽然使用表示函数名称的字符串应该有效,但您可以使用@d@dd直接引用这些函数。