Wyznacznik metoda Gaussa

0

Czy moglby ktos powiedziec gdzie jest blad?? Wyskakuja w obliczeniach wartosci NaN (dzielenie przez zero chyba wychodzi) i nie moge znaleŹĆ gdzie co i jak:(

[code]
void wyznacznik(int l_wezlow)
{
try
{
Macierz = new double[l_wezlow, l_wezlow + 1];
Wynik = new double[l_wezlow];
double suma;

            for (int i = 0; i < l_wezlow; i++)
                for (int j = 0; j <= l_wezlow; j++)
                    Macierz[i, j] = 1201;

            for (int s = 0; s < l_wezlow - 1; s++)
                for (int i = s + 1; i < l_wezlow; i++)
                    for (int j = s + 1; j < l_wezlow + 1; j++)
                    {
                        Macierz[i, j] = Macierz[i, j] - Macierz[i, s] * Macierz[s, j] / Macierz[s, s];
                        Wynik[l_wezlow - 1] = Macierz[l_wezlow - 1, l_wezlow] / Macierz[l_wezlow - 1, l_wezlow - 1];
                    }

            for (int i = l_wezlow - 2; i >= 0; i--)
            {
                suma = 0.0;
                for (int s = i + 1; s < l_wezlow; s++)
                    suma += Macierz[i, s] * Wynik[s];
                Wynik[i] = (Macierz[i, l_wezlow] - suma) / Macierz[i, i];
            }
        }
        catch (Exception e)
        {
            //MessageBox.Show("Błąd obliczania wyznacznika macierzy", "Aplikacja.exe", MessageBoxButtons.OK, MessageBoxIcon.Error);
            MessageBox.Show(e.ToString());
        }
    }

[/code]

Z gory dziekuje za pomoc:)

0

W następujących linijkach kodu:

for (int s = 0; s < l_wezlow - 1; s++)
                    for (int i = s + 1; i < l_wezlow; i++)
                        for (int j = s + 1; j < l_wezlow + 1; j++)
                        {
                            Macierz[i, j] = Macierz[i, j] - Macierz[i, s] * Macierz[s, j] / Macierz[s, s];
                            Wynik[l_wezlow - 1] = Macierz[l_wezlow - 1, l_wezlow] / Macierz[l_wezlow - 1, l_wezlow - 1];
                        }

gdy s=1;i=2;j=2
to Macierz[i, j]=Macierz[i, j]-0*0/0, czyli występuje dzielenie przez 0, stąd te NaN

1 użytkowników online, w tym zalogowanych: 0, gości: 1