Написать программу для нахождения корней системы уравнений методом Гаусса - VB
Формулировка задачи:
Здравствуйте
помогите пожалуйста
Составить алгоритм и написать программу для нахождения корней системы уравнений методом Гаусса. Представить в отчете аналитическое решение и результаты программного расчета.
12x-4y-5z=11 11x+y+z=12 -3x-2y-14z=14
Решение задачи: «Написать программу для нахождения корней системы уравнений методом Гаусса»
textual
Листинг программы
Option Base 1
Sub matriza()
Dim z As String
Dim z1 As String
Dim z2 As String
Dim z3 As String
Dim i As Integer
Dim u As Integer
Dim l As Integer
Dim l1 As Integer
Dim n As Integer
z = ""
z1 = ""
z2 = ""
z3 = ""
y = 1
u = 1
n = InputBox("Введите количество неизвестных(кол-во уравнений системы)")
ReDim a(n, n + 1)
ReDim r(n, n + 1)
MsgBox "Размер матрицы А " & n + 1 & "х" & n
'ЗАПОЛНЕНИЕ МАТРИЦЫ
For l = 1 To n Step 1
For l1 = 1 To n + 1 Step 1
a(y, u) = InputBox("Введите число a(" & y & "," & u & ")")
r(y, u) = a(y, u)
z = z & a(y, u) & " | "
u = u + 1
Next l1
z = z & " " & Chr(13)
u = 1
y = y + 1
Next l
'ОТОБРАЖЕНИЕ МАТРИЦЫ
MsgBox "Введенная матрица" & Chr(13) & z
If n = 3 Then
MsgBox "Уравнение:" & Chr(13) & a(1, 1) & "х+" & "(" & a(1, 2) & ")" & "y+" & "(" & a(1, 3) & ")" & "z=" & a(1, 4) & Chr(13) & a(2, 1) & "х+" & "(" & a(2, 2) & ")" & "y+" & "(" & a(2, 3) & ")" & "z=" & a(2, 4) & Chr(13) & a(3, 1) & "х+" & "(" & a(3, 2) & ")" & "y+" & "(" & a(3, 3) & ")" & "z=" & a(3, 4)
End If
z = ""
ReDim x(n)
ReDim q(n)
'ПЕРЕСТРОЙКА МАТРИЦЫ
For k = 2 To n Step 1
For p = k To n Step 1
m = a(k - 1, k - 1) / a(p, k - 1)
For f = k - 1 To n + 1 Step 1
a(p, f) = a(k - 1, f) - a(p, f) * m
Next f
Next p
Next k
'РАСЩЕТ Х
x(n) = a(n, n + 1) / a(n, n)
For i = n - 1 To 1 Step -1
s = 0
For j = i + 1 To n Step 1
s = s + x(j) * a(i, j) / a(i, i)
Next j
x(i) = (a(i, n + 1) / a(i, i)) - s
Next i
'ВЫВОД ОТВЕТА
For b = 1 To n Step 1
z1 = z1 & x(b) & Chr(13)
Next b
MsgBox "Ответы:" & Chr(13) & z1
'ПРОВЕРКА
For t = 1 To n Step 1
For o = 1 To n Step 1
If o = 1 Then
q(t) = r(t, o) * x(o)
Else
q(t) = q(t) + r(t, o) * x(o)
End If
Next o
z2 = z2 & q(t) & Chr(13)
z3 = z3 & r(t, n + 1) & Chr(13)
Next t
MsgBox "ПРОВЕРКА:" & Chr(13) & z2 & Chr(13) & "Исходные данные:" & Chr(13) & z3
End Sub