Obliczanie równań metodą Gaussa-Seidla

Obliczanie równań metodą Gaussa-Seidla

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

Galeria:

Program w akcji.

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