Gaussian Elimination technique by matlab

1.569 visualizaciones (últimos 30 días)
Razi Naji
Razi Naji el 14 de Mayo de 2017
Editada: Walter Roberson el 8 de Mzo. de 2024
Hello every body , i am trying to solve an (nxn) system equations by Gaussian Elimination method using Matlab , for example the system below :
x1 + 2x2 - x3 = 3
2x1 + x2 - 2x3 = 3
-3x1 + x2 + x3 = -6
C = [ 1 2 -1 ; 2 1 -2 ; -3 1 1 ]
b= [ 3 3 -6 ]
by using this code :
% Matlab Program to solve (nxn) system equation
% by using Gaussian Elimination method
clear ; clc ; close all
n = input('Please Enter the size of the equation system n = ') ;
C = input('Please Enter the elements of the Matrix C ' ) ;
b = input('Please Enter the elements of the Matrix b ' ) ;
dett = det(C)
if dett == 0
print('This system unsolvable because det(C) = 0 ')
else
b = b'
A = [ C b ]
for j = 1:(n-1)
for i= (j+1) : n
mult = A(i,j)/A(j,j) ;
for k= j:n+1
A(i,k) = A(i,k) - mult*A(j,k) ;
A
end
end
end
for p = n:-1:1
for r = p+1:n
x(p) = A(p,r)/A(p,r-1)
end
end
end
everything is good but i need help to do the back substitution to find and print the matrix x ( which is contains the solutions of this system ) , could any one help me to do that ? i will thankful in advance Razi
  9 comentarios
Muntasir
Muntasir el 15 de Jun. de 2022
Jealryn obordo
'n' is the number of variables or equations. Here n=3
shrawani
shrawani el 5 de Mzo. de 2024
what is A(i,j) and how, why it is used

Iniciar sesión para comentar.

Respuesta aceptada

suraj kumar
suraj kumar el 23 de Feb. de 2020
DGM ha marcado con alerta este/a respuesta
% Gauss-Elimination method
for i=j+1:m
a(i,:)=a(i,:)-a(j,:)*(a(i,j)/a(j,j));
enda = input('Enter the augument matrix:')
[m,n]=size(a);
for j=1:m-1
for z=2:m
if a(j,j)==for i=j+1:m
a(i,:)=a(i,:)-a(j,:)*(a(i,j)/a(j,j));
enda = input('Enter the augument matrix:')
[m,n]=size(a);
0
t=a(j,:);a(j,:)=a(z,:);
a(z,:)=t;
end
end
end
x=zeros(1,m);
for s=m:-1:1
c=0;
for k=2:m
c=c+a(s,k)*x(k);
end
x(s)=(a(s,n)-c)/a(s,s);
end
disp('Gauss elimination method:');
a
x'
  2 comentarios
Muhammed Ali
Muhammed Ali el 31 de Dic. de 2020
hello sir what does variable m does in this code ?
like what is its purpose explained in your words
DGM
DGM el 18 de Mayo de 2023
Editada: DGM el 18 de Mayo de 2023
Besides the missing variables, this isn't working code. The missing linebreaks have broken things in a few spots, and there's nonsense like this:
if a(j,j)==for i=j+1:m
This probably means that there is code that's either missing, or a chunk of the code was selected and moved to an arbitrary position in the body of surrounding code. It's an incomplete jumbled mess.
Why did anyone post this? Why did anyone accept it?

Iniciar sesión para comentar.

Más respuestas (3)

M Waqar Nadeem
M Waqar Nadeem el 11 de Mzo. de 2021
C = [1 2 -1; 2 1 -2; -3 1 1]
b= [3 3 -6]'
A = [C b]; %Augmented Matrix
n= size(A,1); %number of eqns/variables
x = zeros(n,1); %variable matrix [x1 x2 ... xn] coulmn
for i=1:n-1
for j=i+1:n
m = A(j,i)/A(i,i)
A(j,:) = A(j,:) - m*A(i,:)
end
end
x(n) = A(n,n+1)/A(n,n)
for i=n-1:-1:1
summ = 0
for j=i+1:n
summ = summ + A(i,j)*x(j,:)
x(i,:) = (A(i,n+1) - summ)/A(i,i)
end
end
  3 comentarios
Ahmad
Ahmad el 30 de Abr. de 2022
Hi Nadeem
seems it does not work for:
C=[0 0 0 5 ; 4 0 2 5; 1 3 0 2; 3 4 2 0]
b=[16 10 13 -1]'
Mourad
Mourad el 30 de Oct. de 2022
it does work only if the elements of the diagonal are different from zero.

Iniciar sesión para comentar.


pss CHARAN
pss CHARAN el 2 de Dic. de 2020
Editada: Walter Roberson el 8 de Mzo. de 2024
clc
n=input(Enter number of variables);
for i=1:1:n
for j=1:1:n
A(i,j)=input(Enter Coefficient);
end
end
for i=1:1:n
for j=1:1:n
B(i,1)=input(Enter Constant);
end
end
A
B
E=[AB]
for i=1:1:n
E(i,:)=E(i,:)+E(i+1,:);
end
E(n,1)=E(n,1)+E(1,1);
q=1;
for i=q:1:n
for j=1:1:n
if E(j,i)==0;
E(j,:)=E(j,:);
else
E(j,:)=E(j,:)/E(j,i);
end
end
for k=i+1:1:n
E(k,:)=E(k,:)-E(i,:);
end
q=i+1;
end
q=n;
for i=n:-1:1
for j=1:1:q
if E(j,i)==0;
E(j,:)=E(j,:);
else
E(j,:)=E(j,:)/E(j,i);
end
end
for k=1:1:i-1
E(k,:)=E(k,:)-E(i,:);
end
q=q-1;
end
X=E(:,n+1);
fprintf(****The Solution is****\n)X
  3 comentarios
Martin
Martin el 17 de Mayo de 2023
The lack of tabs/formatting broke my brain :D
DGM
DGM el 18 de Mayo de 2023
No documentation, no formatting, invalid characters, improper indexing. To add insult to injury, you harass the user by forcing them to blindly enter matrices using input() without any explanation of how the inputs should be oriented-- and then you throw it away and force them to do it again n times.
Why post something that's not even working code? It's not an answer, so you're not helping anyone else. It's not a question, so you're not helping yourself either. What's the point of this bizarre ritual?
I was going to fix the formatting, but it belongs like this.

Iniciar sesión para comentar.


Vishwa Lawliet
Vishwa Lawliet el 3 de Sept. de 2022
Editada: DGM el 18 de Mayo de 2023
disp('bX = c')
%4
n = input('Enter the size of matrix')
%[2 1 -1 2; 4 5 -3 6; -2 5 -2 6; 4 11 -4 8]
b = input('Enter the elements of the Matrix b ' )
%[5;9;4;2]
c = input('Enter the elements of the Matrix c ' )
dett = det(b);
if dett == 0
disp('This system unsolvable because det(b) = 0 ')
else
a=[b c];
for i = 0:n-2
for j = 0:n-2-i
a(i+j+2:i+j+2,i+1:n+1)=(a(i+j+2:i+j+2,i+1:n+1).*(a(i+1,i+1)/a(i+j+2,i+1)))-a(i+1:i+1,i+1:n+1);
disp(a)
end
end
X=c';
for i = 0:n-1
X(n-i)=(a(n-i,n+1)-sum(a(n-i:n-i,1:n).*X)+a(n-i,n-i)*X(n-i))/a(n-i,n-i);
end
X=X';
disp(X)
end
  1 comentario
Deepak
Deepak el 6 de Jun. de 2023
dett = det(b);
This is not valid as b is a row matrix

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by