gauss_my.m

来自「用matlab解决一些数值分析中常用的算法」· M 代码 · 共 31 行

M
31
字号
%高斯选列元消法
function out=gauss_my(a,b)
[row,column]=size(a);
a=[a,b];
for i=1:1:row
   max=a(i,i);
   max_row=i;
   for k=i:1:row      %获取列主元
      if abs(a(k,i))>abs(max) 
          max=a(k,i);       
          max_row=k ;       
      end  
  end 
  temp_a=a(i,:) ;      %交换A   
  a(i,:)=a(max_row,:);
  a(max_row,:)=temp_a;
  
  for k=i+1:1:row 
    a(k,:)=a(k,:)-a(i,:)*(a(k,i)/(a(i,i)+eps)); 
  end    
end
b=a(:,column+1)
a
for i=row:-1:1  %q求解过
    add=0;
    for k=i+1:1:row
        add=add+out(k)*a(i,k);
    end    
    out(i)=(b(i)-add)/(a(i,i)+eps);
end
out=out'

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?