MATLAB: Solve Second Order Differential Equation with Initial Conditions

differential equationsdsolveinitial value

I am trying to solve using the dsolve function:
D^2y/dt + p(dy/dt) + 2y = cos(w*t) with the conditions y(0) = 0 and y'(0) = 0
Assuming p = 0 and w cannot be 0.
Also how would I go about plotting the solutions of y(t) vs t for different values of w such as 0.5,0.6,0.7,0.8,0.9 and 0.95
How do I go about doing this?

Best Answer

Here you go:
syms y(t) p w t
p = 0;
Deq = diff(y,2) + p*diff(y) + 2*y == cos(w*t);
Y = dsolve(Deq, diff(y(0)) == 0, y(0) == 0);
Y = simplify(Y, 'steps', 20);
Yfcn = matlabFunction(Y)
As for the plot, you will find the meshgrid function significantly helpful here. Read about it and surface and mesh in the documentation.