回覆列表
  • 1 # 使用者9626932657960

    線性方程組的三角分解求法其實和常用的高斯消去法等效。

    如果要直接利用matlab內建的三角分解演算法,可在命令視窗直接執行以下命令:

    a=[1401;1510;-3203;-4014];

    b=[11;12;7;5];

    [l,u]=lu(a);%l為下三角,u為上三角

    x=u\(l\b)%求解x

    若要自己程式設計實現以上演算法,可建立以下函式檔案:

    functionx=gaussmethod(a,b)

    %高斯消去法求解線性代數方程組ax=b

    n=size(a,1);

    m=zeros(n-1,n-1);

    x=zeros(n,1);

    fork=1:n-1

    fori=k+1:n

    m(i,k)=-a(i,k)/a(k,k);

    a(i,k:n)=a(i,k:n)+a(k,k:n)*m(i,k);

    b(i)=b(i)+b(k)*m(i,k);

    end

    end

    x(n)=b(n)/a(n,n);

    fori=n-1:-1:1

    p=0;

    forj=i+1:n

    p=p+a(i,j)*x(j);

    end

    x(i)=(b(i)-p)/a(i,i);

    end

    編寫函式後儲存。在命令視窗輸入:

    a=[1401;1510;-3203;-4014];

    b=[11;12;7;5];

    x=gaussmethod(a,b)

    執行後可得到

    x=

    1.0000

    2.0000

    1.0000

    2.0000

  • 中秋節和大豐收的關聯?
  • 寶寶得腦炎好後睡覺總是不能熟睡時哭時笑著是怎麼?