用Matlab求一道数值分析的题

已知矩阵19066-84306630342-36336-168147-11230-3628291(1)用幂法求按模最大的特征值与特征向量(2)用QR法求矩阵的所有特征值和... 已知矩阵
190 66 -84 30
66 303 42 -36
336 -168 147 -112
30 -36 28 291

(1)用幂法求按模最大的特征值与特征向量
(2)用QR法求矩阵的所有特征值和特征向量

请给出完整Matlab的程序
谢谢化学工程大侠,请再接再厉,把第二问也解答一下。
展开
化学工程
2006-12-02 · TA获得超过8897个赞
知道大有可为答主
回答量:2212
采纳率:80%
帮助的人:3301万
展开全部
【1】用幂法求按模最大的特征值与特征向量

A=[190 66 -84 30; 66 303 42 -36; 336 -168 147 -112; 30 -36 28 291];
X=[1 1 1 1]';%初值,随便设定啦
lambda=0;%最大特征值的初值
for k=1:100 %循环次数自己定,也可以用while
Y=A*X;%开始迭代了
m=max(abs(Y));
dc=abs(lambda-m);
Y=(1/m)*Y;
dv=norm(X-Y);
err(k)=max(dc,dv);
X=Y;
lambda=m;
end
max_lamdba=m%最大的特征值
V=X%特征向量
plot(err)%看看误差的啦

运行结果:
max_lamdba = 343.0000

V =
0.3333
1.0000
-0.0000
-0.5000

可以用eig验证:
>> eig(A)
ans =
1.0e+002 *
1.4700 + 1.9600i
1.4700 - 1.9600i
2.9400
3.4300 就是它!!!

【1*】如果看着费劲,还有一个简捷的
A=[190 66 -84 30; 66 303 42 -36; 336 -168 147 -112; 30 -36 28 291];
X=[1 1 1 1]';%初值,随便设定啦
for k=1:100 %循环次数自己定,也可以用while
Y=A*X;%开始迭代了
m=max(abs(Y));
Y=(1/m)*Y;
X=Y;
end
max_lamdba=m%最大的特征值
V=X%特征向量

【2】不会了,用这个将就吧,不好意思。
>> [V,D]=eig(A,'nobalance')
结果:
V =

-0.0000 + 0.4286i -0.0000 - 0.4286i 0.5000 -0.3333
0.0000 - 0.2143i 0.0000 + 0.2143i 0.3333 -1.0000
1.0000 + 0.0000i 1.0000 - 0.0000i 0.0000 -0.0000
0.0000 - 0.1429i 0.0000 + 0.1429i 1.0000 0.5000

D =

1.0e+002 *

1.4700 + 1.9600i 0 0 0
0 1.4700 - 1.9600i 0 0
0 0 2.9400 0
0 0 0 3.4300

即:A*V=V*D
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式