mathlab求幂法
时间: 2024-01-03 10:04:25 浏览: 60
幂法(Power Method)是求解矩阵特征值和特征向量的一种常用方法,其基本思想是通过矩阵的迭代来逼近最大特征值和对应的特征向量。以下是 Matlab 实现幂法的代码:
```
function [x, lambda, k] = power_method(A, x0, tol, maxiter)
% A: 待求解的矩阵
% x0: 初始向量
% tol: 迭代精度
% maxiter: 最大迭代次数
% 初始化
x = x0 / norm(x0);
lambda = x'*A*x;
k = 1;
% 迭代求解
while k < maxiter
y = A * x;
x_new = y / norm(y);
lambda_new = x_new'*A*x_new;
if abs(lambda_new - lambda) < tol
break;
end
x = x_new;
lambda = lambda_new;
k = k + 1;
end
```
其中,参数 A 表示待求解的矩阵,x0 表示初始向量,tol 表示迭代精度,maxiter 表示最大迭代次数。函数返回最大特征值 lambda、对应的特征向量 x,以及实际迭代次数 k。在每次迭代中,先将当前向量 x 进行归一化,然后计算新的向量 y = A * x,再将 y 归一化得到新的向量 x_new,以及对应的特征值 lambda_new。如果新旧特征值之差小于迭代精度 tol,则认为已经收敛,退出迭代。否则,继续迭代,直到达到最大迭代次数。
阅读全文