Coding a solution to a second order ODE with ode45 or simulink

Please help! y''+by'+siny=0 -Plot the numerical solution of this differential equation with initial conditions y(0)=0, y'(0)=4, from t=0 to t=20 -Do the same for the linear approximation y''+by'+y=0 -Compare linear and nonlinear behavior for values b = 1, 1.5, 2

2 Commenti

syms t f
function fprime = pendulum(t, f) b = [1, 1.5, 2]; fprime = zeros(size(f)); fprime(1) = f(2); fprime(2) = -sin(f(1))-b*f(2); [t f] = ode45('pendulum', [0 20], [0 4]); plot(t,f(:,1)) end

Accedi per commentare.

 Risposta accettata

[t,f] = ode45(@pendulum, [0 20], [0 4]); % calling of the function
plot(t,f(:,1),'g')
hold on
plot(t,f(:,2),'r')
function fprime = pendulum(t, f)
b = 1; % b should be a scalar
fprime = zeros(size(f));
fprime(1) = f(2);
fprime(2) = -sin(f(1))-b*f(2);
fprime=[fprime(1);fprime(2)]
end

3 Commenti

If something is not clear let know else accept the answer so that people know the question is solved
Is there a way I can plot a second equation on the same graph? Thank you.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by