matlab如何求矩阵特征根

matlab如何求矩阵特征根,第1张

矩阵的特征

J =

1 0 0

0 2 0

0 0 3

poly(J)

得到系数结果

ans =

1-611-6

转化就是:

x^3-6x^2+11x-6=0

特征值

eig(J)

ans =

1

2

3

---------------------------------------------------------------------------------------

(1) E=eig(A):求矩阵A的全部特征值,构成向量E。

(2) [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。

(3) [V,D]=eig(A,'nobalance'):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。

(4) E=eig(A,B):由eig(A,B)返回N×N阶方阵A和B的N个广义特征值,构成向量E。

(5) [V,D]=eig(A,B):由eig(A,B)返回方阵A和B的N个广义特征值,构成N×N阶对角阵D,其对角线上的N个元素即为相应的广义特征值,同时将返回相应的特征向量构成N×N阶满秩矩阵,且满足AV=BVD。eig

Find eigenvalues and eigenvectors

Syntax

d = eig(A)

d = eig(A,B)

[V,D] = eig(A)

[V,D] = eig(A,'nobalance')

[V,D] = eig(A,B)

[V,D] = eig(A,B,flag)

d = eig(A)和 [V,D] = eig(A)最为常用 注意,第一列为对应第一个特征值的特征向量,比如:

B=rand(4)

B =

0.56530.78830.13650.9749

0.20340.55790.35740.6579

0.50700.15410.96480.0833

0.53730.72290.32230.3344

>>[a,b]=eig(B)

a =

-0.6277 -0.3761 -0.73330.7110

-0.4304 -0.51620.2616 -0.2155

-0.42970.15630.6049 -0.6471

-0.48590.7534 -0.16720.1713

b =

1.9539 0 0 0

0 -0.3623 0 0

0 00.3937 0

0 0 00.4370

则1.9539对应的特征向量为:

-1.2265

-0.8410

-0.8396

-0.9494

用matlab迭代法求方程的根,其求解思路是这样的:

1、创建迭代公式,即 x(k+1)=sqrt(10/x(k)-4*x(k))

2、确定初值,x(1)=1.5

3、使用while循环语句,进行迭代

4、当x(k+1)-x(k)<ε=1e-5,则x(k)为方程的根。

实现代码:

x(1)=1.5

k=1

while k<10000

x(k+1)=sqrt(10/x(k)-4*x(k))

if abs(x(k+1)-x(k))<1e-5

disp('f(x)=x^3+4*x^2-10=0 在【1,2】上的一个根为')

disp(x(k))

break

end

k = k + 1;

end

由于厅旦禅使用该迭代迟好公式无法收敛,故该法不适应求解其方程。应该考虑其他数值方法,如二分法扮尘,牛顿法等

其实数解为1.3652


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12486097.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存