ode 45 doesnt work

1 次查看(过去 30 天)
Naor t
Naor t 2021-5-2
Hey' so im tring to solve this eq
this is the code' what im missing? why it dosent work?
y0 = [-1 ;8];
tspan = [0 ;3];
[t,y] = ode45(@(t,y) ((2*y^2*t + 4)/((3-t^2*y)*2)),tspan,y0);
plot(t,y)
grid on
xlabel('t')
ylabel('y')
title('Solutions of (2*y^2*t + 4)/((3-t^2*y)*2','interpreter','latex')

采纳的回答

William Rose
William Rose 2021-5-3
编辑:William Rose 2021-5-3
It doesn;t work because you define y0=[-1 8], a vector with 2 elements. Therefore ode45() gets into trouble when it tries to square this vector as it evaluates dydt.
If you define y0=-1 it works. See result below.

更多回答(1 个)

Cris LaPierre
Cris LaPierre 2021-5-3
There is an issue with your initial conditions. See this post on how to set up an initial value problem when t ~= 0.
However, you may want to revisit either your equation or your initial values, as the result seems incorrect. Y values are extremely big.
y0 = 8;
tspan = [-1 3];
[t,y] = ode45(@(t,y) ((2*y^2*t + 4)/((3-t^2*y)*2)),tspan,y0);
plot(t,y)
grid on
xlabel('t')
ylabel('y')
title('Solutions of (2*y^2*t + 4)/((3-t^2*y)*2')

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by