Matlab ode45 помогает неопределенной переменной

function yp = nonlinear (t,y)
e=0.2;
yp(1)=y(2);
yp(2) = (-y(1)-e*y(1)^3);
tspan = [0.20];
y0=[0;0]
[t,y]=ode45('nonlinear',tpsan,y0)
plot (t,y(:,1))
grid
xlabel('time')
ylabel('u')
title ('u vs. t')
hold on;

Извините, я абсолютно нуб в Matlab, когда я пытаюсь выполнить код, он говорит «неопределенная функция переменной t». Я пытаюсь использовать ode45 для решения дифференциального уравнения


person Community    schedule 11.07.2017    source источник


Ответы (1)


Прочтите документацию по ode45. Вам необходимо сохранить следующие строки вашего кода в файл nonlinear.m

function yp = nonlinear (t,y)
e=0.2;
yp(1)=y(2);
yp(2) = (-y(1)-e*y(1)^3);

а затем в отдельном файле (скрипте) сохраните остальную часть кода:

tspan = [0.20];
y0=[0;0]
[t,y]=ode45('nonlinear',tpsan,y0)
plot (t,y(:,1))
grid
xlabel('time')
ylabel('u')
title ('u vs. t')
hold on;

Вы также можете ознакомиться с MATLAB, прежде чем пытаться сделать что-то подобное. Ознакомьтесь с руководствами.

person am304    schedule 11.07.2017
comment
Или закройте определение функции с помощью end, если вы хотите избежать нескольких файлов. - person Lutz Lehmann; 11.07.2017