Система линейных уравнений. Решение методом Гаусса - VB

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Сегодня столкнулся с проблемой. Лазил на форуме, находил решения, но все равно не верно получается... Вполне возможно упустил что. В чем суть: Имеется код, все считает отлично, но если в элемент (1,1) подставить значение 0, то все летит к чертям. Учусь в строительном, поэтому с программированием плоховато дружу.
Вот и не могу сообразить что не так... До элемента (4,3) считает все правильно, а дальше переплет в дебаге вижу... Проверяю по данному варианту: Надеюсь, изложил достаточно информации и надеюсь на Вашу помощь

Решение задачи: «Система линейных уравнений. Решение методом Гаусса»

textual
Листинг программы
 Dim a(5, 5), b(10) As Double
 
        Dim x(5), f, k, swap As Double
 
        a(1, 1) = Val(TextBox1.Text)
        a(2, 1) = Val(TextBox2.Text)
        a(3, 1) = Val(TextBox3.Text)
        a(4, 1) = Val(TextBox4.Text)
        a(5, 1) = Val(TextBox5.Text)
        a(1, 2) = Val(TextBox10.Text)
        a(2, 2) = Val(TextBox9.Text)
        a(3, 2) = Val(TextBox8.Text)
        a(4, 2) = Val(TextBox7.Text)
        a(5, 2) = Val(TextBox6.Text)
        a(1, 3) = Val(TextBox15.Text)
        a(2, 3) = Val(TextBox14.Text)
        a(3, 3) = Val(TextBox13.Text)
        a(4, 3) = Val(TextBox12.Text)
        a(5, 3) = Val(TextBox11.Text)
        a(1, 4) = Val(TextBox20.Text)
        a(2, 4) = Val(TextBox19.Text)
        a(3, 4) = Val(TextBox18.Text)
        a(4, 4) = Val(TextBox17.Text)
        a(5, 4) = Val(TextBox16.Text)
        a(1, 5) = Val(TextBox25.Text)
        a(2, 5) = Val(TextBox24.Text)
        a(3, 5) = Val(TextBox23.Text)
        a(4, 5) = Val(TextBox22.Text)
        a(5, 5) = Val(TextBox21.Text)
        b(1) = Val(TextBox30.Text)
        b(2) = Val(TextBox29.Text)
        b(3) = Val(TextBox28.Text)
        b(4) = Val(TextBox27.Text)
        b(5) = Val(TextBox26.Text)
 
        Label1.Text = " "
        Label2.Text = " "
        Label3.Text = " "
 
        For i = 1 To 5
            For j = 1 To 5
                Label1.Text = Label1.Text & a(i, j) & " "
            Next
            Label1.Text = Label1.Text & vbCrLf
        Next
 
 
        For u = 1 To 5
            For i = u + 1 To 5
                If a(u, u) = 0 Then 'Если элемент главной диагонали равен 0, то нужно поменять строки местами
                    For j = u To 5
                        swap = a(i, j)
                        a(i, j) = a(u, j)
                        a(u, j) = swap
                    Next
                    swap = b(i)
                    b(i) = b(u)
                    b(u) = swap
                    If a(i, u) = 0 Then
                        i = i
                    Else
                        k = -a(u, u) / a(i, u)
                        For j = u To 5
                            a(i, j) = a(i, j) * k + a(u, j)
                        Next j
                        b(i) = b(i) * k + b(u)
                    End If
                Else
                    If a(i, u) = 0 Then
                        i = i
                    Else
                        k = -a(u, u) / a(i, u)
                        For j = u To 5
                            a(i, j) = a(i, j) * k + a(u, j)
                        Next j
                        b(i) = b(i) * k + b(u)
                    End If
                End If
            Next i
        Next u
        'Обратный ход, нахождение Х
        For i = 5 To 1 Step -1
            f = 0
            For j = i + 1 To 5
                f = f + a(i, j) * x(j)
            Next
            x(i) = (b(i) - f) / a(i, i)
        Next
 
        For i = 1 To 5
            For j = 1 To 5
                Label2.Text = Label2.Text & a(i, j) & " "
            Next
            Label2.Text = Label2.Text & vbCrLf
        Next
 
        For i = 1 To 5
            Label3.Text = Label3.Text & x(i) & vbCrLf
        Next

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы