基于列扫描的方法求解线性方程组

基于列扫描的方法求解线性方程组

% 这种方法精度高,但是对初始解的要求比较高
clear; clc
n = 10; % 方程组阶数
A = rand(n);
u = (1:n)';  % 精确解
b = A*u;  % 右端项

nw = 2;  % 窗口数
x = [];
for i = 1:5  % 扫描5次刚好完成
    nw1 = (i-1)*nw + 1;
    nw2 = i*nw;
    
    b0 = A(:,nw1:nw2) * u(nw1:nw2);  % 这里的u可以使用一个较好的初始值代替
    x0 = pinv(A) * b0;
    x  = [x;x0(nw1:nw2)];
end

% 向量x中是数值解, 向量u中是精确解

 

你可能感兴趣的:(数值分析,数字信号处理,matlab,线性代数)