Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [x] = gauss_partial_pivoting(A, b)
- [m, n] = size(A);
- if (m ~= n)
- x = -0;
- return
- end
- for k = 1:m-1
- % Nalazi indeks reda pivot elementa
- max_index = k;
- for counter = k+1:n
- if abs(A(counter, k)) > abs(A(max_index, k))
- max_index = counter;
- end
- end
- % Mijenja redove pivot elementa i trenutnog elementa
- A([k max_index], :) = A([max_index k], :);
- % Mijenjamo redove i vektora kolone b
- b([k max_index], 1) = b([max_index k], 1);
- for i = k+1:m
- coefficient = (-1) * A(i,k)/A(k,k);
- for j = k:n
- A(i, j) = A(i, j) + A(k, j)*coefficient;
- end
- b(i) = b(i) + b(k)*coefficient;
- end
- end
- % Izracunamo posljednje x i vracamo u sve prethodne
- x(n) = b(n)/A(n,n);
- for i = n-1:-1:1
- sum = 0;
- for j = n:-1:i+1
- sum = sum + A(i, j)*x(j);
- end
- x(i) = (b(i) - sum)/A(i,i);
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement