Matlab用幂法求最大特征值和对应的特征向量的近似值源代码
时间: 2024-03-09 16:50:03 浏览: 57
以下是使用Matlab实现幂法求最大特征值和对应的特征向量的近似值的源代码:
```matlab
% 定义矩阵A
A = [1 2 3; 4 5 6; 7 8 9];
% 定义初始向量x0
x0 = [1; 1; 1];
% 定义迭代次数
n = 10;
% 迭代求解最大特征值lambda和对应的特征向量x
for i = 1:n
y = A * x0;
lambda = max(abs(y));
x = y / lambda;
if norm(x - x0) < 1e-6 % 判断是否收敛
break;
end
x0 = x;
end
% 输出结果
disp('最大特征值lambda的近似值为:');
disp(lambda);
disp('对应的特征向量x的近似值为:');
disp(x);
```
上述代码中,我们首先定义了一个矩阵A和一个初始向量x0,然后通过迭代求解得到最大特征值lambda和对应的特征向量x的近似值。具体地,我们通过多次将A乘以x0,再将结果向量y除以y的最大绝对值得到新的向量x,直到x的变化足够小,即收敛为止。最后输出lambda和x的近似值即可。
阅读全文