load data2 time=trace_x(1,:)'; %first column in data is saved as time d_data=trace_y(2,:)';%second column in data is saved as experimental displacements %maxval=max(d_data'); vval = max(d_data); index=find(d_data==vval); time=time(index:end,1)-time(index,1); %first column in data is saved as time d_data=d_data(index:end); C0=3; K0=2; q0=[C0;K0]; [q,cost]=fminsearch(@cost_beam,q0,[],time,d_data);%find optimal parameters C=q(1);%optimal values for C and K K=q(2); x0=[d_data(1) 0]; %initial conditions [t,x]=ode23(@ode_model,time,x0,[],C,K); %solve the mass-spring dashpot model d_model=x(:,1); plot(time,d_data,'--',time, d_model,'r') legend('experimental data','model displacement') title('Two-parameter model estimation'); xlabel('time (s)'); ylabel('displacement');