-
大小: 738 Bytes文件類型: .rar金幣: 1下載: 1 次發(fā)布日期: 2024-09-26
- 語言: Matlab
- 標(biāo)簽: GaussJordan??
資源簡介
matlab 編的,GaussJordan解線性方程組,沒有用內(nèi)部函數(shù),方便使用
代碼片段和文件信息
function?[X]=GaussJordan(AB)
%?GaussJordan?A:系數(shù)矩陣?B:常矩陣
%獲取輸入的矩陣維數(shù)
[mn]=size(A);
[m1n1]=size(B);
%判斷系數(shù)矩陣或常矩陣輸入是否正確?m是維數(shù)
if?m~=n?|?m~=n1
????disp(‘輸入的系數(shù)矩陣或常矩陣不符合件!‘);
????return;
end
%增廣矩陣?定義A1B1保存AB
A1=A;
B1=B‘;
IsSelected=zeros(1m);
xishu=zeros(1m);
A(1:endm+1)=B1;
%%%%%%%%%%%%%%%%%%%%%%
for?col=1:m%控制列
??????maxi=E1(AmcolIsSelected);
??????xishu(maxi)=col;
??????IsSelected(maxi)=1;
??????%按列取最大?maxi保留方程
??for?i=1:m%代消元的行
??????if?i==maxi
????????????continue;
??????end???????
??????f=A(icol)/A(maxicol);
??????%%%代消元的列
??????for?j=1:m+1
??????????A(ij)=A(ij)-f*A(maxij);
??????end
??end
end?
for?col=1:m
????X(col)=A(colm+1)/A(colxishu(col));
end
%%%%%%%%%%%%%%%%%%%%%%%%%定義子函數(shù)%%%%%%%%%%%%%%%%%%%%%%%%%%
function?maxi=E1(AAm1jIsSelected1)%尋找第j列的最大元素m是AA的維數(shù)?IsSelected1記錄該行是否選折過;
maxi=1;
maxnum=abs(AA(1j));
for?k=2:m1
????if(IsSelected1(k)~=0)
????????continue;???
????end
????if????maxnum ??????????maxi=k;
??????????maxnum=abs(AA(kj));
??????end
end???
return;
%function?E2(ci)
%function?E3(cij)
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????1202??2007-12-23?21:37??GaussJordan.m
-----------?---------??----------?-----??----
?????????????????1202????????????????????1
評(píng)論
共有 條評(píng)論