Program: obliczający równania metodą Gaussa-Seidla. Możliwe jest podanie od 2 do 4 równań.
Dane wejściowe:
Ilosc wymiarow (wiersze x niewiadome (2-4)) n: 3
n =
3
Podaj wartosc a: 2
a =
2 3 1
Podaj wartosc b: 1
b =
1 2 1
Podaj wartosc c: -1
c =
-1 1 2
Podaj wartosc d: 0
d =
0 3 3
Podaj wartosc a: 3
a =
2 3 1
Podaj wartosc b: 2
b =
1 2 1
Podaj wartosc c: 1
c =
-1 1 2
Podaj wartosc d: 3
d =
0 3 3
Podaj wartosc a: 1
a =
2 3 1
Podaj wartosc b: 1
b =
1 2 1
Podaj wartosc c: 2
c =
-1 1 2
Podaj wartosc d: 3
d =
0 3 3
Dane wyjściowe:
x0 =
0 0 0
x0 =
0 0 0
x0 =
0 0 0
x1 =
0 1.5000 0.7500
x1 =
0 1.5000 0.7500
x1 =
0 1.5000 0.7500
x2 =
-0.3750 1.6875 0.8438
x2 =
-0.3750 1.6875 0.8438
x2 =
-0.3750 1.6875 0.8438
Kompilator: MATLAB
Kod programu:
n=input('Ilosc wymiarow (wiersze x niewiadome (2-4)) n: ')
if(n==3)
for i=1:3
a(i)=input('Podaj wartosc a: ')
b(i)=input('Podaj wartosc b: ')
c(i)=input('Podaj wartosc c: ')
d(i)=input('Podaj wynik: ')
end
for i=1:3
x0(i)=0
end
x1(1)=d(1)/a(1)
x1(2)=d(2)/b(2)+x1(1)*a(2)/-b(2)
x1(3)=d(3)/c(3)+x1(1)*a(3)/-c(3)+x1(2)*b(3)/-c(3)
x2(1)=d(1)/a(1)+x1(2)*b(1)/-a(1)+x1(3)*c(1)/-a(1)
x2(2)=d(2)/b(2)+x2(1)*a(2)/-b(2)+x1(3)*c(2)/-b(2)
x2(3)=d(3)/c(3)+x2(1)*a(3)/-c(3)+x2(2)*b(3)/-c(3)
elseif(n==2)
for i=1:2
a(i)=input('Podaj wartosc a: ')
b(i)=input('Podaj wartosc b: ')
c(i)=input('Podaj wynik: ')
end
for i=1:2
x0(i)=0
end
x1(1)=c(1)/a(1)
x1(2)=c(2)/b(2)+x1(1)*a(2)/-b(2)
x2(1)=c(1)/a(1)+x1(2)*b(1)/-a(1)
x2(2)=c(2)/b(2)+x2(1)*a(2)/-b(2)
else
for i=1:4
a(i)=input('Podaj wartosc a: ')
b(i)=input('Podaj wartosc b: ')
c(i)=input('Podaj wartosc c: ')
d(i)=input('Podaj wartosc d: ')
e(i)=input('Podaj wynik: ')
end
for i=1:4
x0(i)=0
end
x1(1)=e(1)/a(1)
x1(2)=e(2)/b(2)+x1(1)*a(2)/-b(2)
x1(3)=e(3)/c(3)+x1(1)*a(3)/-c(3)+x1(2)*b(3)/-c(3)
x1(4)=e(4)/d(4)+x1(1)*a(4)/-d(4)+x1(2)*b(4)/-d(4)+x1(3)*c(4)/-d(4)
x2(1)=e(1)/a(1)+x1(2)*b(1)/-a(1)+x1(3)*c(1)/-a(1)+x1(4)*d(1)/-a(1)
x2(2)=e(2)/b(2)+x2(1)*a(2)/-b(2)+x1(3)*c(2)/-b(2)+x1(4)*d(2)/-b(2)
x2(3)=e(3)/c(3)+x2(1)*a(3)/-c(3)+x2(2)*b(3)/-c(3)+x1(4)*d(3)/-c(3)
x2(4)=e(4)/d(4)+x2(1)*a(4)/-d(4)+x2(2)*b(4)/-d(4)+x2(3)*c(4)/-d(4)
end