# Matlab: Gaussian elimination function

``````function x = Gauss_Elimination(A,b)

n = length(b);
x = zeros(n,1);

% Forward Elimination
for i = 1:n-1

for j = i+1:n

mul = A(j,i)/A(i,i); % Multiplier

for k = i+1:n

A(j,k) = A(j,k) - mul*A(i,k);

end

b(j) = b(j) - mul*b(i);

end

end

x(n) = b(n)/A(n,n); % Obtain solution for the last variable

% Back Substitution
for i = n-1:-1:1

sum = b(i);

for j = i+1:n

sum = sum - A(i,j)*x(j);

end

x(i) = sum/A(i,i);

end
```

```

When A = [0 1 1 1; 3 0 3 -4; 1 1 1 2; 2 3 1 3]; b = [0; 7; 6; 6]; x = [4; -3; 1; 2]

However, when I use this function, x = [NAN; NAN; NAN; NAN].

Has anyone told me the reason ???

+3

source to share

Try using breakpoints to see the value of the variables at each iteration. The problem is with the variable "mul", you are dividing something / 0-> infinitely. This is why you are getting these results. If you installed

A = [2 1 1 1; 3 4 3 -4; 1 1 1 2; 2 3 1 3]; b = [0; 7; 6; 6]

you get the answer: ans =

-4.7273 1.7273 6.4545 1.2727

Hope this helps.

+1

source

It does a gaussian exception and then writes it to LaTex. you can cut the entry into latex and just look at the code that preforms the elimination.

And python version of the same code if you want it

0

source

All Articles