马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
function [X]=Gauss(A,B)
" B. e; `% D3 ~. m7 m[m,n]=size(A);
- c9 J# r `2 k' yl=length(B);. O/ e: S+ {' A0 E) a
if n~=m E/ G6 U$ X4 h" o7 H/ {
fprintf('wrong');! X$ w. b- Z/ w
return;end9 { q e* m- [3 p! b8 E
if m~=l
& k% W- } y2 }3 I fprintf('wrong');
3 ?. F) N9 M# q" R. X% M( \ U return;end5 |& M6 }, y% `: L7 ~( C
fprintf('go to calculate');
c6 I4 Z: U9 L2 [* G" Pfor k=1:n-1
9 Y- c+ q) s2 R1 n: G/ v; a max=0;
; i# T6 }8 _& D. X/ c- R1 D for j=k:n4 w; N! e5 [* q ]4 u1 h6 M0 e
if abs(A(j,k))>max
. T) r! K$ I, e9 N& P8 J max=abs(A(j,k));mark=j;
+ {1 W5 f4 I6 b9 k- [ end
& Z0 g; m* R( w- }9 { end
0 A5 c6 z: o% R' _ if abs(max)<1e-56 e d' a1 c F$ u! D9 @2 h8 N$ K
fprintf('wrong');
" p3 c/ `: I" U3 t. V( L return;end
1 }8 g. N0 X/ k: e% U7 n) o for i=k:n4 D* i; h$ M$ k y: T% O+ J
a=A(k,i);A(k,i)=A(mark,i);A(mark,i)=a;% X$ f% {0 F7 D& F8 f# T" @
end
- B6 S3 E7 b. m& f b=B(k);B(k)=B(mark);B(mark)=b;
% A) ]: u( y1 G! d for j=k+1:n
0 Q A/ B2 v6 O) r& C1 M" ? m=A(j,k)/A(k,k);# [7 f, G- @& F, u. _
for i=k:n
* S' f3 C* p( L+ f A(j,i)=A(j,i)-m*A(k,i);/ Z6 Z" n0 q3 R* T& V! r
end' I: ^( e# l8 J+ C
B(j)=B(j)-m*B(k);
: A5 s" q% f4 [/ ]6 H6 E" @: ~, I1 A end) A* a$ u$ X( p5 u2 z# a
End
- p, Z9 z% j I2 v7 Bfor j=n:-1:1
# y4 A( G2 c! Z! l# F for i=j+1:n
# R( S& T2 K. p: F/ w8 x# l B(j)=B(j)-A(j,i)*X(i);" W: T3 c+ I# Y0 s9 _4 u: G0 N
end' {* S2 A$ s! W, B- x0 Q, p8 n
X(j)=B(j)/A(j,j);
, y; h d3 N& I% b+ E/ e" [* H" t7 a7 bend9 t1 Z3 T. H" L, w' P+ ^1 H$ d
2 t4 H" R, a% e8 F8 d |