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

Metoda eliminacji Gaussa

0 głosów
163 wizyt
pytanie zadane 8 kwietnia 2021 w C i C++ przez Fluxik Nowicjusz (240 p.)

Kod napisany jest na podstawie pseudokodu ale pokazuje błędne wyniki, mógłby ktoś pomóc mi zlokalizować błąd?

#include <iostream>

using namespace std;



int main()
{
    int n=5;
    double M[n][n]={-4,3,0.5,4,-3,
                    -5,3,0.5,0.5,-4,
                    -4,4,-2,-5,4,
                    -2,-2,4,2,3,
                    0.5,-5,4,0.5,-3};

    double W[n]={-4,-5,0.5,0.5,-2};
    double suma;

    for(int s=0;s<n-1;s++)
    {
        for(int i=s+1;i<n;i++)
        {
            for(int j=s+1;j<=n;j++)
            {
                M[i][j]=M[i][j]-M[i][s]/M[s][s]*M[s][j];

            }
        }
    }
    W[n]=M[n][n+1]/M[n][n];

    for(int i=n-1;i>0;i--)
    {
        suma=0;
        for(int s=i+1;s<n;s++)
        {
            suma=suma+M[i][s]*W[s];
        }
        W[i]=(M[i][n+1]-suma)/M[i][i];
    }
    for (int i=0;i<n;i++)
    {
        cout<<" x"<<i+1<<": "<<W[i]<<", ";
    }


    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 9 kwietnia 2021 przez TOM_CPP Pasjonat (22,620 p.)

Linijka 30:

W[n]=M[n][n+1]/M[n][n];

Masz tutaj UB, gdyż zapisujesz poza zakresem tablicy W.

Zobacz jak można to poprawnie zrobić gaussian-elimination

 

Podobne pytania

0 głosów
0 odpowiedzi 325 wizyt
pytanie zadane 6 kwietnia 2020 w C i C++ przez dominik195k Obywatel (1,030 p.)
0 głosów
0 odpowiedzi 481 wizyt
0 głosów
0 odpowiedzi 295 wizyt
pytanie zadane 21 kwietnia 2020 w C i C++ przez dominik195k Obywatel (1,030 p.)

89,082 zapytań

137,669 odpowiedzi

307,605 komentarzy

59,140 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.

...