Я пытаюсь решить простой нелинейный генератор с помощью lsode, используя якобиан.Это скрипт, который вызывает функцию и якобиан:
x_0 = [1, 0];
t = linspace(0,10,1000);
[X] = lsode([@fcn, j], x_0, t);
figure(1);
plot(t,X(:,1));
Функция fcn:
function f = fcn(x,t)
c = 5;
m = 10;
k = 10;
if x(1) < 0
k = 10e9;
endif
f1 = x(2);
f2 = -c/m*x(2)-k/m*x(1);
f = [f1; f2];
endfunction
и якобиан:
function jac = j(x,t)
c = 5;
m = 10;
k = 10;
jac = [0, 1; -k/m, -c/m];
endfunction
Я получаюэта ошибка:
error: horizontal dimensions mismatch (1x1 vs 2x2)
error: called from
script at line 5 column 4