matlb solution dX/dt=AX(t)+B

morning, help me please, i am working i=on the resolution of the equation :dX/dt=AX(t)+B i have used ode45 but it gives wrong results . any suggests please thank you so much

 Accepted Answer

We need to see your code to determine what the problem is. The ODE solvers such as ode45, and for ‘stiff’ systems ode15s, should be able to solve it for linear or nonlinear ‘A’ matrices.
One way to solve it, if ‘A’ is a square, linear time-invariant (‘LTI’) matrix, is to use the matrix exponential expm (link) function.
Then:
x(t) = expm(A*t)*B
You will need to loop through values of ‘t’ to provide a matrix of solutions.
The Control System Toolbox also has several functions that will work.

More Answers (1)

SAFA BOUDHRAA
SAFA BOUDHRAA on 14 Jan 2018
Edited: SAFA BOUDHRAA on 14 Jan 2018
function DY=resolution(t,y) A=[2*t 1 -3 sqrt(3) ;cos(t) 0 sqrt(2) -3 ;0 t -2 1; 4 sin(t) 0 t]; B=[0.5*t;1;0;0] dX=A*X+B ; end Q=zeros(4,1); Q(1,1)=12; [T,e] = ode45(@resolution,[0 2],Q); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Community Treasure Hunt

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

Start Hunting!