Matlab高斯消元法代码
时间: 2023-07-02 12:16:53 浏览: 54
以下是一个简单的 Matlab 高斯消元法代码示例:
```matlab
function [x] = gauss_elimination(A,b)
% A为系数矩阵,b为常数向量
% x为解向量
n = length(b);
% 前向消元
for k = 1:n-1
for i = k+1:n
factor = A(i,k)/A(k,k);
A(i,k+1:n) = A(i,k+1:n) - factor*A(k,k+1:n);
b(i) = b(i) - factor*b(k);
end
end
% 回代求解
x = zeros(n,1);
x(n) = b(n)/A(n,n);
for i = n-1:-1:1
x(i) = (b(i) - A(i,i+1:n)*x(i+1:n))/A(i,i);
end
end
```
使用方法:
假设有一个线性方程组 Ax=b,A为系数矩阵,b为常数向量,需要求解出x向量。
1. 将上述代码复制到 Matlab 编辑器中并保存为 gauss_elimination.m 文件。
2. 在 Matlab 命令窗口中输入:
```matlab
A = [1 2 3; 4 5 6; 7 8 9];
b = [3; 6; 9];
x = gauss_elimination(A,b)
```
其中,第一行定义了系数矩阵 A,第二行定义了常数向量 b,第三行调用了 gauss_elimination 函数求解出了解向量 x。
输出结果为:
```
x =
-0.0000
0.0000
1.0000
```
表示方程组的解为 x1=0,x2=0,x3=1。