matlab 高斯代码
时间: 2024-05-03 21:15:45 浏览: 158
Matlab是一款数学软件,其中包含了高斯消元的函数。高斯消元是一种解线性方程组的方法,其基本思想是通过初等变换将方程组转化为行阶梯形式,从而求解未知量。以下是Matlab中实现高斯消元的代码示例:
```
function x = Gauss(A,b)
[n,m] = size(A);
if n ~= m
error('A不是一个方阵!');
end
Ab = [A b];
for k = 1:n-1
[maxValue,maxIndex] = max(abs(Ab(k:n,k)));
maxIndex = maxIndex + k - 1;
if maxValue == 0
error('矩阵是奇异的!');
end
if maxIndex ~= k
Ab([k,maxIndex],:) = Ab([maxIndex,k],:);
end
for i = k+1:n
factor = Ab(i,k)/Ab(k,k);
Ab(i,k:n+1) = Ab(i,k:n+1) - factor*Ab(k,k:n+1);
end
end
if Ab(n,n) == 0
error('矩阵是奇异的!');
end
x(n,1) = Ab(n,n+1)/Ab(n,n);
for i = n-1:-1:1
x(i,1) = (Ab(i,n+1)-Ab(i,i+1:n)*x(i+1:n,1))/Ab(i,i);
end
end
```
调用该函数需要输入一个n×n的矩阵A和一个n×1的向量b,输出为解向量x。使用该函数可以解决任意个数的线性方程组,例如:
```
>> A = [3 2 -1; 2 -2 4; -1 0.5 -1];
>> b = [1; -2; 0];
>> x = Gauss(A,b)
x =
1.0000
2.0000
3.0000
```
阅读全文