Solving and plotting 2nd order ODE
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I'm trying to solve the equation y''+sin(y)=0, and plot the results at time 0, 0.1, 0.7, 1.5, 3.0, on a graph.
I tried using this code so far to find the solution, but I am unable to plot the result, '2*atan(exp(C1-t)). I think it's because of the 'C1' in the solution, but I'm not sure how to get rid of it.
>> syms y(t)
>> ode = diff(y,t) == -sin(y)
ode(t) =
diff(y(t), t) == -sin(y(t))
>> ySol(t) = dsolve(ode)
ySol(t) =
2*atan(exp(C1 - t))
0
0 comentarios
Respuestas (1)
Piotr Balik
el 20 de Abr. de 2023
Editada: Piotr Balik
el 20 de Abr. de 2023
This is constant, whose numerical value is depending on initial conditions.
You can either specify it directly, per Solve system of differential equations - MATLAB dsolve (mathworks.com)
bnds = y(0) == -0.123
ySol(t) = dsolve(ode, bnds)
But you can also try to solve it substituting to general solution analytically:
Plotting and the example code
syms y(t)
ode = diff(y,t) == -sin(y)
bnds = y(0) == -0.123
ySol(t) = dsolve(ode,bnds)
tv = [0, 0.1, 0.7, 1.5, 3.0];
yv = ySol(tv)
figure,
plot(tv,yv,'o-')
0 comentarios
Ver también
Categorías
Más información sobre Ordinary Differential Equations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!