高斯列主元消去matlabl
时间: 2023-11-02 15:00:30 浏览: 78
使用matlab高斯消去法、列主元高斯消去法计算n阶线性方程组
高斯列主元消去法是一种用于解决线性方程组的方法。它的主要思想是通过选择主元来避免在消元过程中出现除以零的情况,并且可以减小误差的累积。在Matlab中,可以使用以下代码实现高斯列主元消去法:
```matlab
clc;
clear;
close all;
A=[1/4 1/5 1/6; 1/3 1/4 1/5; 1/2 1 2]; % 输入矩阵系数
B=[9; 8; 8];
C=[A B];
[m, n]=size(C); % 计算出增广矩阵的行数和列数
H=m;
L=n;
% 找出第一列中最大元素->消元->找出第二列中最大元素->消元...
for i=1:n-2 % 第i列
max=0;
for j=i:m % 第j行
if(abs(C(j,i))>max)
max=abs(C(j,i));
a=i; % 记录i列中最大在第a列
b=j; % 记录i列中最大在第b行
end
end
disp(max);
%找到一列中最大元素后,交换位置
C([i,b],:)=C([b,i],:); % 交换第i行和最大值所在的第b行使得列最大元素在C(i,i)
disp(C);
% 消元
for k=i:1:m
temp=C(i,i)/C(k,i);
for d=1:n
C(k,d)=temp*C(k,d)-C(i,d);
end
end
disp(C);
end
% 反带回方程
x=zeros(1,m); % 生成1行m列的0矩阵
for s=m:-1:1
x(s)=C(s,n);
for t=1:m-s
x(s)=x(s)-C(s,n-t)*x(m 1-t);
end
x(s)=x(s)/C(s,s);
end
disp(x);
```
阅读全文