
- •Курсовая работа п о дисциплине Информатика
- •Пояснительная записка
- •Курсовая работа
- •Задание
- •Аннотация
- •Оглавление
- •Задание
- •Введение
- •Теория метода
- •Разработка программы на языке vba
- •Вычислительная схема метода Зейделя
- •Решение слау методом Зейделя в ms Excel
- •Решение слау методом Зейделя в MathCad
- •Заключение
- •Библиографический список
Разработка программы на языке vba
Sub VVOD(list As Integer, row As Integer, col As Integer, n As Integer, m As Integer, M1() As Single)
Dim i As Integer
Dim j As Integer
For i = 1 To n
For j = 1 To m
M1(i, j) = Worksheets(list).Cells(row + i - 1, col + j - 1).Value
Next j
Next i
End Sub
Sub Proverka(list As Integer, row As Integer, col As Integer, n As Integer, M1() As Single)
Dim i As Integer
Dim j As Integer
Dim sum As Integer
For i = 1 To n
sum = 0
For j = 1 To n
If j <> i Then
sum = sum + M1(i, j)
If Abs(M1(i, i)) > Abs(sum) Then
Worksheets(list).Cells(row + i - 1, col).Value = "ok"
Else
Worksheets(list).Cells(row + i - 1, col).Value = "bad"
End If
End If
Next j
Next i
End Sub
Sub Podgotovka(list As Integer, row As Integer, col As Integer, n As Integer, M1() As Single, M2() As Single)
Dim C As Single
Dim i As Integer
Dim j As Integer
For i = 1 To n
For j = 1 To n + 1
C = M1(i, i)
M2(i, j) = M1(i, j) / C
Worksheets(list).Cells(row + i - 1, col + j - 1).Value = M2(i, j)
Next j
Next i
End Sub
Sub Zeidel(list As Integer, row As Integer, col As Integer, n As Integer, M1() As Single, M2() As Single, M3() As Single)
Dim i As Integer
Dim j As Integer
Dim S As Single
Dim X0(3) As Single
Dim d(3) As Single
Dim B(3) As Single
e = 0.001
For i = ```````````````````````````````````````1 To n
X0(i) = M1(i, 4) / M1(i, i)
B(i) = M2(i, 4)
Worksheets(list).Cells(row + i - 1, col).Value = X0(i)
Next i
g = 0
Do
For i = 1 To n
For j = 1 To n
If i <> j Then
S = S + M2(i, j) * X0(j)
Worksheets(list).Cells(row + i + 3, col).Value = S
X = B(i) - S
Worksheets(list).Cells(row + i + 3, col + 1).Value = X
d(i) = Abs(X - X0(i))
Worksheets(list).Cells(row + i + 3, col + 2).Value = d(i)
End If
Next j
Next i
f = d(1)
If f < d(2) Then
If d(3) > f Then
f = d(3)
Else
f = d(2)
End If
End If
For i = 1 To n
Worksheets(list).Cells(row + 3, col + 3).Value = f
S = S - S
X0(i) = X
Worksheets(list).Cells(row + i + 3, col + 4).Value = X0(i)
g = g + 1
Worksheets(list).Cells(row + 4, col + 5).Value = g
Next i
Loop Until f < e
End Sub
Sub Reshenie()
Dim A(3, 4) As Single
Dim B(3, 4) As Single
Dim X(3, 1) As Single
Call VVOD(1, 1, 1, 3, 4, A())
Call Proverka(1, 1, 6, 3, A())
Call Podgotovka(1, 5, 1, 3, A(), B())
'Call Zeidel(1, 5, 6, 3, A(), B(), X())
End Sub
Вычислительная схема метода Зейделя
Рассмотрим вычислительную схему метода Зейделя на примере системы уравнений задания:
Матрица
системы
,
вектор-столбец
1. Задается точность ( )
2. Проверяется условие сходимости матрицы:
верно;
не
верно;
не
верно.
3. Вычисление начальных приближений:
4. Нахождение приближений:
5. Критерий близости:
,
заданная точность не достигнута.
Дальнейшие итерации выполняются аналогично (таблица 1).
Таблица 1
Решение слау методом Зейделя в ms Excel
Решение слау методом Зейделя в MathCad
Проверка сходимости
Начальные приращения
Первая итерация
n= точность не достигнута
Вторая итерация
n= точность не достигнута
Третья итерация
n= точность достигнута