Clear Filters
Clear Filters

Solution of spring mass equation with cubic stiffness

1 view (last 30 days)
Murat Yetkin
Murat Yetkin on 10 Oct 2018
Reopened: Walter Roberson on 22 Dec 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)

Answers (1)

Torsten
Torsten on 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 Comments
Murat Yetkin
Murat Yetkin on 11 Oct 2018
Edited: Murat Yetkin on 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 on 11 Oct 2018
Edited: Torsten on 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.

Sign in to comment.

Categories

Find more on Programming in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!