-
大小: 738 Bytes文件类型: .rar金币: 1下载: 1 次发布日期: 2024-09-26
- 语言: Matlab
- 标签: GaussJordan
资源简介
matlab 编的,GaussJordan解线性方程组,没有用内部函数,方便使用
代码片段和文件信息
function [X]=GaussJordan(AB)
% GaussJordan A:系数矩阵 B:常矩阵
%获取输入的矩阵维数
[mn]=size(A);
[m1n1]=size(B);
%判断系数矩阵或常矩阵输入是否正确 m是维数
if m~=n | m~=n1
disp(‘输入的系数矩阵或常矩阵不符合件!‘);
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
%%%%%%%%%%%%%%%%%%%%%%%%%定义子函数%%%%%%%%%%%%%%%%%%%%%%%%%%
function maxi=E1(AAm1jIsSelected1)%寻找第j列的最大元素m是AA的维数 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)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1202 2007-12-23 21:37 GaussJordan.m
----------- --------- ---------- ----- ----
1202 1
评论
共有 条评论