我怎么判断一个矩阵是正定使用MATLAB ?

427(30天)
定义了一个对称矩阵是正定如果所有特征值的实部是积极的。
非对称矩阵(B)是正定如果所有特征值(B + B) / 2的是积极的。

接受的答案

MathWorks支万博1manbetx持团队
这种变化已经纳入文档发布14 Service Pack 3 (R14SP3)。在以前的版本中,读下面的任何额外的信息:
而不是使用EIG函数得到特征值以确定积极的明确,计算效率使用胆固醇功能。胆固醇的功能提供了一个可选的第二个输出参数“p”这是零,如果矩阵是正定。如果输入矩阵不是正定的,然后“p”将一个正整数:
> > (~ p) =胆固醇(0 (3))
p =
1
胆固醇函数将返回一个错误如果只是提供一个输出参数,并给出一个矩阵不是正定。注意:胆固醇预计其输入矩阵是对称的,只有看的上三角矩阵。
6个评论
亚历克·雅各布森
亚历克·雅各布森 2017年1月14日
独家报道了胆固醇的非法p输出?
当然返回非零数字 一些 积极的 正定矩阵:
(~ p) =胆固醇([1 0;0 0])
这将返回
p = 2
p的意义是什么? ? ! ?

登录置评。

更多的答案(3)

迈克尔·克鲁格
迈克尔·克鲁格 2014年6月9日
一个矩阵是正定如果所有相关特征值是积极的。
检查是否正定矩阵A的方法:
= (1 2 3 4 5 6;7 8 9);%的示例矩阵
eig_A = eig(一个);
国旗= 0;
i = 1:等级(一个)
如果eig_A (i) < = 0
标志= 1;
结束
结束
如果标志= = 1
disp (矩阵不是正定的)
其他的
disp (“矩阵是正定的)
结束
eig_A可以改变的条件检查阳性,半积极的,消极的或半负定指。
1评论
约翰·彼得森
约翰·彼得森 2017年10月14日
这仅仅是真实的如果是对称的。例如,如果
(1 = 4;0 1];
特征值(1,1),所以你感谢是正定的,但积极的明确的定义是所有x x 'Ax > 0 ~ = 0如果你尝试x = [1 - 2];然后你得到x 'Ax = 3看看特征值不起作用,如果不是对称的。

登录置评。


Temitayo Bankole
Temitayo Bankole 2016年8月2日
您还可以检查如果行列式是负的,如果是,那么它不是正定
1评论
Csanad Temesvari
Csanad Temesvari 2019年9月23日
但这是否意味着marix积极definit ?上述= (1 - 4;0 1)表明,不是正定的,尽管它的行列式等于1。

登录置评。


s . m . Raiyan Chowdhury
s . m . Raiyan Chowdhury 2021年11月12日
编辑:沃尔特·罗伯森 2021年11月13日
上述“非对称”矩阵的条件普遍适用于所有矩阵是否对称或不对称。下面给出一个基于条件的代码片段。
% %适用于任何矩阵对称或不对称,真实的或复杂的
一个= [12、3、5;
1、5、3;
3、7、13];%理论上是正定(PD)。
eig_vals = eig ((+) / 2);
is_pd =[总和([签署(eig_vals) = = 1]) = =长度(A)];检查如果是PD %国旗
如果is_pd = = 1
disp (“一个是正定”)
其他的
disp (“不是正定”)
结束
B = [1 2 3;
4 5 6;
7 8 9];% B不是正定。
eig_vals = eig ((B + B) / 2);
is_pd =[总和([签署(eig_vals) = = 1]) = =长度(B));
如果is_pd = = 1
disp (“B是正定”)
其他的
disp (“B不是正定”)
结束
2的评论

登录置评。

类别

找到更多的在线性代数帮助中心文件交换

s manbetx 845


释放

R14SP1

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的