Added shitty Algorithm 6
This commit is contained in:
parent
41b7057eab
commit
be23b626db
@ -16,7 +16,6 @@ q = 1:n;
|
||||
for k = 1 : n-1
|
||||
i = k:n;
|
||||
j = k:n;
|
||||
A(i, j);
|
||||
[max_val, rows_of_max_in_col] = max(abs(A(i, j)));
|
||||
[max_val, max_col] = max(max_val);
|
||||
max_row = rows_of_max_in_col(max_col);
|
||||
|
@ -1,18 +1,10 @@
|
||||
% Algorithm 5: Gauss-Jordan Elimination (Alg.
|
||||
% Argument A is an augmented matrix
|
||||
function A = Alg5_gauss_jordan_elimination(A)
|
||||
% Algorithm 5: Gauss-Jordan Elimination
|
||||
% Argument A is an augmented matrix
|
||||
|
||||
% M – rows, N – columns
|
||||
|
||||
[M, N] = size(A);
|
||||
%
|
||||
% if M + 1 ~= N
|
||||
% error('Matrix is not squared!')
|
||||
% end
|
||||
%
|
||||
% if det(A) == 0
|
||||
% error('Matrix is not nonsingular!')
|
||||
% end
|
||||
|
||||
for m = 1 : M
|
||||
|
||||
@ -25,4 +17,5 @@ for m = 1 : M
|
||||
A(n, :) = A(n, :)-(A(n, m))*row;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
51
Direct Methods for Solving Linear Systems/Alg6_RREF.m
Normal file
51
Direct Methods for Solving Linear Systems/Alg6_RREF.m
Normal file
@ -0,0 +1,51 @@
|
||||
function A = Alg6_RREF(A)
|
||||
% Algorithm 6: Reduced Row Echelon Form (RREF)
|
||||
|
||||
% M – rows, N – columns
|
||||
|
||||
[M, N] = size(A);
|
||||
|
||||
n = 0;
|
||||
|
||||
for m = 1 : M
|
||||
n = n + 1
|
||||
if n > N
|
||||
break
|
||||
end
|
||||
A
|
||||
% We want the left-most coefficient to be 1 (pivot)
|
||||
row = A(m, :);
|
||||
if row(m) == 0
|
||||
n = n + 1
|
||||
end
|
||||
[m ,n]
|
||||
row = row/row(n);
|
||||
A(m, :) = row;
|
||||
|
||||
for i = 1 : M
|
||||
if i ~= m
|
||||
A(i, :) = A(i, :)-(A(i, n))*row;
|
||||
end
|
||||
end
|
||||
|
||||
A
|
||||
|
||||
for i = m + 1 : M
|
||||
A(i:end, m+1:end); % Partial matrix (in which we are looking for non-zero pivots)
|
||||
A(i:end, m+1); % Left-most column
|
||||
if ~any(A(i:end, m+1)) % If the left-most column has only zeros check the next one
|
||||
m = m + 1;
|
||||
end
|
||||
A(i:end, m+1:end);
|
||||
if A(i, m+1) == 0
|
||||
non_zero_row = find(A(i:end,m+1), 1);
|
||||
if isempty(non_zero_row)
|
||||
continue
|
||||
end
|
||||
A([i, i+non_zero_row-1], :) = deal(A([i+non_zero_row-1, i], :));
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
@ -60,8 +60,8 @@ bp = [0.168; 0.066];
|
||||
|
||||
kappa = cond(A)
|
||||
|
||||
B = gauss_jordan_elimination([A b])
|
||||
Bp = gauss_jordan_elimination([A bp])
|
||||
B = Alg5_gauss_jordan_elimination([A b])
|
||||
Bp = Alg5_gauss_jordan_elimination([A bp])
|
||||
|
||||
%% Problem 5
|
||||
% AX = I3
|
||||
@ -79,3 +79,18 @@ X = Q*back_substitution(U, y)
|
||||
inv(A)
|
||||
|
||||
%% Problem 6
|
||||
|
||||
%% Problem 10
|
||||
|
||||
% A = [1 2 2 3 1;
|
||||
% 2 4 4 6 2;
|
||||
% 3 6 6 9 6;
|
||||
% 1 2 4 5 3]
|
||||
|
||||
A = [0.835, 0.667;
|
||||
0.333, 0.266];
|
||||
b = [0.168; 0.067];
|
||||
|
||||
Alg6_RREF([A b])
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user