【发布时间】:2017-11-28 15:12:12
【问题描述】:
这可能只是一个很小的错误,但我在调用函数时遇到了错误:
error: 'D' undefined near line 7 column 25
我的功能是:
function dxdt = s(t,u,D,D0,ni,ax,ay,bn,bx,ex,ey,epsilon)
D = D0*(1+epsilon*sin(2*pi*t));
n = u(1);
x = u(2);
y = u(3);
dxdt = [D*ni - D*n - (ax*(n/(bn+n))*x); ...
-D*x+ex*ax*(n/(bn+n))*x-ay*(x/(bx+x))*y; ...
-D*y+ey*ay*(x/(bx+x))*y];
end
我将所有内容都放在这里,但我认为只有D = ... 部分很重要。在我的脚本中,我以这种方式调用函数:
[T,U] = ode45(@(t,u) s(t,u,D,D0,ni,ax,ay,bn,bx,ex,ey,epsilon),interval,u0);
【问题讨论】:
-
您的调用脚本中的
D定义在哪里? -
我只在函数中定义它。我也应该在脚本中输入
D=D0*(1+epsilon*sin(2*pi*t)吗? -
如果仅在函数中定义,则不应是传递给函数的参数之一。
-
当您在调用
ode45中创建匿名函数时,您必须已经定义除t和u之外的所有其他变量。 -
在您的函数中
D是一个输入,但随后您将其评估为D=D0*(1+epsilon*sin(2*pi*t));