METODA JACOBIEGO
Metoda Jacobiego opiera się na przedstawieniu macierzy w postaci sumy trzech macierzy:
Program:
clear all;
N=6
A=[-4 1 0 0 0 0 ; 1 -4 1 0 0 0 ; 0 1 -4 1 0 0 ; 0 0 1 -4 1 0 ; 0 0 0 1 -4 1 ; 0 0 0 0 1 -4 ]
x=[1 2 3 4 5 6]'
b=A*x;
L=zeros(N);
U=zeros(N);
for i=1:N
D(i,i)=A(i,i);
end
D
for i=2:N
for j=1:i-1
L(i,j)=A(i,j);
end
end
L
for i=1:N-1
for j=i+1:N
U(i,j)=A(i,j);
end
end
U
x0=[5 6 2 7 9 5]';
eps=10^(-8);
while true
x1=-D^(-1)*(L+U)*x0+D^(-1)*b;
norm=0;
for i=1:N
norm=norm+(x1(i)-x0(i))^2;
end
norm=sqrt(norm);
if norm<eps
break
end
x0=x1;
end
x1
METODA ELIMINACJI GAUSSA
Metoda eliminacji Gaussa polega na przekształcaniu wyjściowego układu równań w równoważny układ o macierzy trójkątnej górnej.
Program:
function x = r_gauss (A,b)
n = length(b);
for k = 2:n
for i= k:n
if A(i,k-1) ~= 0
wsp = A(k-1,k-1)/A(i,k-1);
A(i,k-1:n) = A(k-1,k-1:n) - wsp*A(i,k-1:n);
b(i)=b(k-1)-wsp*b(i);
end
end
end
x(n)=b(n)/A(n,n);
for k=n-1:-1:1
x(k)=(b(k)-A(k,k+1:n)*(x(k+1:n))')/A(k,k);
end
x=x';
A=[2,3,4;5,8,6;2,3,5]
b=[1;5;1]
r_gauss (A,b)