ode 45 doesnt work

7 Ansichten (letzte 30 Tage)
Naor t
Naor t am 2 Mai 2021
Beantwortet: Cris LaPierre am 3 Mai 2021
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')

Akzeptierte Antwort

William Rose
William Rose am 3 Mai 2021
Bearbeitet: William Rose am 3 Mai 2021
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.

Weitere Antworten (1)

Cris LaPierre
Cris LaPierre am 3 Mai 2021
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')

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by