A=(2,-1,0;-1,2,-1;0,-1,2) 在matlab中按雅克宾方法和QR方法求矩阵特征值 带程序
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/08/13 10:41:23
A=(2,-1,0;-1,2,-1;0,-1,2) 在matlab中按雅克宾方法和QR方法求矩阵特征值 带程序
要能运行的 本人matlab彩笔
要能运行的 本人matlab彩笔
![A=(2,-1,0;-1,2,-1;0,-1,2) 在matlab中按雅克宾方法和QR方法求矩阵特征值 带程序](/uploads/image/z/8257607-71-7.jpg?t=A%3D%EF%BC%882%2C-1%2C0%EF%BC%9B-1%2C2%2C-1%EF%BC%9B0%2C-1%2C2%EF%BC%89+%E5%9C%A8matlab%E4%B8%AD%E6%8C%89%E9%9B%85%E5%85%8B%E5%AE%BE%E6%96%B9%E6%B3%95%E5%92%8CQR%E6%96%B9%E6%B3%95%E6%B1%82%E7%9F%A9%E9%98%B5%E7%89%B9%E5%BE%81%E5%80%BC+%E5%B8%A6%E7%A8%8B%E5%BA%8F)
雅克宾方法
clc;
clear all;
%矩阵A
A=[2 ,-1,0;-1,2,-1;0,-1,2]
%取矩阵A的维数
n=max(size(A));
%迭代误差
Eps=1E-5;
r=1;
%最大迭代次数为100
m=100;
k=1;
%小于迭代次数或迭代误差进入计算
while r>=Eps & kamax
amax=abs(A(i,j));
p=i;
q=j;
end
end
end
r=amax;%计算当前迭代误差
%以下为构造正交矩阵U
l=-A(p,q);
u=(A(p,p)-A(q,q))/2;
if u==0
w=1;
else
w=sign(u)*l/sqrt(l*l+u*u);
end
s=-w/sqrt(2*(1+sqrt(1-w*w)));
c=sqrt(1-s*s);
U=eye(n);
U(p,p)=c;
U(q,q)=c;
U(p,q)=-s;
U(q,p)=s;
%旋转计算
A=U'*A*U%显示每步计算A的计算结果
k=k+1;
end
if k>m
disp('A矩阵不收敛');
else
for i=1:n
D(i)=A(i,i);
end
disp('A特征值为:');
D
end
QR方法以A=[1 -1 2;-2 0 5;6 -3 6]为例不改了,自己改
构造矩阵
>>A=[1 -1 2;-2 0 5;6 -3 6]
A =
1 -1 2
-2 0 5
6 -3 6
将矩阵A变换为相似的拟上三角矩阵(即为上Hessenberg矩阵)
>>H=hess(A)
H =
1.0000 2.2136 -0.3162
6.3246 4.8000 -1.4000
0 6.6000 1.2000
对H矩阵作QR分解:
>>[Q,R]=qr(H)
Q =
-0.1562 0.2101 -0.9651
-0.9877 -0.0332 0.1526
0 0.9771 0.2127
R =
-6.4031 -5.0868 1.4322
0 6.7546 1.1526
0 0 0.3468
作50次迭代计算(具体迭代次数可依具体实验矩阵进行)
>>for i=1:50
B=R*Q;
[Q,R]=qr(B);
end
>>R*Q
ans =
5.0000 7.4864 0.5929
-0.0000 3.0000 4.9600
0 0.0000 -1.0000
由以上结果可得到迭代计算的特征值为,可见基本QR法的迭代精度还是很高的.
再问: 我可以再要求下吗 我实在不懂matlab 上面说的那个矩阵重复到A9 QR方法求的矩阵式A=(5,-3,2;6,-4,4;4,-4,5)重复11次 能把上面的程序修改下吗 我真的不会修改 可以说 我就不知道修改哪个地方
再答: clc clear n=11%迭代次数 A=[5,-3,2;6,-4,4;4,-4,5] H=hess(A) [Q,R]=qr(H) for i=1:11 B=R*Q; [Q,R]=qr(B); end M=R*Q disp('特征值为') diag(M) 结果 特征值为 ans = 2.9949 2.0055 0.9997
clc;
clear all;
%矩阵A
A=[2 ,-1,0;-1,2,-1;0,-1,2]
%取矩阵A的维数
n=max(size(A));
%迭代误差
Eps=1E-5;
r=1;
%最大迭代次数为100
m=100;
k=1;
%小于迭代次数或迭代误差进入计算
while r>=Eps & kamax
amax=abs(A(i,j));
p=i;
q=j;
end
end
end
r=amax;%计算当前迭代误差
%以下为构造正交矩阵U
l=-A(p,q);
u=(A(p,p)-A(q,q))/2;
if u==0
w=1;
else
w=sign(u)*l/sqrt(l*l+u*u);
end
s=-w/sqrt(2*(1+sqrt(1-w*w)));
c=sqrt(1-s*s);
U=eye(n);
U(p,p)=c;
U(q,q)=c;
U(p,q)=-s;
U(q,p)=s;
%旋转计算
A=U'*A*U%显示每步计算A的计算结果
k=k+1;
end
if k>m
disp('A矩阵不收敛');
else
for i=1:n
D(i)=A(i,i);
end
disp('A特征值为:');
D
end
QR方法以A=[1 -1 2;-2 0 5;6 -3 6]为例不改了,自己改
构造矩阵
>>A=[1 -1 2;-2 0 5;6 -3 6]
A =
1 -1 2
-2 0 5
6 -3 6
将矩阵A变换为相似的拟上三角矩阵(即为上Hessenberg矩阵)
>>H=hess(A)
H =
1.0000 2.2136 -0.3162
6.3246 4.8000 -1.4000
0 6.6000 1.2000
对H矩阵作QR分解:
>>[Q,R]=qr(H)
Q =
-0.1562 0.2101 -0.9651
-0.9877 -0.0332 0.1526
0 0.9771 0.2127
R =
-6.4031 -5.0868 1.4322
0 6.7546 1.1526
0 0 0.3468
作50次迭代计算(具体迭代次数可依具体实验矩阵进行)
>>for i=1:50
B=R*Q;
[Q,R]=qr(B);
end
>>R*Q
ans =
5.0000 7.4864 0.5929
-0.0000 3.0000 4.9600
0 0.0000 -1.0000
由以上结果可得到迭代计算的特征值为,可见基本QR法的迭代精度还是很高的.
再问: 我可以再要求下吗 我实在不懂matlab 上面说的那个矩阵重复到A9 QR方法求的矩阵式A=(5,-3,2;6,-4,4;4,-4,5)重复11次 能把上面的程序修改下吗 我真的不会修改 可以说 我就不知道修改哪个地方
再答: clc clear n=11%迭代次数 A=[5,-3,2;6,-4,4;4,-4,5] H=hess(A) [Q,R]=qr(H) for i=1:11 B=R*Q; [Q,R]=qr(B); end M=R*Q disp('特征值为') diag(M) 结果 特征值为 ans = 2.9949 2.0055 0.9997
A=(2,-1,0;-1,2,-1;0,-1,2) 在matlab中按雅克宾方法和QR方法求矩阵特征值 带程序
用QR方法在MATLAB上求矩阵A=[5 -3 2;6 -4 4;4 -4 5]的特征值跪求源代码啊
矩阵(2 -2 0 -2 1 -2 0 2 0)特征值和特征向量怎么求解 方法和过程
matlab用QR方法怎么求特征值,把程序写出来,谢谢
matlab中,已知矩阵A,已完成对A的QR分解,下一步求A的特征值和特征向量,程序怎么编写?
设矩阵A=-1 1 0 -4 3 0 1 0 2(1)求A的特征值和特征向量;
已知矩阵A=[2 -1;0 1],则A的特征值为多少?怎么求
求矩阵A的特征值. A=-1 4 -2 -3 4 0 -3 1 3 方法我会, 但是就是计算,还请各位老师讲解,写下步骤
已知三阶矩阵A的特征值为 -1,1,2,矩阵B=A-3A^2.试求B的特征值和detB.
求矩阵A={2,0,0;1,1,1;1,-1,3}的全部特征值和特征向量
求矩阵A=(1 -2 -2;0 5 4;0 -2 -1)的特征值和特征向量
求矩阵A=2 -1 1 0 3 -1 2 1 3 的特征值和特征向量