我正在尝试自己学习 MatLab。我得到了关于求解 ODE 的大部分概念,但我对使用可选参数作为输入有点不确定。我创建了以下功能:
function xdot = funn(t,x,mu);
if nargin < 3 | isempty(mu)
mu = 1;
end
xdot = t +mu*x;
另外我定义了:
tspan = [0 2];
x0 = 0;
options = odeset('outputfcn','odeplot');
我不确定的是如何mu
在使用ode23
函数时更改变量。我知道这应该可以通过输入可选参数来实现,但我无法让它工作。说如果我写:
[t y] = ode23('funn',tspan,x0,options)
然后一切计算正确,我们自动得到mu
= 1。
但如果我想改变这一点,我该如何进行?我尝试编写以下内容来设置mu
= 4:
[t y] = ode23('funn',tspan,x0,options,4)
但后来我得到以下信息:
??? Error using ==> funn
Too many input arguments.
Error in ==> odearguments at 98
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ==> ode23 at 171
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
我这样做是基于我对教科书中所写程序的理解,但显然我在这里做错了。如果有人能解释我如何更改参数mu
,以及一般来说如何p1, p2, ...
使用可选参数,ode23
我将不胜感激!