MATLAB Answers

Check whether the symbolic eigen value of a matrix is positive or negative

조회 수: 46(최근 30일)
T S Singh
T S Singh 14 Jul 2020 8:18
댓글: David Goodmanson 16 Jul 2020 10:57
I am calculating the eigen value of 2x2 matrix symbolically, and checking whether the two eigen values are negative or not using isAlways, here is the code
clear all
close all
clc
syms a d g positive
Am =[(12*g)/(d*(7*d + 24*g)), (a*d^2 + 6*a*g*d + 144*g + 9*a*g)/(12*d*(7*d + 24*g));...
-(4*g*(3*d^2 + 14*d + 12*g))/(d^3*(7*d + 24*g)), -(672*d*g + a*d^4 + 36*a*g^2 + 144*d^2*g + 576*g^2 + 42*a*d*g + 18*a*d^2*g + 6*a*d^3*g)/(12*d^3*(7*d + 24*g))]
A1=eig(Am);
isAlways(real(A1(1))<0|A1(1)==0)
isAlways(real(A1(2))<0|A1(2)==0)
I am getting A1(1) to be positive and A1(2) to be negative.
When I am checking numerically by assiginig the value of a, d, g I am getting both the eigen values to be negative and the literature form where I took this expression says that for positive value of a, d, g the matrix Am has negative real eigen values.
Is there anything wrong with my code or is it the limition of isAlways command???
If suppose there are some parametric region where the eigen value are positive or say negative how to find out?
Any help please.
Thank You

  댓글 수: 0

Sign in to comment.

채택된 답변

David Goodmanson
David Goodmanson 15 Jul 2020 4:41
Hello TS
with your definition of Am we have
simplify(trace(Am))
ans =
-(672*d*g + a*d^4 + 36*a*g^2 + 576*g^2 + 42*a*d*g + 18*a*d^2*g + 6*a*d^3*g)/(12*d^3*(7*d + 24*g))
simplify(A1(1)*A1(2))
ans =
(a*g*(2*d + 3*g))/(3*d^3*(7*d + 24*g))
Given that a,d,g are all positive we have two eigenvalues whose sum is negative and whose product is positive. So both eigenvalues are negative. Matlab does issue a warning about not being able to solve for the inequalilty, so I don't know what
isAlways(real(A1(1))<0|A1(1)==0) ans = 0
is on about.
[ in the second isAlways there is an error in what is supposed to be isAlways(real(A1(2))<0|A1(2)==0) ]

  댓글 수: 2

T S Singh
T S Singh 15 Jul 2020 5:05
Thanks David, I think this approach works fine for 2X2 matrix, what suppose if the matrix is large say 5X5. Can you suggest me any method?
David Goodmanson
David Goodmanson 16 Jul 2020 10:57
That's not so easy in general. One result is that if a matrix is diagonally dominant and all its diagonal values are positive, then all the eigenvalues are positive.

Sign in to comment.

추가 답변(0개)


Translated by