Borrar filtros
Borrar filtros

How do I graph an ordinary differential equation with an initial condition?

2 visualizaciones (últimos 30 días)
I'm trying to solve a problem for a matlab problem set homework, and I was having issues getting the code below to work. The question in the book is "Plot the solution satisfying the initial condition y(2) = 1.5". Thank you!
syms y(t)
cond = y(2)== 1.5; %describes initial condition
ode = exp(y) + (( t*exp(y)-sin(y))* diff(y, t)) == 0; % the equation
ySol = dsolve(ode, cond)
figure
ezplot(ySol)

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 15 de Sept. de 2020
Editada: Ameer Hamza el 15 de Sept. de 2020
dsolve() shows that the ODE might not have a symbolic solution. So you will need to resort to a numerical solution. Following shows how it can be done in MATLAB
syms y(t)
ode = exp(y) + (( t*exp(y)-sin(y))* diff(y, t)) == 0; % the equation
V = odeToVectorField(ode);
odefun = matlabFunction(V, 'vars', {'t', 'Y'});
IC = 1.5;
tspan = [2 10]; % interval in which solution is needed
[t, y] = ode45(odefun, tspan, IC);
f = figure();
ax = axes();
plot(t, y);
This graph follows the initial condition.
  2 comentarios
Ramadan M
Ramadan M el 15 de Sept. de 2020
Thank you! I understand this a lot more now!
Also, would you happen to know how to find y(some specified t) with code, and mark it on the graph? It's the follow up question to this one.
ex. y(1), mark this point on the graph.
I made a few attempts at it, but the textbook that I'm working out of seems to be fairly outdated.
Ameer Hamza
Ameer Hamza el 16 de Sept. de 2020
See the following code
syms y(t)
ode = exp(y) + (( t*exp(y)-sin(y))* diff(y, t)) == 0; % the equation
V = odeToVectorField(ode);
odefun = matlabFunction(V, 'vars', {'t', 'Y'});
IC = 1.5;
tspan = [2 10]; % interval in which solution is needed
sol = ode45(odefun, tspan, IC);
f = figure();
ax = axes();
hold(ax);
plot(sol.x, sol.y);
plot(5, deval(sol, 5), '*', 'MarkerSize', 8, 'LineWidth', 2);

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by