Решатель ODE45 в Matlab ничего не решает - PullRequest
0 голосов
/ 19 января 2020

Я новичок в Matlab. Я пытаюсь интегрировать систему ODE, но Matlab ничего не делает. Я пытаюсь запустить первый из файлов, run_oscillator.m. Когда я это делаю, рядом с самой первой строкой появляется оранжевая полоса. По сути, я надеялся увидеть фазовый портрет, но все, что я получил, это ... ничего. Кто-нибудь может помочь?

run_oscillator.m

solver = 'ode45';
opts = odeset('RelTol', 1e-6, 'AbsTol', 1e-6, 'MaxStep', 0.1);

vfields = 'vectorfields';
vfields = 'jacobians';
pfunction = 'pfunction';

C = 1;
F = 0.4; omega = 1/3; params = [F, omega];
y0 = [1, 2, 0];
T = 2*pi/omega*10; tspan = [0, T];

vectorfields.m

F = params(1); omega = params(2);
F1 = [y(2); -y(1)+sin(y(3))-F; omega]; 
F2 = [y(2); -y(1)+sin(y(3))+F; omega];
H = y(2);
dH = [0, 1, 0];
h = y(3) - 2*pi;
hdir = 1;

якобиан .m

J1 = [0, 1, 0; -1, 0, cos(y(3)); 0, 0, 0]; 
J2 = J1; 
d2H = zeros(3,3);

pfunction.m

y1 = [y(1), y(2), 0];
...