Check whether the symbolic eigen value of a matrix is positive or negative
5 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
David Goodmanson
2020-7-15
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 个评论
David Goodmanson
2020-7-16
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Assumptions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!