求助,有谁有matlab的pq分解法的程序,最好是matpower自带的,谁有啊。给对了追加悬赏40分.
发布网友
发布时间:2022-05-25 01:12
我来回答
共1个回答
热心网友
时间:2023-11-20 19:11
function [x,n]=jacobi(A,b,x0,eps,varargin)
% 采用雅可比迭代法求解线性方程组 Ax=b 的解
% 线性方程组的系数矩阵:A
% 线性方程组中的常数向量:b
% 迭代初始向量:x0
% 解的精度控制:eps
% 迭代步数控制:M
% 线性方程组的解:x
% 求出所需精度的解实际的迭代步数:n
if nargin==3
eps= 1.0e-6;
M = 200;
elseif nargin<3
error
return
elseif nargin ==5
M = varargin{1};
end
D=diag(diag(A)); %求A的对角矩阵
L=-tril(A,-1); %求A的下三角阵
U=-triu(A,1); %求A的上三角阵
B=D\(L+U);
f=D\b;
x=B*x0+f;
n=1; %迭代次数
while norm(x-x0)>=eps
x0=x;
x=B*x0+f;
n=n+1;
if(n>=M)
disp('Warning: 迭代次数太多,可能不收敛!');
return;
end
end