Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [x] = gauss_complete_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_i = k;
- max_index_j = k;
- for counter_1 = k+1:n
- for counter_2 = k+1:m
- if abs(A(counter_1, counter_2)) > abs(A(max_index_i, max_index_j))
- max_index_i = counter_1;
- max_index_j = counter_2;
- end
- end
- end
- % Mijenja redove i kolone pivot elementa i trenutnog elementa
- A([k max_index_i], [k max_index_j]) = A([max_index_i k], [max_index_j k]);
- % Mijenjamo redove i vektora kolone b
- b([k max_index_i], 1) = b([max_index_i 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