Matlab Gaussian elimination with partial pivoting

  • Thread starter NewAlias
  • Start date
  • #1
2
0

Homework Statement


Hi all, I'm writing a program to solve a system of linear algebraic equations using the method of Gaussian elimination. The only thing I can't figure out is how to perform the actual pivot.
In the %Forward elimination nest, I can't figure out how I am supposed to find the max_row. Is it just any row that has the maximum value or is it specific to the pivot row? Most of the function is translated from pseudo code posted by my professor and the only part I can't translate is how to get the max_row. Any help would be greatly appreciated!

Homework Equations



function x=Lab7gauss(A,b)
%Solves a given system of linear equations Ax=b using the Gauss Elimination
%method. Equations in format Ax=b.


%Function code
A=input('Enter the coefficient matrix: ');
b=input('Enter the right hand side vector b: ');
[m,n]=size(A);
if m~=n
error('Coefficient matrix A must be square')
end
Ab=[A,b];
nc=n+1;

%Forward elimination

for p=1:n-1 %p is current pivot row
%partial pivoting
max_row=max(A);
if max_row~=p
p=max_row;
max_row=p;
end
for i=p+1:n %operate on all rows below pivot
factor = Ab(i,p)/Ab(p,p);
for c=p:nc
Ab(i,c)=Ab(i,c)-factor*Ab(p,c);
end
end
end

%back substitution
x(n)=Ab(n,nc)/Ab(n,n);
for k=n-1:-1:1
x(k)=Ab(k,nc);
for j=k+1:n
x(k)=x(k)-Ab(k,j)*x(j);
end
x(k)=x(k)/Ab(k,k);
end
[C,I]=max(A)
 

Answers and Replies

Related Threads on Matlab Gaussian elimination with partial pivoting

Replies
0
Views
18K
  • Last Post
Replies
0
Views
1K
  • Last Post
Replies
0
Views
27K
  • Last Post
Replies
0
Views
8K
  • Last Post
Replies
1
Views
979
  • Last Post
Replies
5
Views
2K
  • Last Post
Replies
7
Views
3K
  • Last Post
Replies
0
Views
2K
  • Last Post
Replies
3
Views
3K
Top