Gaussian Elimination technique by matlab
    434 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    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
Respuesta aceptada
  suraj kumar
      
 el 23 de Feb. de 2020
        % 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
 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
      
      
 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?
Más respuestas (3)
  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
  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
  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.  
  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
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


















