Solution of spring mass equation with cubic stiffness

5 vues (au cours des 30 derniers jours)
Murat Yetkin
Murat Yetkin le 10 Oct 2018
Rouvert : Walter Roberson le 22 Déc 2018
I have below equation to solve with a given time series of f(t). Is there any idea how to do it in Matlab with ode solvers?
m=1; c=1; k=10; k2=20; k3=20;
my''+cy'+ky+k2*y^2+k3*y^3=f(t)

Réponses (1)

Torsten
Torsten le 10 Oct 2018
function main
tf = ...; % times for f-vector
f = ...; % f vector
tspan=[0 10000];
y0=[0;1];
[t,y]=ode45(@(t,y) myode1(t,y,tf,f),tspan,y0);
end
function dy = myode1(t,y,tf,f)
m=1; c=1; k=10; k2=20; k3=20;
f_actual=interp1(tf,f,t);
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=(f_actual-c*y(2)-k*y(1)-k2*y(1)^2-k3*y(1)^3)/m;
end
  2 commentaires
Murat Yetkin
Murat Yetkin le 11 Oct 2018
Modifié(e) : Murat Yetkin le 11 Oct 2018
thank you for reply, but this produced results as 'NaN'. also, how did you decide the initial conditions as [0;1]?
Torsten
Torsten le 11 Oct 2018
Modifié(e) : Torsten le 11 Oct 2018
thank you for reply, but this produced results as 'NaN'.
Did you include your tf and f vectors for the tspan period?
also, how did you decide the initial conditions as [0;1]?
I decided it because you didn't supply any.
Best wishes
Torsten.

Connectez-vous pour commenter.

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by