23 lines
549 B
Matlab
23 lines
549 B
Matlab
A = [3, -0.1, -0.2; 0.1, 7, -0.3; 0.3, -0.2, 10]
|
|
B = [7.85; -19.3; 71.4]
|
|
init = [0, 0, 0]
|
|
|
|
# gotta have an initial assumption (usually 0s)
|
|
function solution = gauss_seidel(A,b,initial)
|
|
for i = [1:length(A)]
|
|
sigma = 0;
|
|
for j = [1:length(A)]
|
|
if(j != i)
|
|
# ze part where we have a32 - a31 etc
|
|
sigma = sigma + A(i,j) * initial(j)
|
|
endif
|
|
|
|
endfor
|
|
# divide by elements coefff and the free term minus the summation above (rest of row)
|
|
initial(i) = (b(i) - sigma) / A(i,i)
|
|
endfor
|
|
solution = initial
|
|
endfunction
|
|
|
|
balls = gauss_seidel(A,B,init)
|