Non-Pivoting Gaussian Elimination Exceeding Rows help?
Show older comments
Evening,
But seriously, lets cut to the chase, Walter,
I don't understand why my non-pivoting Guassian elim. loop is saying that my position 1 exceeds my array bound of 4.
Here is the code:
function Aa = gaussq(A, b)
A
n = 100;
for j = 1: 1: n
p = A(j,j)
for i = j+1: 1: n
M = A(i,j)/p
A(i,:) = A(i,:) - M*A(j,:)
b(i) = b(i) - M*b(j)
end
end
end
The input:
gaussq( [1 1 1 0; -1 1 0 1; -1 2 1 1; 0 0 1 2], [1;2;3;3])
The error:
"Index in position 1 exceeds array bounds (must not exceed 4)."
How are my rows reaching 5? Doesn't it reset after the nested for loop is done with the 1st column (after two iterations)?
Accepted Answer
More Answers (1)
Walter Roberson
on 29 Mar 2019
0 votes
Your n should not be greater than min(size(A,1),size(A,2))
3 Comments
Yakub Shalmiyev
on 29 Mar 2019
Walter Roberson
on 29 Mar 2019
You had tagged it with my name and I was cleaning up tags.
Yakub Shalmiyev
on 29 Mar 2019
Categories
Find more on Multidimensional Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!