function [eig_val, eig_vec] = inv_power_method2(A, p, tol, maxit) % 反幂法 % A为所求矩阵 % p为反幂法中的参数 % tol 绝对误差限 % maxit 最大迭代次数 % eig_val - 估计特征值 % eig_vec - 估计特征向量 % 初始变量 n = size(A, 1); num_eig = n; % 求解的特征值和特征向量的个数 eig_vec = zeros(n, num_eig); % 存储特征向量的矩阵 for i = 1:num_eig x = rand(n, 1); % 随机初始化向量x x = x / norm(x); % 归一化 lambda = 0; diff = tol + 1; iter = 0; while diff > tol && iter < maxit y = (A - p(i) * eye(n)) \ x; x = y / norm(y); lambda_old = lambda; lambda = x' * A * x / (x' * x); diff = abs(lambda - lambda_old); iter = iter + 1; end eig_val(i) = lambda; % 存储特征值 eig_vec(:, i) = x; % 存储特征向量 end end优化上述代码,使给出不同的q能求出对应的特征值特征向量,并分别输出
时间: 2024-04-02 07:36:23 浏览: 23
function [eig_val, eig_vec] = inv_power_method2(A, q, tol, maxit)
% 反幂法
% A为所求矩阵
% q为反幂法中的参数
% tol 绝对误差限
% maxit 最大迭代次数
% eig_val - 估计特征值
% eig_vec - 估计特征向量
% 初始变量
n = size(A, 1);
num_eig = n; % 求解的特征值和特征向量的个数
eig_vec = zeros(n, num_eig); % 存储特征向量的矩阵
for i = 1:num_eig
x = rand(n, 1); % 随机初始化向量x
x = x / norm(x); % 归一化
lambda = 0;
diff = tol + 1;
iter = 0;
while diff > tol && iter < maxit
y = (A - q(i) * eye(n)) \ x;
x = y / norm(y);
lambda_old = lambda;
lambda = x' * A * x / (x' * x);
diff = abs(lambda - lambda_old);
iter = iter + 1;
end
eig_val(i) = lambda; % 存储特征值
eig_vec(:, i) = x; % 存储特征向量
end
% 输出特征值和特征向量
for i = 1:num_eig
fprintf('特征值%d: %.6f\n', i, eig_val(i));
fprintf('对应的特征向量%d:\n', i);
disp(eig_vec(:, i));
end
end
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)