幂法用mathlab怎么写
时间: 2023-07-03 22:13:45 浏览: 64
幂法(Power Method)是一种求解矩阵最大特征值和对应特征向量的迭代算法,MATLAB中可以使用以下代码实现:
```matlab
function [lambda, v] = power_method(A, v0, max_iter, tol)
% A: 待求特征值和特征向量的矩阵
% v0: 初始特征向量
% max_iter: 最大迭代次数
% tol: 收敛精度
n = size(A, 1);
v = v0 / norm(v0); % 初始化特征向量
lambda = v' * A * v; % 计算特征值
for i = 1:max_iter
v = A * v;
v = v / norm(v); % 正则化特征向量
lambda_new = v' * A * v; % 计算新的特征值
if abs(lambda_new - lambda) < tol % 判断是否收敛
break;
end
lambda = lambda_new;
end
end
```
其中,A是待求特征值和特征向量的矩阵,v0是初始特征向量,max_iter是最大迭代次数,tol是收敛精度。函数返回的lambda和v分别是矩阵A的最大特征值和对应的特征向量。
使用示例:
```matlab
A = [1 2 3; 4 5 6; 7 8 9];
v0 = ones(3, 1);
max_iter = 100;
tol = 1e-6;
[lambda, v] = power_method(A, v0, max_iter, tol);
```
这段代码将求解矩阵A的最大特征值和对应的特征向量。