将外部变量传递给函数以在八度中使用lsode进行编码

时间:2019-02-03 10:22:29

标签: function octave external

我有一个要用lsode解决的功能,像这样:

function f = fcn(x,t)
  % Set spring stiffness and mass
  k = 500;
  m = 5;

  % Assign function
  f1 = x(2);
  f2 = -(k/m)*x(1);
  f = [f1; f2];
 endfunction

这是调用此功能的脚本:

% Initial value
x0 = [0.2, 0];

%time
t = linspace(0,1,500);

[X] = lsode (@fcn, x0, t);
plot(t,X(:,1));

现在,我想循环播放此脚本,但是每次我想使用不同的“ k”值时。用lsode解决的函数必须仅接受“ x”和“ t”作为参数,然后我不能将“ k”放在参数列表中。

我不能使用匿名函数,因为我正在研究的实际函数更加复杂(不仅仅是线性振荡器)。

0 个答案:

没有答案