
How do I graph an ordinary differential equation with an initial condition?
3 views (last 30 days)
Show older comments
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)
0 Comments
Accepted Answer
Ameer Hamza
on 15 Sep 2020
Edited: Ameer Hamza
on 15 Sep 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 Comments
Ameer Hamza
on 16 Sep 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);

More Answers (0)
See Also
Categories
Find more on Calculus in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!