• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Rozwiązywanie układu równań metodą Gaussa-Seidla C++

0 głosów
262 wizyt
pytanie zadane 1 kwietnia 2021 w C i C++ przez Mavimix Dyskutant (8,280 p.)

Chcę rozwiązać układ równań (3x3) metodą Gaussa-Seidla. Wzorując się na tych stronach: strona1 strona2 strona3 napisałem taki kod:

#include <iostream>
#include <cmath>
#define epsilon 0.001

int main()
{
    long double a[3][3], b[3], x[3], xo[3];

    a[0][0] = 3;   a[0][1] = -6.5; a[0][2] = 3.33; b[0] = 7;
    a[1][0] = 4.7; a[1][1] = 8;    a[1][2] = -17;  b[1] = 5;
    a[2][0] = 6;   a[2][1] = 2;    a[2][2] = 8;    b[2] = -5.2;
    //OBLICZONE KALKULATOREM: x=0,5063353908 y=-1,215147148 z=-0,725964756
    int n = 3;

    for (int i = 0; i < n; i++)
    {
        x[i] = b[i] / a[i][i];
    }

    do
    {
        for (int i = 0; i < n; i++)
        {
            xo[i] = x[i];
            for (int j = 0; j < n; j++)
            {
                if (i != j) x[i] -= (a[i][j] * x[j]) / a[i][i];
            }
        }
    } while (fabs(x[0] - xo[0]) < epsilon &&
                fabs(x[1] - xo[1]) < epsilon &&
                fabs(x[2] - xo[2]) < epsilon);

    std::cout << "x = " << x[0] << std::endl;
    std::cout << "y = " << x[1] << std::endl;
    std::cout << "z = " << x[2] << std::endl;

    return 0;
}

Wyniki się nie zgadzają z tymi obliczonymi przez kalkulator, ponad to nie wiem czemu (używam Visual'a) w linii 7 (przy deklaracji b[3]) pojawia się błąd "oczekiwano wyrażenia" (pomimo, że kilka linii później większość zmiennych jest inicjalizowana). Widzi ktoś błąd w tym kodzie? Dlaczego "kalkulator układów" nie działa prawidłowo?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 453 wizyt
+1 głos
1 odpowiedź 1,442 wizyt
0 głosów
0 odpowiedzi 268 wizyt
pytanie zadane 21 kwietnia 2020 w C i C++ przez dominik195k Obywatel (1,030 p.)

88,328 zapytań

136,921 odpowiedzi

305,575 komentarzy

58,599 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...