線形方程式分解分解法--LU

  1.コード

%% LU分解
機能LUDM LU_Decomposition_method =(A、B)
グローバルN-、グローバルB; U-グローバル;グローバルL、Mグローバル; 
[N-、N-] =サイズ(A); 
B = [A、B]; 
R_A =ランク(A); R_B =ランク(B); 
IF〜= R_B R_A 
    DISP( '方程式が解がありません'); 
ELSEIF(R_A == R_B)&&(N - == R_A)
    DISP( 'この式は一意の解を有する')を; 
    M = LU_decomposition(A); 
    L = M(:、:、1); U- = M(:、:、2); 
    行列1 = [L B]; 
    Y = Lower_trig_iterative_solution(行列1); 
    行列2 = [UY]。
    = Upper_trig_iterative_solution X-(行列2); 
    ;( 'LU分解= Lで')DISP 
    L 
    DISP( '= U-のLU分解'); 
    U- 
    DISP( '式は、無限の数の解を持っている'); 
エンド
DISP(」解ベクトルは次のとおりです。「);
LUDM = X;  
                        L(J、K、I)= 1。

%%矩阵的LU分解
    機能LUD = LU_decomposition(A)
        [N、N] =サイズ(A)。
        M = Elementary_transformation_of_the_lower_triangle(A)。
        L = M(:、:、n)は、U = A。
        iは=のために1:1:N-1 
            U = M(:、:、I)* U。
        終了
        LUDを(:、:、1)= L。
        LUD(:、:、2)= U。
    エンド
%%下三角初等变换
    機能ETLT = Elementary_transformation_of_the_lower_triangle(A)
        [N、N] =サイズ(A)。
        L =ゼロ(N、1、N)
        1:N I 1 =ために
            J = 1:1:N 
                K = 1:1:N 
                    jの場合== k個の
                    端部
                端を 
            エンド
        エンド
        iは=のために1:1:N-1 
            、J = 1:1:N 
                K = 1:1:N 
                    であればJ> K 
                        IをK ==場合
                            Lを(J、K、I)= -A (J、K)/ A(K、K)。
                        L(I + 1:N、I、N)= -L(I + 1:N、I、I)。
                    エンド
                エンド
            エンド
            A = L(:、:、I)* A。
        エンド
        ETLT = L。
    エンド
%%下三角迭代法
    関数LTIS = Lower_trig_iterative_solution(M)
        [M、N] =サイズ(M)。
        B = M(:、1:N-1); BA = M(:、n)は、
        Y =ゼロ(1、M)。
        Y(1)= BA(1)。
        1:I 2 =のためのm 
            の合計= 0; 
            1:J = 1のI-1 
                の合計=合計+ B(i、j)は* Y(J)
            エンド
            Y(I)= BA(I)-sum。
        終了
        LTIS = Y 'を、
    エンド
%%上三角迭代法
    関数UTIS = Upper_trig_iterative_solution(M)
        [M、N] =サイズ(M)。
        B = M(:、1:N-1); BA = M(:、n)は、
        X =ゼロ(1、M)。
        X(M)= BA(M)/ B(M、M)。
        -1:I = M-1 1 
            合計= 0; 
            ただしj = I + 1:1:Mの
                和=和+ B(i、j)は* X(J)。
            終わり
            X(I)=(B-A(I)-sum)/ B(I、I)。
        終わり
        UTIS = X '; 
    エンド・
エンド

  2.例

全てクリア
CLC 
M =ランド(9)
B =変形(RAND(3)、9,1)
 
S = LU_Decomposition_method(M、B)

M \ Bを

  結果

M = 
  7の列1 
    0.5944 0.4709 0.4076 0.4235 0.5181 0.0680 0.6022 
    0.0225 0.6959 0.8200 0.0908 0.9436 0.2548 0.3868 
    0.4253 0.6999 0.7184 0.2665 0.6377 0.2240 0.9160 
    0.3127 0.6385 0.9686 0.1537 0.9577 0.6678 0.0012 
    0.1615 0.0336 0.5313 0.2810 0.2407 0.8444 0.4624 
    0.1788 0.0688 0.3251 0.4401 0.6761 0.3445 0.4243 
    0.4229 0.3196 0.1056 0.5271 0.2891 0.7805 0.4609 
    0.5309 0.6110 0.4574 0.6718 0.6753 0.7702 0.0942 
    0.5985 0.6544 0.7788 0.8754 0.6951 0.0067 0.3225 
  カラム8-9  
    0.7847 0.1917
    0.4714 0.7384 
    0.0358 0.2428 
    0.1759 0.9174 
    0.7218 0.2691 
    0.4735 0.7655 
    0.1527 0.1887 
    0.3411 0.2875 
    0.6074 0.0911 
、B = 
    0.5762 
    0.6834 
    0.5466 
    0.4257 
    0.6444 
    0.6476 
    0.6790 
    0.6358 
    0.9452 
この式は、一意の溶液有する
LU分解L = 
L = 
  カラムを1-7 
    1.0000 000 000 
    1.00000万0.0379 
    0.7155 0.5352 1.0000 0000
    -74.4491 0.5261 0.5762 1.0000 0 0 
    0.2717 0 1.0000 1.7669 -0.1391 -136.4397 
    0.3008 -74.0359 0.9200 -0.1074 0.6765 1.0000 0 
    -0.5996 0.3838 42.5434 1.0000 -141.0829 0.7115 -0.0228 
    0.1585 -70.1396 0.6728 -1.3001 0.8852 -0.0414 0.4925 
    1.0070 0.2658 -39.5864 0.4476 1.3552 49.3425 -0.3788 
  8つの行。9 
         0 0 
         0 0 
         0 0 
         0 0 
         0 0 
         0 0 
         0 0 
    1.0000 0 
    5.1107 1.0000 
LU分解U = 
U- = 
  カラム1-7 
    0.5944 0.4709 0.4076 0.4235 0.5181 0.0680 0.6022 
         0 0.6781 0.8045 0.0748 0.9240 0.2522 0.3640 
         0 0.2903 0.0404 -0.2275 -0.0765 -0.0039 0 
         0 0 0 -5.8101 3.4944 21.0900 -16.7848 
   -0.0000 -1.1550 0.1988 2.6992 0 0 0 
    0.0000 0 0 0 0 - 0.0074 0.5483 
    0.0000 76.6535 -0.0000 0 0 0 0 
    0.0000 0.0000 0 0 0 0 -0.0000 
   -0.0000 -0.0000 0.0000 0 0 0 0 
  カラム8-9 
    0.7847 0.1917
    0.4416 0.7312  
   -0.7621 -0.2857
  -57.2283 -20.8735 
   -2.2924 -1.7782 
   -1.9343 0.0429 
 -274.3037 6.4447 
   -1.9999 -0.0598 
         0 0.7768 
溶液ベクトルである:
S = 
   -0.9496 
    2.2130 
    0.5483 
    1.9595 
   -3.8859 
   -0.4632 
    0.4453 
    0.3978 
    2.6573 
ANS = 
   -0.9496 
    2.2130 
    0.5483 
    1.9595 
   -3.8859 
   - 0.4632 
    0.4453 
    0.3978 
    2.6573 
>>

  

おすすめ

転載: www.cnblogs.com/guliangt/p/12119385.html