Решение дифференциальных уравнений в MATLAB

Есть следующий код:

T=[0 5];
y0=0.5;
Y0=[0,y0];
odefun=@(x) (-1).*exp(x)./(exp(x)+1)
[x,y]=ode45(odefun,T,Y0)
plot(x,y,'LineWidth',2)
grid on
xlabel 'x'
ylabel 'y'

Из-за чего происходит следующая ошибка?

error using odu Too many input arguments


Ответы (1 шт):

Автор решения: AVK

Из-за того, что у odefun должно быть два аргумента, время и вектор состояния:

odefun=@(t,x) (-1).*exp(x)./(exp(x)+1)
→ Ссылка