直接三角分解法(LU分解)

clear

clc

A=input('請輸入矩陣A=')

b=input('請輸入b=')

n=length(A(1,:));%求A矩陣第一行的長度,即矩陣維數

for k=1:n

   if (det(A(1:k,1:k))==0) %n階矩陣A,若A的順序主子式均不爲零,則矩陣A存在唯一Doolittle分解,使得A=LU

       input('A矩陣不滿足順序主子式均不爲零,請重新運行程序')

   end

end

%分解A

for k=1:n

    t1=0; %中間變量t1

    for j=1:k-1

        t1=t1+L(k,j)^2;

    end

    L(k,k)=sqrt(A(k,k)-t1);

    for i=k+1:n

        t2=0; %中間變量t2

        for j=1:k-1

            t2=t2+L(i,j)*L(k,j);

        end

        L(i,k)=(A(i,k)-t2)/L(k,k);

    end

end

L

U=L'

%%

%created by TGU cuienen1912

發佈了5 篇原創文章 · 獲贊 0 · 訪問量 2596
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章