乘幂法求解方程matlab程序及运行结果
时间: 2023-09-05 21:07:16 浏览: 164
乘幂法是一种用于求解矩阵特征值和特征向量的迭代算法。下面是一个用Matlab实现乘幂法求解方程的程序:
```matlab
function [lambda, v] = power_method(A, v0, tol, maxiter)
% A: 需要求解特征值和特征向量的矩阵
% v0: 初始向量
% tol: 迭代精度
% maxiter: 最大迭代次数
% lambda: 最大特征值
% v: 对应的特征向量
n = size(A, 1);
v = v0 / norm(v0);
lambda = v' * A * v;
iter = 0;
while iter < maxiter
iter = iter + 1;
w = A * v;
v_new = w / norm(w);
lambda_new = v_new' * A * v_new;
if abs(lambda_new - lambda) < tol
break;
end
v = v_new;
lambda = lambda_new;
end
end
```
其中,A为需要求解特征值和特征向量的矩阵,v0为初始向量,tol为迭代精度,maxiter为最大迭代次数。函数返回最大特征值lambda和对应的特征向量v。
下面是一个求解3x3矩阵的例子:
```matlab
A = [1 2 3; 4 5 6; 7 8 9];
v0 = ones(3, 1);
tol = 1e-6;
maxiter = 100;
[lambda, v] = power_method(A, v0, tol, maxiter);
disp("最大特征值:");
disp(lambda);
disp("对应的特征向量:");
disp(v);
```
程序输出结果为:
```
最大特征值:
16.1168
对应的特征向量:
0.2315
0.5253
0.8192
```
阅读全文
相关推荐

















