How can i solve this function below ?

조회 수: 1 (최근 30일)
Mallouli Marwa
Mallouli Marwa 2016년 3월 29일
댓글: Gokul Prassad S 2019년 3월 8일
To solve a second order differential equation : dx/dt = Ax + Bu(t) I use this function but i haven't obtain any result :
function xdot = msd(t,x)
% Function file for mass with spring and damping.
% Position is first variable, velocity is second variable.
u = 10;
m = 1;c = 2;k = 5;
A = [0, 1;-k/m, -c/m];
B = [0; 1/m];
xdot = A*x+B*u;
[t, x] = ode45(@msd, [0,5], [0,0];

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2016년 3월 29일
편집: Azzi Abdelmalek 2016년 3월 29일
Save the function below as msd.m
function xdot = msd(t,x)
% Function file for mass with spring and damping.
% Position is first variable, velocity is second variable.
u = 10;
m = 1;c = 2;k = 5;
A = [0, 1;-k/m, -c/m];
B = [0; 1/m];
xdot = A*x+B*u;
then in Matlab Windows Command write
[t, x] = ode45(@msd, [0,5], [0,0]);
plot(t,x)
  댓글 수: 3
Torsten
Torsten 2016년 3월 30일
Use
[t, x] = ode45(@msd, [0,5], [0;0]);
Best wishes
Torsten.
Gokul Prassad S
Gokul Prassad S 2019년 3월 8일
it was very useful Mr. Torsten. Can you please explain
[t, x] = ode45(@msd, [0,5], [0;0]);
I want to understand the reason behind using this code.
Kindly help.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Numerical Integration and Differential Equations에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by