Я пытаюсь решить дифференциальное уравнение с использованием ode45
в Matlab. Я бегу два сценария:Как изменить значение параметра внутри решателя ode45 Matlab
function xdot=linearproblem(t,x)
global kappa mass F
xdot(1)=-(kappa/mass)*x(2)+(F/mass)*(cos(omega1*t));
xdot(2)=x(1);
xdot=xdot';
end
Затем во втором сценарии, у меня есть
close all
clear
clc
global kappa mass F
kappa=4;
F=2;
mass=0.5;
options=odeset('omega1',[1.4 1.5 1.6]);
[t x]=ode45(@linearproblem,0:0.005:100,[0 0],options);
a=x(8000,2);
omega1=omega1'
a=a'
Я пытаюсь решить уравнение с помощью трех значений omega1
, но это дает мне сообщение об ошибке:
Error using odeset (line 226)
Unrecognized property name 'omega1'.
Error in frequencysweep (line 12)
options=odeset('omega1',1.4);
Я попытался определения omega1
в качестве аргумента: function xdot=linearproblem(t,x,omega1)
, но это не помогло.
Спасибо. yup я использовал цикл для хранения значений omega 1 в файле, а затем решил оду. Он работал хорошо. – user3014799
@ user3014799: Помог ли мой ответ решить вашу проблему? Если это было полезно, пожалуйста, примите его. Спасибо. – horchler