當前位置:編程學習大全網 - 編程軟體 - 高斯可以編程

高斯可以編程

%高斯.米

函數x =高斯(A,B)

矩陣A,B的大小應該是NA x NA和NA x NB。

%這個函數用高斯消元算法求解Ax = B。

NA =大小(A,2);[NB1,NB]= size(B);

如果NB1 ~= NA,錯誤(' A和B必須有兼容的維度');結束

n = NA+NB;AB = [A(1:NA,1:NA) B(1:NA,1:NB)];%增廣矩陣

epss = eps*ones(NA,1);

對於k = 1:NA

%按等式在AB(k,k)處縮放部分旋轉。(2.2.20)

[akx,kx] = max(abs(AB(k:NA,k))。/max(abs([AB(k:NA,k+1:NA)epss(1:NA-k+1)])'));

如果akx & lteps,誤差(‘奇異矩陣且無唯壹解’);結束

MX = k+kx-1;

如果kx & gt1 %行更改(如有必要)

tmp_row = AB(k,k:N);

AB(k,k:N) = AB(mx,k:N);

AB(mx,k:N)= tmp _ row;

結束

%高斯正向消去法

AB(k,k + 1:N) = AB(k,k+1:N)/AB(k,k);

AB(k,k)= 1;%使每個對角元素成為壹個

對於m = k + 1: NA

AB(m,k+1:N) = AB(m,k+1:N) - AB(m,k)*AB(k,k+1:N);%Eq。(2.2.5)

AB(m,k)= 0;

結束

結束

上三角矩陣方程的%向後替換

%所有對角線元素都等於1

x(NA,)= AB(NA,NA+1:N);

對於m = NA-1: -1:1

x(m,)= AB(m,NA + 1:N)-AB(m,m + 1:NA)*x(m + 1:NA,);%Eq。(2.2.7)

結束

示例:

& gt& gta =[0 1 1;2 -1 -1;1 1 -1];b =[2 0 1]';

& gt& gtx =高斯(A,b)

x =

1.00000000000000

1.00000000000000

1.00000000000000

  • 上一篇:妳所受的教育和妳所經歷的人生使妳成為怎樣的人?
  • 下一篇:微積分怎麽算
  • copyright 2024編程學習大全網