Matlab用幂法求最大特征值和所对应的特征向量源代码
时间: 2024-03-10 13:43:40 浏览: 69
以下是Matlab中使用幂法求解最大特征值和对应的特征向量的完整代码:
```matlab
% 定义一个n阶方阵A,以及一个n维初始向量x0
n = 3;
A = rand(n);
x0 = rand(n, 1);
% 定义迭代次数上限和误差限度
maxIter = 100;
tol = 1e-6;
% 进行幂法迭代计算
for i = 1:maxIter
x = x0 / norm(x0); % 归一化处理
y = A * x;
[lambda, idx] = max(abs(y)); % 找到y中绝对值最大的下标
if abs(lambda - x0(idx)) < tol % 如果λ的变化量小于误差限度,停止迭代
break;
end
x0 = y;
end
% 输出最大特征值和对应的特征向量
fprintf('最大特征值为:%f\n', lambda);
fprintf('对应的特征向量为:\n');
disp(x);
```
在上述代码中,我们首先生成了一个3阶随机方阵A和一个3维随机初始向量x0。然后,我们设定了迭代次数上限maxIter和误差限度tol。接下来,我们进行幂法迭代计算,并在迭代过程中判断是否满足误差限度,如果满足则停止迭代。最后,输出最大特征值和对应的特征向量。
阅读全文