![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/360898/image.png)
How do I graph an ordinary differential equation with an initial condition?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Ramadan M
il 15 Set 2020
Commentato: Ameer Hamza
il 16 Set 2020
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 Commenti
Risposta accettata
Ameer Hamza
il 15 Set 2020
Modificato: Ameer Hamza
il 15 Set 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);
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/360898/image.png)
This graph follows the initial condition.
2 Commenti
Ameer Hamza
il 16 Set 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);
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/361150/image.png)
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!