help with finding a numerical answer using Ode45

2 visualizaciones (últimos 30 días)
Cody Havlin
Cody Havlin el 3 de Abr. de 2015
Comentada: Star Strider el 3 de Abr. de 2015
I have the equation
m*D2y +dc*Dy + sk*y = A*sin (omega t)
and I need to have numerical values to use. I'm trying to use ode45 ,but I keep hitting the error
Error using odearguments (line 93) @(T,Y)[Y(2);-150/1000*Y(1)-150/1000*Y+8*PI*SIN(5*T)/1000] returns a vector of length 3, but the length of initial conditions vector is 2. The vector returned by @(T,Y)[Y(2);-150/1000*Y(1)-150/1000*Y+8*PI*SIN(5*T)/1000] and the initial conditions vector must have the same number of elements.
I feel like i am missing something simple but i haven't figured it out yet. Can anyone show me the process of getting numerical answers, not just a symbolic answer.
My code is:
f = @(t, y) [y(2); -150/1000*y(1) - 150/1000*y + 8*pi*sin(5*t)/1000];
[xa, ya] = ode45(f, [0 50], [ 0 0 ]);
plot(xa, ya)

Respuesta aceptada

Star Strider
Star Strider el 3 de Abr. de 2015
I took me a few minutes to re-derive the two first-order equations (tired), but this works:
f = @(t, y) [y(2); (-150/1000*y(2) - 150/1000*y(1) + 8*pi*sin(5*t)/1000)];
[xa, ya] = ode45(f, [0 50], [0 0]);
  2 comentarios
Cody Havlin
Cody Havlin el 3 de Abr. de 2015
I've been working on a project that involves this all day. Thank you!
Star Strider
Star Strider el 3 de Abr. de 2015
My pleasure!
The key is that y=y(1), y(2)=dy(1) and the second equation is dy(2).

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Ordinary Differential Equations en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by