首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Matlab中为ode45使用@或'‘?

在Matlab中为ode45使用@或'‘?
EN

Stack Overflow用户
提问于 2016-04-11 04:30:05
回答 1查看 119关注 0票数 2

我对什么时候使用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)不能。

在此之前,非常感谢您。

EN

回答 1

Stack Overflow用户

发布于 2018-10-30 22:58:58

据我所知,当要集成的函数位于另一个文本文件中时,您将使用"@“。如果函数在同一个文本文件中,则不需要使用"@“。

例如:让我们计算一下Van Der Pol摆的水平坐标。

在文件1中: xdot_van_der_pol.m

代码语言:javascript
复制
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

代码语言:javascript
复制
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;

另一种情况是在同一个文本文件中编写所有内容,这样您就不必使用"@“来调用函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36535205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档