Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
yulin (2).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
466.94 Кб
Скачать

Разработка программы на языке 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= точность достигнута

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]