我对什么时候使用ode45(@functionname,tspan,initialvalues,...)感到有点困惑。或者ode45('functionname',tspan,初始值,...)。我见过使用这两种方法的示例,但有时其中一种可以工作,另一种则不能。
例如,[t,y]=ode45(@MM2, tspan, y0,[],k1,k2,k3)可以工作,但[t,y]=ode45('MM2', tspan, y0,[],k1,k2,k3)不能。
在此之前,非常感谢您。
发布于 2018-10-30 22:58:58
据我所知,当要集成的函数位于另一个文本文件中时,您将使用"@“。如果函数在同一个文本文件中,则不需要使用"@“。
例如:让我们计算一下Van Der Pol摆的水平坐标。
在文件1中: xdot_van_der_pol.m
function dxdt = xdot_van_der_pol(t, x)
global u;
if size(u,1) == 0
u = 1
end
dx1 = x(2);
dx2 = u*(1 - x(1)^2)*x(2) - x(1);
dxdt = [ dx1 ; dx2 ];在文件2中: integration.m
u = 1;
tf = 20;
xo = [2 ; 0];
[t,x]=ode45(@xdot_van_der_pol, [0 tf], xo);
subplot(221); plot(x(:,1), t(:,1)); hold on;
subplot(224); plot(t(:,1), x(:,2)); hold on;
subplot(223); plot(x(:,1), x(:,2)); hold on;另一种情况是在同一个文本文件中编写所有内容,这样您就不必使用"@“来调用函数。
https://stackoverflow.com/questions/36535205
复制相似问题