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 + -
显示快捷键?