Azzera filtri
Azzera filtri

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

25 visualizzazioni (ultimi 30 giorni)
SAFA BOUDHRAA
SAFA BOUDHRAA il 13 Gen 2018
Modificato: SAFA BOUDHRAA il 14 Gen 2018
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

Risposta accettata

Star Strider
Star Strider il 13 Gen 2018
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.

Più risposte (1)

SAFA BOUDHRAA
SAFA BOUDHRAA il 14 Gen 2018
Modificato: SAFA BOUDHRAA il 14 Gen 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!

Translated by