Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
info_1.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
69 Кб
Скачать
☆

Метод обратной матрицы

Расчетная формула метода обратной матрицы следующая:

-обратная матрица, которую мы находим используя стандартную математическую функцию

B-вектор свободных членов.

Выделяется область равной размеру исходной матрицы. Включается функция МОБР и в качестве аргумента выделяется исходная матрица.

=МОБР(A2:D5)

-1,87012

0,442243

-0,2513

0,060311

-0,10513

-0,72764

0,302049

-0,07249

-0,20347

-0,09592

-1,13396

0,272149

-0,00363

0,434195

1,194656

-1,28672

Выделяется область равной размеру вектора свободных коэффициентов. Функция МУМНОЖ 1. Обратная матрица, 2. Вектор свободных коэффициентов

=МУМНОЖ(A8:D11;G2:G5)

Метод Гаусса

Метод Гаусса заключается:

  1. Приведении матрицы коэффициентов А к треугольному виду

  2. Нахождение неизвестных начиная с последнего уравнения.

Программа метода Гаусса:

OptionBase 1

SubМетод_Гаусса()

n = Val(InputBox("Введите число уравнений", "Исходные данные"))

Dim a(4, 4)

i1 = 2

For i = 1 To 4

For j = 1 To 4

a(i, j) = Worksheets("Слау").Cells(i1, j).Value

Next j

i1 = i1 + 1

Next i

Dim b(4)

i1 = 2

For i = 1 To 4

b(i) = Worksheets("Слау").Cells(i1, 7).Value

i1 = i1 + 1

Next i

Dim x(4)

For k = 1 To n - 1

For i = k + 1 To n

c = a(i, k) / a(k, k)

a(i, k) = 0

For j = k + 1 To n

a(i, j) = a(i, j) - c * a(k, j)

Next j

b(i) = b(i) - c * b(k)

Next i

Next k

x(n) = b(n) / a(n, n)

For i = n - 1 To 1 Step -1

s = 0

For j = i + 1 To n

s = s + a(i, j) * x(j)

Next j

x(i) = (b(i) - s) / a(i, i)

Next i

j1 = 10

For j = 1 To 4

Worksheets("Слау").Cells(4, j1).Value = x(j)

j1 = j1 + 1

Next j

End Sub

Приближенные (итерационные) методы

Метод простой итерации

Расчетная формула:

Для данного метода важно выполнение условия сходимости, которое утверждает что модули диагонали элемента > или = сумме не диагональных элементов

Это условие является достаточным, но не необходимом, т.е. иногда при не выполнении этого условия решение может быть получено.

Программа метода простой итерации:

SubПрост_итер()

k = Val(InputBox("Введите число уравнений", "Исходные данные"))

Dim a(4, 4)

i1 = 2

For i = 1 To 4

For j = 1 To 4

a(i, j) = Worksheets("Слау").Cells(i1, j).Value

Next j

i1 = i1 + 1

Next i

Dim b(4)

i1 = 2

For i = 1 To 4

b(i) = Worksheets("Слау").Cells(i1, 7).Value

i1 = i1 + 1

Next i

e = 0.001

n = 0

x10 = 0

x20 = 0

x30 = 0

x40 = 0

Do

x1 = (b(1) - a(1, 2) * x20 - a(1, 3) * x30 - a(1, 4) * x40) / a(1, 1)

x2 = (b(2) - a(2, 1) * x10 - a(2, 3) * x30 - a(2, 4) * x40) / a(2, 2)

x3 = (b(3) - a(3, 1) * x10 - a(3, 2) * x20 - a(3, 4) * x40) / a(3, 3)

x4 = (b(4) - a(4, 1) * x10 - a(4, 2) * x20 - a(4, 3) * x30) / a(4, 4)

c = Abs(x1 - x10) + Abs(x2 - x20) + Abs(x3 - x30) + Abs(x4 - x40)

x10 = x1

x20 = x2

x30 = x3

x40 = x4

n = n + 1

Loop While c > e

Worksheets("Слау").Range("J5").Value = x1

Worksheets("Слау").Range("K5").Value = x2

Worksheets("Слау").Range("L5").Value = x3

Worksheets("Слау").Range("M5").Value = x4

Worksheets("Слау").Range("n5").Value = n

EndSub

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