Outsider
finding...

问题:求Ax=b

 

方法:(1)通过高斯变换,将线形方程的系数矩阵A分解为下三角矩阵L与上三角矩阵U的乘积

   (2)计算Ly=b,得y

   (3)计算Ux=y,得x

 

代码如下(MATLAB):

%题目:使用三角分解法求线性方程A*x=b的解

clear
clc
A = [1,3,4; 6,5,7; 2,6,9];
b = [2,9,1]';
n = 3;

%对方程A进行三角分解,结果仍存于A中
for k=1:n-1
    A(k+1:n,k) = A(k+1:n,k)/A(k,k);
    A(k+1:n,k+1:n) = A(k+1:n,k+1:n) - A(k+1:n,k)*A(k,k+1:n);
end

%求下三角线性方程的解,结果存于b中
for j=1:n-1
    b(j+1:n) = b(j+1:n) - b(j)*A(j+1:n,j);
end

%求上三角线性方程的解,结果存于b中
for j=n:-1:2
    b(j) = b(j)/A(j,j);
    b(1:j-1) = b(1:j-1) - b(j)*A(1:j-1,j);
end
%显示最终结果
b

 

posted on 2010-03-16 19:59  outsider  阅读(435)  评论(0编辑  收藏  举报