I have matrix A and I need to find (e^(At)) where t is the sampling time. How to find that? Also what is the difference between exp(A) and expm(A)?

조회 수: 3 (최근 30일)
How to find (e^(At)) that? Also what is the difference between exp(A) and expm(A)?

채택된 답변

James Tursa
James Tursa 2021년 10월 20일
편집: James Tursa 2021년 10월 20일
exp(A) just takes the exp( ) of the scalar elements individually. I.e., exp(A(1,1)), exp(A(1,2)), etc.
expm(A) takes the matrix exponential. I.e., conceptually the equivalent of eye(n) + A + A^2/2! + A^3/3! + ...
These are two very different operations. From your description it looks like you should be using expm( ).

추가 답변 (2개)

KSSV
KSSV 2021년 10월 20일
A = rand(2) ;
t = linspace(0,1) ;
iwant = zeros(2,2,100) ;
for i = 1:100
iwant(:,:,i) = exp(A*(t(i))) ;
end
exp might give less accurate values for [0,1]; in that case expm will be accurate

Bruno Luong
Bruno Luong 2021년 10월 20일
편집: Bruno Luong 2021년 10월 20일
Math notation e^(At) is computed in MATLAB with
expm(A*t)
or equivalently
expm(A)^t

카테고리

Help CenterFile Exchange에서 Just for fun에 대해 자세히 알아보기

제품


릴리스

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by