Вы находитесь на странице: 1из 164

Digitally signed by ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ МОЛДОВЫ

Technical Scientific
Library, TUM
Reason: I attest to the
accuracy and integrity
of this document

ЧИСЛЕННЫЕ МЕТОДЫ

Учебное пособие

Chișinău
2022
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ МОЛДОВЫ

Факультет Вычислительной Техники,


Информатики и Микроэлектроники

Степан БУЗУРНЮК, Василе МОРАРУ

ЧИСЛЕННЫЕ
МЕТОДЫ
Учебное пособие

Chișinău
Editura „Tehnica-UTM”
2022
CZU 519.6(075.8)
Б 904
Данное учебное пособие предназначено для студентов
факультета CIM и содержит темы входящие в дисциплину
“Численные методы”. В работе отражены основные методы и
алгоритмы численного решения нелинейных уравнений, систем
линейных и нелинейных уравнений, дифференциальных
уравнений, методы численного интегрирования,
интерполирования функций и численные методы одномерной
минимизации функций.
Работа структурирована в 9 главах, в которых приводятся
краткие теоретические сведения, иллюстрированные
решенными примерами. Каждый параграф заканчивается
заданиями для лабораторных работ.

Авторы: доктор, доцент Степан Бузурнюк


доктор, профессор Василе Морару
Рецензент: доктор, доцент Елеонора Тутунару
Ответственный редактор: доктор, доцент Михаил Кулев

DESCRIEREA CIP A CAMEREI NAŢIONALE A CĂRŢII DIN RM


Бузурнюк, Cтепан.
Численные методы: Учебное пособие / Cтепан
Бузурнюк, Василе Морару; ответственный редактор:
Михаил Кулев; Технический университет Молдовы,
Факультет Вычислительной Техники, Информатики и
Микроэлектроники.
– Chişinău: Tehnica-UTM, 2022. – 162 p.: des., tab.
Bibliogr.: p. 160 (8 tit.). – 50 ex.
ISBN 978-9975-45-760-6.
519.6(075.8)
Б 904

ISBN 978-9975-45-760-6 © UTM, 2022


Введение

Одним из основных прикладных разделов математики


является вычислительная математика, которая изучает
приближенные (численные) методы решения задач,
возникающие на практике и которые трудно (или даже
невозможно) решить точно, т.е. аналитически. В широком
смысле к вычислительной математике относится информатика,
т.е. задачи, связанные с применением компьютеров и с
программированием.
Пример 1. Рассмотрим простейшее кубическое уравнение

𝑥 3 − 𝑎 = 0,  𝑎 ∈ 𝑅.
3
Решение уравнения очевидное: 𝑥 = √𝑎. Это аналитическое
решение уравнения. Если число 𝑎 является точным кубом, то
корень извлекается точно и, соответственно, мы имеем точное
решение задачи. Иначе мы должны располагать методом
приближенного вычисления кубического корня из заданного
вещественного числа (например, используя формулу Тейлора
или степенные ряды).
Из этого примера следует, что даже если аналитическое
решение задачи известно, может возникнуть необходимость
применения каких-то приближенных методов для того, чтобы
получить окончательное решение.
Дисциплина “Численные методы” являются одним из
основных курсов в процессе подготовки студентов инженерного
профиля так как он позволяет понять принципы и
вычислительные методы, на которых разработаны пакеты
профессиональных программ, используемые инженером, такие
как пакеты: MATLAB, MATHCAD, MATHEMATICA и другие.
В процессе решения некоторой задачи на компьютере
необходимо пройти несколько этапов:

3
• Формулировка задачи. На данном этапе
осуществляется словесное описание рассматриваемой
задачи и формулируются цели, которые преследуются.
• Построение математической модели. Под моделью
понимают некоторое изоморфное представление
объективной реальности, которое позволяет получить
некоторое интуитивное, и вместе с тем точное,
отображение исследуемого процесса или явления.
Процесс построения модели называется
моделированием. При этом различают физические
модели, математические модели, графические модели и
т.д. Моделирование исследуемого процесса позволяет
раскрыть некоторые его связи и закономерности,
которые часто невозможно обнаружить другими
способами.
Математическая модель представляет собой
описание физического процесса с помощью неких
формул, систем алгебраических или дифференциальных
уравнений (обыкновенных или с частными
производными), которые должны достаточно точно
описывать физический объект. В общем случае
математическая модель имеет непрерывный вид,
например модель содержащие дифференциальные
уравнения. Это приводит к необходимости перейти к
дискретизации модели, с тем чтобы получить численное
решение задачи.
• Построение вычислительной модели. Решение
математической модели в численную осуществляют с
помощью численных методов, которые позволяют
решить поставленную задачу с помощью компьютера.
Полученное решение после дискретизации задачи с
применением численных методов должно быть таким,
чтобы при переходе к пределу получить решение
исходной непрерывной задачи. Кроме того, выбор

4
применяемых численных методов должен обладать
свойство устойчивости к малым изменениях параметров
задачи.
• Проектирование (разработка) алгоритма. Алгоритм
решения задачи осуществляет переход от
вычислительной модели к созданию программы для
компьютера. На данном этапе разработанный алгоритм
описывается с помощью псевдокода или блок-схем.
• Программирование и тестирование. На этом этапе по
разработанному алгоритму составляется программа на
выбранном языке программирования. После отладки
программы переходят к тестированию модели, т.е. к
проверке на соответствие полученных результатов
ожидаемых.

5
I. ПОГРЕШНОСТИ ЧИСЛЕННОГО РЕШЕНИЯ
ЗАДАЧ

1.1. Классификация погрешностей

Как было отмечено выше, методы вычислительной


математики направлены на поиск приближенного решения
задач, для которых применение точных аналитических методов
затруднено или в принципе невозможно. Для найденного, таким
образом, решение характерна, естественно, некоторая
погрешность. Источники погрешностей численного решения
задач могут быть следующие:
• Погрешность математической модели. Такие
погрешности появляются в тех случаях, когда
построенная математическая модель неадекватна
реальному явлению. Ошибки такого рода возникают в
процессе моделирования, когда при желании упростить
математическую модель пренебрегают некоторыми
свойствами явления, которые, на первый взгляд,
несущественны. Следует заметить, что исследование
таких погрешностей математической модели должно
проводится специалистами той научной дисциплины,
которая изучает рассматриваемый процесс или явление,
так как любая наука изучает не саму природу явления, а
некоторые модели этого явления, разработанные ее
самой.
• Погрешность исходных данных. Любая
математическая модель содержит некоторые входные
параметры, исходные значения которых либо заданы
неверно, либо определены в результате неких
экспериментов с недостаточной точностью.
• Погрешность метода. Если математическая модель уже
построена, численное ее решение может быть
осуществлено разными методами. Любой численный
метод характеризуется своей точностью, которая
6
зависит, как правило, от одного параметра (например, от
шага дискретизации). Изменение этого шага в сторону
его увеличения или уменьшения влияет на конечный
результат. Следует, однако, заметить, что вклад этого
типа погрешностей менее существен в общую
погрешность решения задачи, чем погрешности,
вносимые неточностью математической модели и
погрешностями исходных данных.
• Погрешность округления. Вычисления, производимые
с применением даже высокопроизводительных
компьютеров, производятся с конечным числом цифр,
вследствие чего как промежуточные, так и
окончательные результаты подвергаются процедуре
округления. Этот процесс приводит к такому
накапливанию ошибок, что полученное решение задачи
может оказаться в корне ошибочным. Даже нахождение
решения задачи по точным аналитическим методам с
помощью ЭВМ вследствие процедуры округления оно
становится приближенным решением.
Полная погрешность полученного численного решения
задачи является функцией от этих типов погрешностей, и она не
меньше наибольшей погрешности из них.
Погрешность, вносимая в ходе решения задачи первыми
двумя источниками, называется неустранимой. Эта
погрешность может присутствовать даже в тех случаях, когда
решение определено точно.

1.2. Абсолютная и относительная погрешности

Пусть 𝑥 ∗ приближенное значение точной величины Х.


Если 𝑥 ∗ < 𝑋, то 𝑥 ∗ является приближением 𝑋 по недостатку,
если же 𝑥 ∗ > 𝑋, то по избытку. Например, для  число 3.14
будет приближением по недостатку, в то время как число 3.15
является приближением числа  по избытку. Если 𝑥 ∗ является

7
приближение числа А, то пишут 𝑥 ∗ ≈ 𝐴. Обычно в процессе
вычислений точное значение величины (которое часто
неизвестно) заменяется ее приближением. Эта процедура
приводит к ошибке в расчетах.
Выражение ∆(𝑥 ∗ ) = |𝑋 − 𝑥 ∗ | называется абсолютной
погрешностью.
Абсолютная погрешность не позволяет получить
довольно точную оценку полученных результатов решения.
Если, например, пусть 𝑋=1, а 𝑥 ∗ =2 тогда ошибка ∆(𝑥 ∗ ) = 1
указывает на слабую точность измерений. В случае, когда 𝑋 =
1010 + 1, а 𝑥 ∗ = 1010 , то абсолютная погрешность ∆(𝑥 ∗ ) = 1
указывает на отличную точность вычислений. Этот пример
приводит к выводу о необходимости ввода понятия
относительной погрешности 𝛿(𝑥 ∗ ), которая равна отношению
абсолютной погрешности к модулю точного значения числа 𝑋,
(𝑋 ≠ 0) т.е.
|𝑋−𝑥 ∗ |
𝛿(𝑥 ∗ ) = |Х| .

Так, в предыдущем примере относительные погрешности


равны 0.5 и соответственно 10−10 .
С учетом того, что точное значение искомой величины
заранее неизвестно, на практике используется понятие
предельной абсолютной и относительной погрешностей.
Положительное число 𝜀 является предельной абсолютной
погрешностью приближенного числа 𝑥 ∗ , если |𝑋 − 𝑥 ∗ | ≤ 𝜀.
Соответственно, положительное число 𝑟 является предельной
относительной погрешностью приближенного числа 𝑥 ∗ , если
|𝑋 − 𝑥 ∗ |⁄|𝑥 ∗ | ≤ 𝑟.
Заметим, что абсолютная погрешность имеет ту же
размерность что и 𝑋 , в то время как относительная погрешность
есть безразмерная величина.
Из формулы абсолютной погрешности следует двойное
неравенство
𝑥 ∗ − 𝜀 ≤ 𝑥 ∗ ≤ 𝑥 ∗ + 𝜀.
8
Отсюда получаем что 𝑥 ∗ − 𝜀 есть приближение числа 𝑋 по
недостатку, а 𝑥 ∗ + 𝜀 -приближение числа 𝑋 по избытку.
Любое приближенное число x * представимо в виде

𝑥 ∗ = 𝑐1 ⋅ 10𝑚 + 𝑐2 ⋅ 10𝑚−1 + ⋯ + 𝑐𝑚−𝑛+1 ⋅ 10𝑚−𝑛+1 ,

где 𝑐1 , 𝑐2 , … , 𝑐𝑚−𝑛+1 десятичные цифры приближенного числа


которые называются значащими цифрами. Нули в начале
числа используются для обозначения позиции десятичной
запятой. Т.е. первая слева отличная от нуля цифра и все
расположенные справа цифры являются значащими цирами.
Следовательно значащей цифрой приближенного числа
называется всякая цифра в его десятичным изображении,
отличная от нуля и нуль, если он содержится между значащими
цифрами или является представителем сохраненного
десятичного разряда. Цифра 𝑐𝑘 называется верной, если

∆(𝑥 ∗ ) < 10𝑘 .

Десятичная запись приближенного числа должна


содержать только верные цифры, что позволяет сразу
определить предельную абсолютную погрешность, с которой
оно найдено. Цифры, не являющиеся верными, называются
сомнительными цифрами.
Пример. Приближенное число

𝑥 ∗ = 3 ⋅ 101 + 6 ⋅ 100 + 0 ⋅ 10−1 + 5 ⋅ 10−2 + 8 ⋅ 10−3 = 36.058

имеет пять значащих цифр, а у числа

𝑦 ∗ = −2 ⋅ 10−3 + 8 ⋅ 10−4 + 0 ⋅ 10−5 = −0.00280

количество значащих цифр равно трем (первые три нуля


незначащие).
9
Если абсолютная погрешность числа 𝑥 ∗ не превосходит
−𝑡
0.5 ⋅ 10 , тогда говорят, что это число имеет t верных
десятичных цифр. В случае когда абсолютная погрешность
числа не задана, тогда полагают что в записи этого числа все
цифры верные, включая и последние нули. Например, числа
0.0345 и 0.034500 различны, так как погрешность первого из них
не превосходит 10−4 , в то время как у второго числа
погрешность меньше 10−6 .
Примеры. 1) У числа 0.010224  0.000004 пять
правильных цифр и четыре значащих;
2) В записи числа 0.010224  0.000006 четыре верных
цифр и две значащие цифры (максимальное значение данного
числа может быть равной 0.010230, в то время как минимальное
−0.010218 и, следовательно, последние две цифры
сомнительны).
Количество правильных десятичных цифр указывают на
величину абсолютной погрешности, а число значащих цифр – на
величину относительной погрешности.

1.3. Действия с приближенными числами

В процессе вычисление имеет место накапливание


погрешностей. Пусть приближенные значения чисел 𝑋 и 𝑌
равны 𝑥 ∗ и 𝑦 ∗ и при этом абсолютные погрешности
соответственно равны 𝜀𝑥 и 𝜀𝑦 , а это означает что

𝑋 = 𝑥 ∗ ± 𝜀𝑥 , 𝑌 = 𝑦 ∗ ± 𝜀𝑦 .

Отсюда следуют неравенства:

𝑥 ∗ − 𝜀𝑥 + 𝑦 ∗ − 𝜀𝑦 ≤ 𝑋 + 𝑌 ≤ 𝑥 ∗ + 𝜀𝑥 + 𝑦 ∗ + 𝜀𝑦 ,
𝑥 ∗ + 𝑦 ∗ − (𝜀𝑥 + 𝜀𝑦 ) ≤ 𝑋 + 𝑌 ≤ 𝑥 ∗ + 𝑦 ∗ + (𝜀𝑥 + 𝜀𝑦 )

из которых получаем: 𝑋 + 𝑌 = 𝑥 ∗ + 𝑦 ∗ ± (𝜀𝑥 + 𝜀𝑦 ).


10
Аналогично при вычитании этих чисел имеем

𝑋 − 𝑌 = 𝑥 ∗ − 𝑦 ∗ ± (𝜀𝑥 + 𝜀𝑦 ).

Эти соображения приводят к следующей теореме.


Теорема 1.1. Абсолютная погрешность алгебраической
суммы нескольких приближенных чисел не превышает суммы
абсолютных погрешностей этих чисел.
Для двух чисел имеем: ∆(𝑥 ∗ ± 𝑦 ∗ ) ≤ ∆(𝑥 ∗ ) + ∆(𝑦 ∗ )
Из этой теоремы следует, что абсолютная погрешность
алгебраической суммы не меньше абсолютной погрешности
наименее точного из слагаемых и следовательно увеличение
точности за счет других слагаемых невозможно. Поэтому нет
смысла в сохранении лишних десятичных знаков в более точных
слагаемых.
Отсюда вытекает следующее правило сложения и
вычитания приближенных чисел:
• выделяется наименее точное число (или числа), т. е.
такое, в десятичной записи у которого наименьшее
число верных десятичных знаков;
• остальные числа округляются так, чтобы каждое из них
содержало на один знак больше, чем выделенное ранее
число;
• выполняются операции сложения и вычитания с учетом
сохраненных знаков;
• результат округляют до предпоследнего знака.
Отметим что процедура округления числа такова: 1) если
первая из отбрасываемых цифр меньше 5, то сохраняемые
десятичные знаки оставляют без изменения; 2) если первая из
отбрасываемых цифр больше 5, то последний из сохраняемых
знаков увеличивают на 1; 3) если первая из отбрасываемых цифр
равна 5, а среди следующих за ней цифр есть отличные от нуля,
то последний из сохраняемых знаков увеличивают на 1; 4) если
первая из отбрасываемых цифр равна 5, а все последующие —
11
нули, то последний из сохраняемых десятичных знаков
увеличивают на 1, когда он нечетен, и сохраняют неизменным,
когда он четен (правило четной цифры).
Пример. Найти сумму приближенных чисел x = 4.17, y =
=7.0214, u = 52.2346, v = 6.00063.
Решение. Будем считать, что все цифры в этих числах
верные. Наименее точное х, поскольку в нем лишь два верных
десятичных знаков. Округлим остальные слагаемые до трех
знаков после запятой: x = 4.17, y = 7.021, u = 52.235, v = 6.001.
Сумма этих чисел равна 69.427. Округляя результат до двух
знаков после запятой, получаем число окончательный ответ:
69.43.
Для относительной погрешности имеем оценку

𝛿(𝑥 ∗ ± 𝑦 ∗ ) = 𝑚𝑎𝑥(𝛿(𝑥 ∗ ), 𝛿(𝑦 ∗ )).

Можно показать при умножении и делении приближенных


чисел предельная абсолютная погрешность результата равна
сумме предельных абсолютных погрешностей множителей.
Теорема 1.2. Относительная погрешность произведения
(частного) приближенных чисел не превышает суммы
относительных погрешностей этих чисел.
Например, для трех чисел имеем:

𝛿(𝑥 ∗ /(𝑦 ∗ ⋅ 𝑧 ∗ )) ≤ 𝛿(𝑥 ∗ ) + 𝛿(𝑦 ∗ ) + 𝛿(𝑧 ∗ ).

Из теоремы следует, что относительная погрешность


произведения и частного не может быть меньше относительной
погрешности числа, имеющего меньше всего верных значащих
цифр. Отсюда следует что так как относительная погрешность
числа определяется количеством его верных значащих цифр, то
при умножении и делении нет смысла оставлять значащих цифр
больше, чем их было в числе с наименьшим количеством верных
значащих цифр.

12
Замечание. Если положительные приближенные числа
𝑥 и 𝑦 приблизительно равны и ∆(𝑥 ∗ ), ∆(𝑦 ∗ ) их абсолютные
∗ ∗

погрешности, то

∆(𝑥 ∗ − 𝑦 ∗ ) ∆(𝑥 ∗ ) + ∆(𝑦 ∗ )


𝛿(𝑥 ∗ − 𝑦 ∗ ) = ≤
|𝑥 ∗ − 𝑦 ∗ | |𝑥 ∗ − 𝑦 ∗ |

и относительная погрешность может оказаться сколь угодно


большой (разность 𝑥 ∗ − 𝑦 ∗ будет близкой к нулю). Таким
образом, предельная относительная погрешность результата
оказывается достаточно большой, в то время как относительные
погрешности уменьшаемого и вычитаемого остаются малыми. В
таких случаях говорят, что потеряна точность.

Примеры.
1. Пусть

x=0.1234±0.5  10−4 и y=0.1233±0.5  10−4

Разность этих чисел равна

x−y = 0.0001±0.0001,

т.е. предельная абсолютная погрешность оказалось равной


ожидаемому результату вычитания. Для того чтобы в процессе
вычислений при вычитании близких чисел не происходило
потери точности следует преобразовать выражения, которые
дают этот эффект.
2. Уравнение

𝑥 2 + 1000.01𝑥 − 2.5245315 = 0

13
имеет один из корней равный 𝑥1 = 0.0025245. Но если
использовать формулу решения квадратного уравнения
получим корень

𝑥1 = 0.5 ⋅ (−1000.01 + √(1000.01)2 + 4 ⋅ 2.5245315).

Осуществляя вычисления с восьмью значащими цифрами,


получим решение

𝑥1 = 0.5 ⋅ (−1000.01 + 1000.0150) = 0.0025

с двумя значащими знаками.


Однако, изменив расчетную формулу, получим решение
без потери точности:

−1000.01 + √(1000.01)2 + 4 ⋅ 2.5245315


𝑥1 = ×
2

1000.01 + √(1000.01)2 + 4 ⋅ 2.5245315


× =
1000.01 + √(1000.01)2 + 4 ⋅ 2.5245315

2 ⋅ 2.524315
= = 0.0025245.
1000.01 + √(1000.01)2 + 4 ⋅ 2.5245315

14
II. ЧИСЛЕННОЕ РЕШЕНИЕ АЛГЕБРАИЧЕСКИХ И
ТРАНСЦЕНДЕНТНЫХ УРАВНЕНИЙ

Большинство задач, которые встречаются в инженерной


практике, являются нелинейными. В простейшем случае
появляется необходимость в решении некоторого
алгебраического или трансцендентного уравнения, зависящего
от одной переменной которое невозможно решить аналитически
известными методами математического анализа.
Таким образом, ставится следующая задача: для
непрерывной и дифференцируемой функции на отрезке [𝑎, 𝑏]

𝑓: 𝑥 → 𝑓(𝑥)
[𝑎, 𝑏] → 𝑅

определить корни. Другими словами, требуется найти числа


𝑥1 , х2 , . . . , хк , которые удовлетворяют уравнение𝑓(𝑥) = 0.
Уравнения такого рода могут быть двух типов:
алгебраические и трансцендентные.
• Алгебраическое уравнение, это уравнение, в котором
функция f полиномиальная, т.е. имеет следующий вид:

𝑎0 𝑥 𝑛 + 𝑎1 𝑥 𝑛−1 + ⋯ + 𝑎𝑛−1 𝑥 + 𝑎𝑛 = 0.

Такие уравнения при n>4 невозможно решить с помощью


формул, выражающих корни уравнения через его
коэффициенты (за исключением частных случаев,
например, уравнение 𝑥 6 + 4𝑥 3 + 3 = 0). Согласно
теореме Гаусса (основная теорема алгебры),
алгебраическое уравнение имеет n корней, которые могут
быть как действительные, так и комплексные.
• Трансцендентное уравнение кроме степеней
неизвестной х содержат и другие функции от этой
переменной. Для уравнений этого типа в общем случае
15
теоретически не обосновано существование корней.
Трансцендентное уравнение может иметь один или
несколько корней, а может не иметь ни одного корня.

Методы решения нелинейных уравнений делятся на два


класса: а) прямые методы и б) итерационные методы.
Прямые методы позволяют найти точное решение
уравнения, применив определенную формулу. Такие уравнения
рассматриваются в школьном курсе математики (квадратные
уравнения, логарифмические, показательные и
тригонометрические уравнения).
На практике чаще возникает необходимость решение
уравнения, которое не относятся к вышеуказанным типов
уравнений, а значит необходимо использовать другие способы
поиска корней, вообще говоря, приближенные.
Итерационные методы позволяют найти решение с
заранее заданной точностью, используя некоторую процедуру
поиска решения уравнения, которая повторяется в цикле.
Решение уравнения f(x)=0 итерационными методами
проводят в двух этапах: а) отделение корней; б) их
приближенное вычисление.
Отделение корней состоит в процедуре определения
таких небольших отрезков [𝑎, 𝑏] числовой оси на которых
имеется в точности один корень рассматриваемого уравнения.
Такие отрезки [𝑎, 𝑏] называются отрезками изоляции.
Считая, что отрезок, содержащий определенный корень
уравнения изолирован, начиная с какой-то точки отрезка,
последовательно (в цикле) уточняется до заданной точности
значение корня уравнения.

2.1. Отделение корней

Пусть требуется найти корни 𝜉𝑖 уравнения f(x)=0.


Изоляция корней может проводится различными методами.
Рассмотрим некоторые из них.
16
а) Графический метод. Уравнение f(x)=0 приводят к
эквивалентному виду 𝜑(𝑥) = 𝑔(𝑥). Очевидно, решение
последнего уравнения будет и решением исходного. Решением
преобразованного уравнения будет абсцисса точки пересечения
графиков функций 𝑦 = 𝜑(𝑥) и 𝑦 = 𝑔(𝑥).
Пример. Отделить корни трансцендентного уравнения
𝑥
2 − 𝑐𝑜𝑠 𝑥 − 0.5 = 0, расположенные на интервале (−4,4).
Решение. Преобразуем исходное уравнение к виду
𝑥
2 − 0.5 = 𝑐𝑜𝑠 𝑥. Далее строим графики функций 𝑦 = 𝑐𝑜𝑠 𝑥 и
𝑦 = 2𝑥 − 0.5 (рис. 2.1). Точки 𝑀1 (𝜉1 , 𝜂1 ) и 𝑀2 (𝜉2 , 𝜂2 )
являются точками пересечения графиков. Следовательно,
исходное уравнение имеет два действительных корня:

𝜉1 ∈ (−2,1) и 𝜉2 ∈ (0,1),

т.е. корни отделены и отрезки изоляции [−2,1] и [0,1] .


Замечание. Очевидно, что приведение исходного
уравнения к другому эквивалентному виду можно выполнить
многими способами. Но для удобства следует осуществить то
преобразование таким образом, чтобы легко было построить
y

𝑦 = 2𝑥 − 0.5
M2

𝑦 = cos 𝑥
M1
x
-2 1 -1 2 2
2

Рис. 2.1

17
графики вспомогательных функций y=(x) и y=g(x).
б) Аналитический метод. Аналитический метод основан
на теореме математического анализа – теореме Больцано-
Коши: если непрерывная функция меняет знак на концах
отрезка [𝑎, 𝑏] (т.е. 𝑓(𝑎) ⋅ 𝑓(𝑏) < 0), то на этом отрезке, по
крайней мере, существует один корень уравнения 𝑓(𝑥) = 0.
Используя теорему, можно построить простой метод
отделения корней на конечном отрезке. Отрезок, на котором
ищется корень, разбивается на n отрезков меньшей длины
[𝑎, 𝑏1 ], [𝑏1 , 𝑏2 ], … , [𝑏𝑛−1 , 𝑏] после чего проводится анализ
произведения функции на концах этих отрезков и выделяются
те отрезки, где данное произведение отрицательно или равно
нулю (корень в конце отрезка). Таким образом, выполняются
следующие действия:
1. Задается отрезок [𝑎, 𝑏], на котором необходимо отделить
корни функции 𝑓(𝑥) и число n разбиений отрезка на
меньшие. Вычисляется длина малых отрезков

(𝑏 − 𝑎)
ℎ=
𝑛

2. Определяются точки 𝑥𝑖 = 𝑎 + ℎ ⋅ 𝑖,  𝑖 = 0,1, . . . , 𝑛.


3. Вычисляются произведения 𝑓(𝑥𝑖 ) ⋅ 𝑓(𝑥𝑖+1 ).
4. Выделяются те отрезки, на которых эти произведения
отрицательны или равны нулю. По теореме Больцано на
этих отрезках имеется, по крайней мере, один корень.
5. Число n удваивается, и процедура повторяется.
Эти действия продолжаются до тех пор, пока длина
отрезка такова, что с большей вероятностью можно полагать
наличие единственных корней на найденных отрезках.
Заметим, однако, что функция 𝑓(𝑥) может иметь такой
вид, что, используя изложенную процедуру, некоторые корни
будут потеряны.

18
Пример. Применив указанный метод, отделить корни
трансцендентного уравнения 2𝑥 − 𝑐𝑜𝑠 𝑥 − 0.5 = 0.
Решение. Пусть [𝑎, 𝑏] = [−4,4] и разобьем этот отрезок
на 8 частей точками -3,-2,-1,0,1,2,3. Вычисляем значения
функции в этих точках и составляем таблицу

x −4 −3 −2 −1 0 1 2 3 4

f(x) 0.21 0.61 0.16 -0.54 -0.5 0.95 3.91 8.48 16.15

Из таблицы видно, что изменение знаков наблюдается на


отрезках [−2,1] и [0,1]. Однако может оказаться, что корни на
этих интервалах не единственные, поэтому повторим
процедуру, увеличивая число элементарных отрезков. Получаем
новую таблицу значений

xi −4 −3.5 −3 −2.5 −2.0 −1.5 −1.0 −0.5

f ( xi ) 0.21 0.52 0.61 0.47 0.16 −0.21 −0.54 −0.67

xi 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0

f ( xi ) −0.5 0.03 0.95 2.25 3.91 5.97 8.49 11.75 16.15

Из последней таблицы следует, что с большой


вероятностью корни отделены и нет необходимости увеличить
число разбиений отрезка [−4,4]. Таким образом, отрезки
изоляции корней - отрезки [−2, −1.5] и [0, 0.5]
Общего аналитического метода отделения корней,
который может использоваться для любого уравнения, нет. Но
19
на практике, когда осуществляется изолирование корней, в
каждом конкретном случае используется определенные
теоремы математического анализа, которые упрощают решение
этой задачи.
Одной такой теоремы является теорема Ролля: если
функция 𝑓(𝑥) непрерывна на отрезке [𝑎, 𝑏] и дифференцируема
на интервале (𝑎, 𝑏) и принимает равные значения на концах
отрезка, тогда существует точка с ∈ (𝑎, 𝑏), такая что 𝑓 ′ (𝑐) = 0.
Из теоремы следует, что между двумя
последовательными действительными корнями первой
прозводной функции 𝑓(𝑥) имеется не более одного корня
уравнения 𝑓(𝑥) = 0 и наоборот, между двумя корнями функции
𝑓(𝑥) имеется не более одного корня уравнения 𝑓 ′ (𝑥) = 0. Тогда,
если расположить корни xi производной 𝑓 ′ (𝑥) в возрастающем
порядке, т.е. 𝑎 < 𝑥1 < 𝑥2 < ⋯ < 𝑥𝑘 < 𝑏 и составить
последовательность 𝑓(𝑎), 𝑓(𝑥1 ), 𝑓(𝑥2 ), … , 𝑓(𝑥𝑘 ), 𝑓(𝑏), то
оказывается, что уравнение 𝑓(𝑥) = 0 имеет столько
действительных корней, сколько перемен знаков наблюдается в
этой последовательности.
Пример. Определить отрезки изоляции уравнения

𝑥 4 − 𝑥 3 − 2𝑥 2 + 3𝑥 − 3 = 0.

Решение. Производная функции

𝑓 ′ (𝑥) = 4𝑥 3 (𝑥 2 − 1) − 3(𝑥 2 − 1) = (𝑥 2 − 1)(4𝑥 − 3)


3
обращается в ноль в точках 𝑥1 = −1, 𝑥2 = , 𝑥3 = 1. С учетом
4
того, что производная 𝑓 ′ (𝑥) на интервалах (−∞, −2) и
(2, ∞) знакопостоянная, рассмотрим ее знаки на отрезке [−2,2].
Составляем таблицу значений функции 𝑓(𝑥) в этих
точках:

20
x −2 −1 0.75 1 2

f(x) 7 −6 −1.98 −2 3

Так как на данном интервале имеются две перемены


знаков в последовательности значений функции f(x) на
промежутке (2,2), то уравнение 𝑥 4 − 𝑥 3 − 2𝑥 2 + 3𝑥 − 3 = 0
имеет два действительных корня: 𝜉1 ∈ (−2, −1) и 𝜉2 ∈ (1,2).
Корни изолированы.

2.2. Метод половинного деления (метод дихотомии)

Пусть уравнение 𝑓(𝑥) = 0. имеет на отрезке [𝑎, 𝑏]


единственное решение. При этом функция f(x) непрерывна на
данном отрезке и 𝑓(𝑎) ⋅ 𝑓(𝑏) < 0. Находим середину отрезка -
(𝑎+𝑏)
точку 𝑐 = . Если 𝑓(𝑐) = 0, тогда точка c является корнем
2
уравнения. Если же 𝑓(𝑐) ≠ 0,, тогда очевидно, что корень
находится на том из отрезков [𝑎, 𝑐] или [𝑐, 𝑏] на котором
функция принимает на концах значения противоположных
знаков. Пусть новый суженный отрезок [𝑎1 , 𝑏1 ], где
𝑓(𝑎1 ) ⋅ 𝑓(𝑏1 ) < 0 (здесь 𝑎1 = 𝑎, 𝑏1 = 𝑐 если 𝑓(𝑎) ⋅ 𝑓(с) < 0 и
𝑎1 = 𝑐, 𝑏1 = 𝑏 если 𝑓(𝑐) ⋅ 𝑓(𝑏) < 0). Полученный отрезок
снова делим пополам и т.д. В результате либо получаем точный
корень исходного уравнения (точку 𝑐), либо бесконечную
последовательность вложенных отрезков [𝑎1 , 𝑏1 ] ⊃ [𝑎2 , 𝑏2 ] ⊃
𝑏−𝑎
⋯ ⊃ [𝑎𝑛 , 𝑏𝑛 ] ⊃ ⋯ таких, что 𝑓(𝑎𝑛 ) ⋅ 𝑓(𝑏𝑛 ) < 0 и 𝑏𝑛 − 𝑎𝑛 = 𝑛 .
2
Так как последовательности {𝑎𝑛 } и {𝑏𝑛 } монотонные (первая
возрастающая, а вторая убывающая), то существует их общий
предел при n →  :

lim 𝑎𝑛 = lim 𝑏𝑛 = 𝜉 .
𝑛→∞ 𝑛→∞

21
В случае практической реализации метода определения
корня по методу половинного деления отрезка при заданной
точности решения 𝜀 признаком конца вычислений является
выполнение неравенства |𝑏𝑛 − 𝑎𝑛 | < 2𝜀. При этом можно
привести оценку необходимых числа итераций п для
достижения заданной точности 𝜀:

𝑏−𝑎
𝑛 = [log 2 ]+1
𝜀
где [x] – целая часть х.
Ниже приводится рекурсивная функция вычисления
корня нелинейного уравнения 𝑓(𝑥) = 0 по методу половинного
деления.
/*Metod polovinnogo delenia c recursiei.
contor-globalinyi parametr*/

double Bisect(double a,double b,double Eps)


{double fa=funct(a), fb=funct(b),c, fc;
if(fa*fb>0||(contor>100))
{printf("\n Interval incorect!\t%f\n",c);
exit(0);
}
c=(a+b)/2;fc=funct(c);
if((fc==0.0)||((b-a)<Eps))return c;
return (fa*fc<0.0)?Bisect(a,c,Eps)
:Bisect(c,b,Eps);
}

2.3. Метод последовательных приближений (метод


простых итераций)

Пусть уравнение 𝑓(𝑥) = 0, где 𝑓(𝑥) непрерывная и,


дифференцируемая функция, представимо в следующем
эквивалентном виде 𝑥 = 𝜑(𝑥). Возьмем произвольное, близкое
к решению значение 𝑥0 из отрезка [𝑎, 𝑏] и вычисляем
следующее приближение 𝑥1 = 𝜑(𝑥0 ). Для этого значения

22
определяем 𝑥2 = 𝜑(𝑥1 ), 𝑥3 = 𝜑(𝑥2 ) и т.д. В итоге получаем
последовательность значений

𝑥1 = 𝜑(𝑥0 ), 𝑥2 = 𝜑(𝑥1 ), ⋯ , 𝑥𝑛 = 𝜑(𝑥𝑛−1 ), ⋯,

т.е. выполняются вычисления по формуле

𝑥𝑛 = 𝜑(𝑥𝑛−1 ), ( 𝑛 = 1,2, ⋯ ).

Если для последовательности {𝑥𝑛 } существует предел

lim 𝑥𝑛 = 𝜉,
𝑛→∞

то 𝜉 = 𝜑(𝜉) и  является корнем исходного уравнения.


Геометрический смысл решения уравнения 𝑥 = 𝜑(𝑥)
состоит в том, что корень уравнения является абсциссой точки
пересечения прямой 𝑦 = 𝑥 с графиком функции 𝑦 = 𝜑(𝑥). Тогда
процедура графического метода состоит в последовательном
переходе из точки на прямой к точке на кривой (Рис. 2.1-2.4).

23
Однако, как можно убедиться из Рис. 2.3, 2.4 это
движение не всегда приводит к решению уравнения (точке
пересечения графиков). Для сходимости метода необходимо
указать условия, при которых оно имеет место.

Теорема 2.1 (достаточные условия сходимости). Пусть


функция 𝜑(𝑥) определена и дифференцируема на отрезке [𝑎, 𝑏]
и 𝜑(𝑥) ∈ [𝑎, 𝑏] для любого 𝑥 ∈ [𝑎, 𝑏]. Тогда если существует
положительное число  и такое что |𝜑′(𝑥)| ≤ 𝛼 < 1 для любого
𝑥 ∈ [𝑎, 𝑏], то:
a) процесс 𝑥𝑛 = 𝜑(х𝑛−1 ) сходится к единственному
решению  , независимо от начального значения;
b) погрешность решения определяется неравенством

𝛼 𝛼𝑘
|𝑥𝑛 − 𝜉| ≤ |𝑥𝑛 − 𝑥𝑛−1 | ≤ |𝑥1 − 𝑥0 |, n  1.
1−𝛼 1−𝛼

Эта теорема дает только достаточные условия, которые


не являются и необходимыми. Т.е. могут встречаться функции
𝜑(𝑥) для которых |𝜑′ (𝑥)| = 1 на интервале [𝑎, 𝑏], но тем не
менее итерационный процесс будет сходящихся.
Замечание. Так как итерационный процесс можно
продолжить бесконечно, на практике признаком окончания

24
вычислений при заданной точности 𝜀 является достижение
неравенства
𝛼
⋅ |𝑥𝑛+1 − 𝑥𝑛 |<.
1−𝛼

Однако в большинстве случаев очень сложно оценить


значение параметра  .

Пример. Найти корень уравнения 𝑥 3 − 2𝑥 − 9 = 0 с


точностью до 5 значащих цифр.
Решение. Изолируя корни графическим методом,
находим, что на отрезке [2,3] имеется действительный корень.
Для применения метода простых итераций, необходимо перейти
к эквивалентной форме уравнения, т.е. к виду 𝑥 = 𝜑(𝑥). Таких
преобразований можно найти для конкретного уравнения в
большом количестве. Для данного уравнения, на первый взгляд,
такую форму очень просто найти, а именно 𝑥 = (9 − 𝑥 3 )⁄2.
Однако для сходимости метода функция 𝜑(𝑥) должна еще
удовлетворять условие |𝜑′(𝑥)| < 1. Но в рассматриваемом
случае на интервале [2,3] производная ((9−x3)/2)= −3x2/2 по
абсолютной величине больше 1, и нам не удастся получить
решение данного уравнения при таком подборе функции 𝜑(𝑥).
Заменим исходное уравнение следующим равносильным:
3 3
𝑥 = √2𝑥 + 9. Здесь функция 𝜑(𝑥) = √2𝑥 + 9, у которой
2 1
производная 𝜑′ (𝑥) = ⋅ 3 2
. Нетрудно убедиться, что на
3 √(2𝑥+9)
отрезке [2,3] |𝜑′(𝑥)| < 1, а значит, применение метода итераций
приведет к решению уравнения. Возьмем произвольную точку
из найденного интервала изолирования. Пусть, для
определенности 𝑥0 =2.5. Тогда
3 3
𝑥1 = 𝜑(х0 ) = √2 ⋅ 2.5 + 9 = √19 = 2.668402;
3
𝑥2 = 𝜑(х1 ) = √2 ⋅ 2.668402 + 9 = 2.429317;

25
3
𝑥3 = 𝜑(х2 ) = √2 ⋅ 2.429317 + 9 = 2.402003;
3
𝑥4 = 𝜑(х3 ) = √2 ⋅ 2.402003 + 9 = 2.398842;
3
𝑥5 = 𝜑(х4 ) = √2 ⋅ 2.398842 + 9 = 2.398476;
3
𝑥6 = 𝜑(х5 ) = √2 ⋅ 2.398842 + 9 = 2.398434.
2 1
Оценим погрешность. Очевидно, |𝜑′(𝑥)| < ⋅ 3 ≈ 0.12 =
3 √(2⋅2+9)2
= 𝛼 < 1. Тогда, т.к. при 𝛼 < 0.5 имеет место неравенство
|𝑥𝑛 − 𝜉| ≤ |𝑥𝑛 − 𝑥𝑛−1 |, то |𝑥6 − 𝜉| ≤ |𝑥6 − 𝑥5 | = 0.000042 и
приближенное значение корня 𝜉 ≈ 2.398434.
Заметим, что после 6 итерации |𝑥6 − 𝑥5 | = 0.000042
абсолютная погрешность решения составляет

Δ = 0.000042 < 0.00005

Ниже приводится функция для вычисления корня


нелинейного уравнения по методу простых итераций.

/*х0 – начальное значение корня; х1 – приближенное


значение корня; Fi – функция из приведенного
уравнения x=Fi(x);K –число выполненных итераций для
получения решения с заданной точностью;Nmax –
максимальное допустимое число итераций (для
исключения зацикливания в случае расходимости
процесса);Eps –точность решения; Еrr – переменная
равная 0 если решение найдено и 1 если решение не
найдено с заданной точностью */

void Pr_iter(float *x1,float x0,float Eps,int


Nmax,int *K,int *Err)
{double y;
y=x0;*Err=0;
while (1)
26
{
x0=y;
y=Fi(x0);
(*K)++;
if(*K>=Nmax){ *Err=1; break;}
if(fabs(y-x0)<Eps){ *Err=0; break;}
} *x1=x0;
}
2.4. Метод Ньютона (касательных)

Рассмотрим алгебраическое или трансцендентное


уравнение 𝑓(𝑥) = 0, где 𝑓(𝑥) непрерывная и дважды
дифференцируемая функция, причем на интервале
изолирования [𝑎, 𝑏] эти производные знакопостоянны.
Рассмотрим метод Ньютона для уравнений такого класса,
который заключается в применении следующей формулы

𝑓(𝑥𝑛 )
𝑥𝑛+1 = 𝑥𝑛 − ,  𝑛 = 0,1,2, …,
𝑓′ (𝑥𝑛 )

где 𝑥0 точка отрезка [𝑎, 𝑏]. Ввиду того, что точка 𝑥𝑛+1 это
абцисса точки пересечения касательной проведенной к графику
кривой 𝑦 = 𝑓(𝑥) в точке (𝑥𝑛 , 𝑓(𝑥𝑛 )), метод называется методом
касательных. Геометрический смысл определения корня по
методу Ньютона можно проследить по рисункам 2.5-2.8.

Рис.2.5 Рис.2.6
27
Следует отметить, что, вообще говоря, метод Ньютона
является частным случаем метода последовательных
приближений, в котором функция 𝜑(𝑥) имеет вид
𝑓(𝑥)
𝜑(𝑥) = 𝑥 − ′ .
𝑓 (𝑥)

Теорема 2.2. Пусть функция 𝑓(𝑥) определена и дважды


дифференцируема на [𝑎, 𝑏] и пусть существуют положительные
числа m и M такие, что |𝑓 ′ (𝑥)| ≥ 𝑚 >0, |𝑓 ″ (𝑥)| < 𝑀 < ∞ для
∀𝑥 ∈ [𝑎, 𝑏], а  корень уравнения 𝑓(𝑥) = 0. Тогда
последовательность приближений 𝑥0 , 𝑥1 , … , 𝑥𝑛 , . .. сходится к
решению , если начальное приближение принадлежит
некоторой окрестности . При этом погрешность вычислений
задается неравенством
𝑀
|𝑥𝑛 − 𝜉| ≤ 𝐶 ⋅ |𝑥𝑛 − 𝑥𝑛−1 |2 , 𝐶 = , n=1,2…
2𝑚

Замечание. При практическом использовании метода


Ньютона, следует придерживаться правилу: при выборе
начального приближения 𝑥0 необходимо выбрать такую точку
отрезка [𝑎, 𝑏], для которого выполнено неравенство

𝑓(𝑥0 ) ⋅ 𝑓 ″ (𝑥0 ) > 0.

Рис.2.7 Рис.2.8

28
Недостатком метода Ньютона является то, что хотя
он имеет квадратичную скорость сходимости это
обеспечивается при удачном подборе начального
приближенного решения 𝑥0 , близкого к корню  уравнения.
Если такое приближение плохо подобрано, тогда скорость
сходимость метода невысокая или даже имеет место его
расходимость.
При сделанных предположениях относительно функции
, метод Ньютона сходится к точному решению  уравнения,
если только начальное приближение 𝑥0 , вообще говоря,
достаточно близко к этому решению.

Пример 1. Областью сходимости метода Ньютона для


уравнения
𝑥3 − 𝑥 = 0

√5 √5 √5
является интервал (− , ) (рис 2.9). Если х0 = ± , тогда
5 5 5
получим следующую последовательность приближений:

х1 = −х0 , х2 = −х1 , х3 = −х2 , ⋯,

т.е. осциллирующую последовательность. Если же выберем в


√3
качестве начального приближения точки х0 = ± , тогда
3
производная функции в этих точках обращается в нуль
(𝑓 ′ (х0 ) = 0) и, следовательно, касательные к кривой
√3
параллельны оси абсцисс. Для х0 = − последовательность
3
√ 3
приближений {хп } сходится к корню =−1. При х0 =
3
последовательность {хп } сходится к корню =1. В то же время,
√3
выбор начального приближения х0 > , обеспечивает
3
сходимость итераций к числу =1.

29
Рис. 2.9 Рис. 2.10

Часто, особенно когда вычисление производной функции


𝑓(𝑥) сопряжено с большим объемом вычислений, используется
модификация метода Ньютона - метод Ньютона-Канторовича,
вычислительная формула для которой следующая:

𝑓(𝑥𝑛 )
𝑥𝑛+1 = 𝑥𝑛 − ,  𝑛 = 0,1,2, …
𝑓 ′ (𝑥0 )

В этом методе нет необходимости вычисления на каждом шаге


производной, а только при выполнении первой итерации. Это
особенно эффективно, когда производная функции имеет
сложную аналитическую форму. Геометрическая
интерпретация данной модификации приводится на рис. 2.10.
Пример 2. Найти методом касательных корень уравнения
𝑥 − 3𝑥𝑒 −𝑥 − 1 = 0 на отрезке [1.0,1.5] с точностью 𝜀 = 10−3 .
3

Решение. Вычисляем производные:


𝑓 ′ (𝑥) = 3𝑥 2 − 3𝑒 −𝑥 + 3𝑥𝑒 −𝑥 ;
𝑓 ′′(𝑥) = 6𝑥 + 6𝑒 −𝑥 − 3𝑥𝑒 −𝑥 .
Выбираем начальное приближение, например, 𝑥0 =1.5.
Тогда на правом конце отрезка имеем

𝑓(𝑥0 ) ⋅ 𝑓 ″ (𝑥0 ) = 𝑓(1.5) ⋅ 𝑓 ″ (1.5) = 12.79 > 0.

Условия, которым должна удовлетворять начальное


приближение для сходимости метода выполнены и тогда по
формуле Ньютона последовательно имеем:

30
𝑓(𝑥0 )
𝑥1 = 𝑥0 − = 1.30652;
𝑓′ (𝑥0 )
𝑓(𝑥1 )
𝑥2 = 𝑥1 − = 1.27506;
𝑓′ (𝑥1 )
𝑓(𝑥2 )
𝑥3 = 𝑥2 − = 1.27424.
𝑓′ (𝑥2 )

Заданная точность достигнута и значит искомое решение


𝑥 = 1.27422.

Пример 3. Вычислить квадратный корень √2.


Решение. Рассмотрим уравнение х2 − 2 = 0. Согласно
формуле Ньютона
𝑓(хп )
хп+1 = хп − ′
𝑓 (хп )
имеем:
хп 2 −2 1 2
хп+1 = хп − = ⋅ (𝑥𝑛 + ),
2⋅𝑥𝑛 2 𝑥𝑛

откуда последовательно следует: для  х0 = 1:


1 2 3 1 3 2 17
х1 = ⋅ (1 + ) = = 1.50, х2 = ⋅ ( + ) = ≈ 1.4166666667, 
2 1 2 2 2 3 12
2
1 3 2 17
х3 = ⋅ ( + 3 ) = ≈ 1.41421568, 𝑥4 = 1.414213562374̮ 6̮ ,
2 2 12
2
𝑥5 = .414213562373095048801689̮ 6̮ ,

𝑥6 = 1.4142135623730950488016887242097.

Таким образом √2 ≈ 1.4142135623730950488016887242097.

В заключение приведена функция реализации метода


Ньютона. В функции предполагается, что функции 𝑓(𝑥) и 𝑓 ′ (x)
описаны в главной программе в виде отдельных функций.

31
/* (a,b) – отрезок изоляции; хn – приближенное
значение корня уравнения; f- левая часть уравнения
f(x)=0; f1, f2 –производные f'(x)и f”(x) функции;
K –число выполненных итераций date; Nmax –
максимально допустимое число итераций; Eps –
точность вычислений; Ier – возвращаемый параметр
процедуры: при Ier=0 решение найдено с точностью
Eps, при Ier=-1 неправильно определен отрезок, а
для Ier=1 – число шагов больше заданных Nmax */

void Newton(double *xn,double a,double b,double


Eps,int Nmax,int *K,int *Err)
{
double d,x,x1;
if (f(a)*f(b)>=0)
{*Err=-1;return;}
if(f(a)*f2(a)>0) x=a;
else x=b;
*K=0;
while(1)
{ x1=x-f(x)/f1(x);
d=fabs(x1-x);
x=x1;
*K=*K+1;
if (*K>Nmax) {*Err=1;break;}
if(d<Eps){*Err=0;
*xn=x;
return;
}}}

2.5. Метод хорд и метод секущих

Идея метода хорд заключается в аппроксимации функции


𝑓(𝑥) на отрезке [𝑎, 𝑏], где имеется изолированный корень
уравнения 𝑓(𝑥) = 0, на отрезке[𝑎, 𝑏]. При этом предполагается,
что 𝑓(𝑥) удовлетворяет следующие условия:
1) функции 𝑓(𝑥), 𝑓′(𝑥), 𝑓′′(𝑥) непрерывны на [𝑎, 𝑏],
причем эти производные знако-постоянные на отрезке;
32
2) 𝑓(𝑎) ⋅ 𝑓(𝑏) < 0.
Соединим точки 𝑀1 (𝑎, 𝑓(𝑎)) и 𝑀2 (𝑏, 𝑓(𝑏)) хордой, которая
пересечет ось абсцисс в некоторой точке x1 (рис.2.11). Эта точка
является первым приближением корня  исходного уравнения.
Определим координаты точки используя уравнение прямой,
которая проходит через две точки 𝑀1 и 𝑀2 . Имеем:

𝑥 − 𝑎 𝑓(𝑥) − 𝑓(𝑎)
= .
𝑏 − 𝑎 𝑓(𝑏) − 𝑓(𝑎)

Так как точка x0 находится на оси абцисс, то 𝑓(𝑥1 ) = 0


из формулы следует, что
33
𝑓(𝑎)
𝑥1 = 𝑎 − (𝑏 − 𝑎)
𝑓(𝑏) − 𝑓(𝑎)
Для определенности, предположим, что 𝑓(𝑎) > 0 и
𝑓(𝑏) < 0 и перейдем к вычислению следующего приближения.
Из сделанных допущений следует, что 𝑓(𝑥1 ) < 0, откуда
заключаем, что корень  уравнения находится на отрезке [𝑎, 𝑥1 ].
Проводим следующую хорду через точки (𝑎, 𝑓(𝑎)) и (𝑥1 , 𝑓(𝑥1 )),
которая пересечет ось абсцисс в некоторой точке 𝑥2 .
Продолжим этот процесс построения хорд, пока не
приблизимся с заданной точностью к решению 𝜉 уравнения. Из
графиков заданных на рисунках 2.11−2.14 можно сделать
вывод, что при построении хорд, одна из точек 𝑀1 или 𝑀2 всегда
остается неподвижной, причем неподвижной является точка у
которой совпадают знаки функции 𝑓(𝑥) и 𝑓′′(𝑥)).
Расчетные формулы для приближений 𝑥𝑛+1 следующие:

𝑓(𝑥𝑛 )
𝑥𝑛 − (𝑥 − 𝑎), 𝑛 = 0,1,2, … ; 𝑥0 = 𝑏;
𝑓(𝑥𝑛 ) − 𝑓(𝑎) 𝑛
𝑥𝑛+1 =
𝑓(𝑥𝑛 )
𝑥𝑛 − (𝑏 − 𝑥𝑛 ), 𝑛 = 0,1,2, … , 𝑥0 = 𝑎
{ 𝑓(𝑏) − 𝑓(𝑥𝑛 )

Использование первой формулы приводит построении


ограниченной и монотонно убывающей последовательности
𝑎 < 𝜉 < ⋯ < 𝑥𝑛 < ⋯ < 𝑥1 < 𝑥0 < 𝑏, а применение второй
формулы - к ограниченной и монотонно возрастающей
последовательности 𝑎 < 𝑥0 < ⋯ < 𝑥𝑛 < 𝑥𝑛+1 < ⋯ < 𝜉 < 𝑏.
Согласно известных теорем из математического анализа обе
последовательность сходятся и имеют предел равный корню
исходного уравнения, т.е.
lim 𝑥𝑛 = 𝜉.
𝑛→∞
Так как по сути этот итерационный процесc бесконечен,
следует указать когда его следует остановить.
Неравенство|𝑥𝑘+1 − 𝑥𝑘 | < 𝜀, где  − требуемая точность
34
приближенного корня, является критерием остановки
вычислений.
Пример. Найти методом хорд корень уравнения
𝑥 3 − 3хе−х − 1 = 0
на отрезке [1,2] с точностью 𝜀 = 10−3 .
Решение. Обе производные 𝑓 ′ (𝑥) = 3𝑥 2 − 3𝑒 −𝑥 + 3𝑥𝑒 −𝑥
и 𝑓 ′′ (𝑥) = 6𝑥 + 6𝑒 −𝑥 − 3𝑥𝑒 −𝑥 на данном отрезке
положительны. Проводим первую хорду и т.к. f(2) > 0, 𝑓 ′′ (2)
> 0,
находим по соответствующую этому случаю формуле

𝑓(𝑥𝑛 )
𝑥𝑛+1 = 𝑥𝑛 − (𝑏 − 𝑥𝑛 ),
𝑓(𝑏) − 𝑓(𝑥𝑛 )
первое приближение:
𝑓(1) 4
𝑥1 = 1 − (2 − 1) = 1 + = 1.571429.
𝑓(2) − 𝑓(1) 7
Второе приближение:
𝑓(1.571429)
𝑥2 = 1.571429 − (2 − 1.571429) = 1.873612.
𝑓(2)−𝑓(1.571429)
Третье приближение:
𝑓(1.873612)
𝑥3 = 1.873612 − (2 − 1.873612) = 1.924087.
𝑓(2)−𝑓(1.873612)
Четвертое приближение:
𝑓(1.924087)
𝑥4 = 1.924087 − (2 − 1.924087) = 1.929842.
𝑓(2)−𝑓(1.924087)
Пятое приближение дает:
𝑓 (1.929842)
𝑥5 = 1.929842 − (2 − 1.929842) = 1.930462.
𝑓(2) − 𝑓(1.929842)
Так как требуемая точность достигнута, вычисления
прекращаются и корень уравнения 𝜉1.9305.
Применим к этому уравнению метод касательных.
Определим начальную точку 𝑥0 : в правом конце отрезка
изолирования имеем𝑓(𝑥0 ) ⋅ 𝑓 ″ (𝑥0 ) = 𝑓(2) ⋅ 𝑓 ″ (2) > 0 и тогда
применив этой точке формулу метода Ньютона, получим:

𝑓(𝑥0 ) 25 −8⋅22 +3
𝑥1 = 𝑥0 − =2− = 1.9375 .
𝑓′ (𝑥0 ) 5⋅24 −16⋅2
35
Второе приближение

𝑓(𝑥1 ) 1.93755 −8⋅1.93752 +3


𝑥2 = 𝑥1 − = 1.9375 − = 1.930616 .
𝑓′ (𝑥 1) 5⋅1.93754 −16⋅1.9375

Следующее приближение

𝑓(𝑥2 ) 1.9306165 −8⋅1.9306162 +3


𝑥3 = 𝑥2 − = 1.930616 − = 1.930537.
𝑓′ (𝑥 2) 5⋅1.9306164 −16⋅1.930616

Приближенное решение уравнения 𝜉1.9305, получено


по методу касательных за меньшее количество шагов, чем при
методе хорд. При этом, последовательность приближений по
методу хорд возрастающая:

1 < 1.571429 < 1.873612 < 1.924087 < 1.929842 < 1.930462 < 𝜉,

а для метода Ньютона – убывающая:


2 > 1.9375 > 1.930616 > 1.93053 > 𝜉.
В заключении приведем формулы приближенного
вычисления корня уравнения по методу секущих. Данный
метод исходит из формулы метода Ньютона путем замены
первой производной ее приближенным значением:
𝑓(𝑥𝑛 ) − 𝑓(𝑥𝑛−1 )
𝑓 ′ (𝑥) ≈
𝑥𝑛 − 𝑥𝑛−1
Отсюда следует формула
𝑓(𝑥𝑛 )(𝑥𝑛 − 𝑥𝑛−1 )
𝑥𝑛+1 = 𝑥𝑛 − , 𝑛 = 1,2, ⋯
𝑓(𝑥𝑛 ) − 𝑓(𝑥𝑛−1 )
Название метод получил из следующих соображений.
Приближение 𝑥𝑛+1 это абсцисса точки пересечения секущей
проходящая через точки (𝑥𝑛−1 , 𝑓(𝑥𝑛−1 )) и (𝑥𝑛 , 𝑓(𝑥𝑛 )) кривой с
осью Ох. При каждой итерации по методу секущих вычисляется
одно новое значение функции f(x).
Заметим, что метод секущих меньше зависит от выбора
начального приближения и не требует вычисления производной,
36
но для старта итерационного процесса, необходимо иметь два
начальных приближений 𝑥0 и 𝑥1 .
В заключение этого раздела приведем оценки скорости
сходимости рассмотренных методов:
Метод Половинного Простых Секущих Ньютона
деления итераций
Скорость 1
𝛼п 𝛼 1.62п 𝛼 2п
сходимости 2п
Здесь 0<<1.
Задания к лабораторной работе “Численное решение
нелинейных и трансцендентных уравнений”.
Для заданного нелинейного уравнения 𝑓(𝑥) = 0.
1. Отделить корни графическим и аналитическим методами
на отрезке [−5,5].
2. Уточнять значение корней методом деления отрезка
пополам с точностью 𝜀 =0.001.
3. Найти корень уравнения методом касательных
(Ньютона), методом секущих и методом простых
итераций точностью 𝜀 =0.00001.
Варианты заданий.
1. 𝑥 3 − 3𝑥 2 − 3 sin 𝑥 + 4 = 0;
2. ln( 𝑥 2 + 1) − 𝑥 + 𝑥 2 𝑐𝑜𝑠 𝑥 + 5 = 0;
3. 2 − ln( 𝑥 2 + 2) − 𝑥 + 𝑥 2 = 0;
4. 𝑥 3 − 5𝑥 2 + 3 sin( 𝑥 + 0.5) + 4.75 = 0;
5. 𝑒 𝑥 + 3𝑥 2 − 𝑥 + 7 = 0;
6. 𝑒 2 cos 𝑥 + 0.4𝑥 3 − 𝑥 − 4.5 = 0;
5
7. 2𝑥 2 − 𝑥 − 4 sin 𝑥 − = 0;
3−cos 𝑥
3
8. 0.2𝑥 − 3 cos 𝑥 − 𝑥 + 2 = 0;
9. 0.3𝑒 𝑥 + 𝑥 3 − 2𝑥 − 0.2 = 0;
10. 3𝑥 3 − 0.2 ⋅ 2𝑥 − 3 sin 𝑥 + 4 = 0;
11. 0.25𝑥 3 − 5𝑥 + ln( 4 − cos 𝑥) − 8 = 0;
12. ch2.3𝑥 + 𝑐𝑜𝑠 1 . 3𝑥 − 4.7 = 0;
13. 𝑥 4 − 8𝑥 2 + 4𝑥 − 12 cos 𝑥 + 10 = 0;
14. 0.8𝑥 4 − 24𝑥 2 − 7𝑒 −0.5 + 16 = 0;
37
III. ЧИСЛЕННОЕ РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ
АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ

Общий вид системы из n уравнений с n неизвестными


следующий

𝑎11 𝑥1 + 𝑎12 𝑥2 + 𝑎13 𝑥3 +   … 𝑎1𝑛 𝑥𝑛 = 𝑏1


𝑎 𝑥 + 𝑎22 𝑥2 + 𝑎23 𝑥3 +   ⋯ 𝑎2𝑛 𝑥𝑛 = 𝑏2
{ 21 1
⋮ ⋮ ⋮  ⋮
𝑎𝑛1 𝑥1 + 𝑎𝑛2 𝑥2 + 𝑎𝑛3 𝑥3 + ⋯ 𝑎𝑛𝑛 𝑥𝑛 = 𝑏𝑛

Решением системы является совокупность чисел


(𝑥1∗ , 𝑥2∗ , ⋯ , 𝑥𝑛∗ ), которые при подстановке в систему, превращает
каждое уравнение в тождество.
Методы решения линейных систем можно разбить на две
группы: точные (прямые) и приближенные (итерационные).
Точные методы, это такие методы, которые после
определенного конечного числа вычислительных действий, в
предположении, что при этом не осуществляется округление
промежуточных и конечных результатов, приводят к точным
значениям неизвестных x i . Однако, особенно когда число
неизвестных большое, неизбежны округление результатов, а
значит решение системы является на самом деле
приближенным. К точным методам относятся, в первую
очередь, метод Крамера и метод исключения Гаусса. Точные
методы на практике используются для решения систем с
относительно небольшим числом неизвестных и уравнений.
К приближенным методам относятся методы, которые,
даже не предполагая отсутствие ошибок округления, приводят к
приближенному решению с заданной точностью в результате
некоторого итерационного процесса, схожим с методом
итерации для решения нелинейного уравнения. Решение систем
линейных алгебраических уравнений (в дальнейшем систем
ЛАУ) итерационными методами состоит в определении наборов

38
(𝑥1 (𝑘) , 𝑥2 (𝑘) , … , 𝑥𝑛 (𝑘) ), 𝑘 = 1,2,3, . . . . , которые сходятся к
решению системы. Приближенные методы применяются для
решения систем ЛАУ больших размерностей.

3.1. Элементы матричного анализа

Вкратце напомним некоторые сведения из линейной


алгебры.
Упорядоченный набор n действительных чисел
𝑥 = (𝑥1 , 𝑥2 , … , 𝑥𝑛 )
называется вектором n- мерного векторного пространства, а
числа 𝑥𝑖 - координаты вектора.
Координаты n- мерного вектора 𝑥 можно расположить
либо в строку (вектор-строка), либо в столбец (вектор-столбец):
𝑥1
𝑥2
𝑥 = (𝑥1 , 𝑥2 , … , 𝑥𝑛 ); 𝑥 = ( ⋮ ).
𝑥𝑛
Над векторами в n- мерном векторном пространстве
определены операции сложения векторов и умножения вектора
на действительное число:

𝑥 + 𝑦 = (𝑥1 + 𝑦1 , 𝑥2 + 𝑦2 , … , 𝑥𝑛 + 𝑦2 ),

𝜆 ⋅ 𝑥 = (𝜆 ⋅ 𝑥1 , 𝜆 ⋅ 𝑥2 , … , 𝜆 ⋅ 𝑥𝑛 ) .

Векторное пространство, в котором введено понятие


скалярного произведения двух векторов называется эвклидовым
пространством 𝑅𝑛 . Скалярное произведение векторов 𝑥 и 𝑦 это
число, которое определяется следующим образом:

𝑥 ⋅ 𝑦 = (𝑥1 ⋅ 𝑦1 + 𝑥2 ⋅ 𝑦2 + ⋯ + 𝑥𝑛 ⋅ 𝑦2 ).

39
Для векторов из 𝑅𝑛 можно вычислить их модули (длины),
а также угол между двумя векторами по формулам:

|𝑥| = √𝑥12 + 𝑥22 + ⋯ + 𝑥𝑛2


и
𝑥1 ⋅𝑦1 +𝑥2 ⋅𝑦2 +⋯+𝑥𝑛 ⋅𝑦 𝑥⋅𝑦
cos 𝜑 = = |𝑥|⋅|𝑦|.
√𝑥12 +𝑥22 +⋯+𝑥𝑛
2 ⋅√𝑦 2 +𝑦 2 +⋯+𝑦 2
1 2 𝑛

Матрицей размерности 𝑚×𝑛 называется


прямоугольная таблица чисел вида

𝑎11 𝑎12 𝑎13  … 𝑎1𝑛


𝑎21 𝑎22 𝑎23  ⋯ 𝑎2𝑛
𝐴=( ⋮ ⋮ ⋮  ⋮ ),
𝑎𝑚1 𝑎𝑚2 𝑎𝑚3 ⋯ 𝑎𝑚𝑛

где 𝑎𝑖𝑗  (𝑖 = 1,2, . . . , 𝑚; 𝑗 = 1,2, . . . , 𝑛) элемент, расположенный


на пересечении i -той строки с j -ым столбцом. Другое
обозначение матрицы такое: 𝐴 = (𝑎𝑖𝑗 )𝑚𝑛 .
Вектор 𝑥 = (𝑥1 , 𝑥2 , … , 𝑥𝑛 ) можно рассматривать как
матрицу размерности 1  n , а вектор-столбец
𝑥 = (𝑥1 , 𝑥2 , … , 𝑥𝑛 )𝑇
матрицей размерности n  1 .
Если m=n, матрица называется квадратной, иначе –
прямоугольной. Квадратная матрица называется диагональной,
если ее элементы удовлетворяют условию

≠ 0,  если 𝑖 = 𝑗
𝑎𝑖𝑗 = {  ,
= 0,  если 𝑖 ≠ 𝑗
т.е.
𝑑11 0 0  … 0
0 𝑑22 0  ⋯ 0
𝐷=( ).
⋮ ⋮ ⋮  ⋮
0 0 0 ⋯ 𝑑𝑛𝑛

40
Диагональная матрица вида

1 0 0  … 0
0 1 0  ⋯ 0
𝐼=( )
⋮ ⋮ ⋮  ⋮
0 0 0⋯ 1
называется единичной.
Транспонированием матрицы называется операция
замены строк матрицы ее столбцами с сохранением их порядка:
Т
𝐴Т = [(𝑎𝑖𝑗 )𝑚𝑛 ] = (𝑎𝑗𝑖 )𝑛𝑚 .

Квадратная матрица, которая совпадает со своей


транспонированной называется симметрической:
𝐴 = 𝐴Т = (𝑎𝑖𝑗 ) .
𝑛𝑛
Если элементы квадратной матрицы удовлетворяют
условие 𝑎𝑖𝑗 = 0, для 𝑖 < 𝑗, то такая матрица называется
нижнетреугольной матрицей. В случае, что 𝑎𝑖𝑗 = 0, для 𝑖 > 𝑗
матрица – верхнетреугольная.
Ранг матрицы равен максимальному числу линейно
независимых строк (столбцов) матрицы.
Квадратная матрица, для которой существует такая
матрица В, что 𝐴 × В = В × А = 𝐼 называется обратимой. Эта
матрица В есть обратная матрица к А и обозначается 𝐴−1 .
Следовательно,

𝐴−1 × 𝐴 = 𝐴 × 𝐴−1 = 𝐼.

Квадратная матрица, для которой существует обратная


матрица, называется невырожденной матрицей, иначе матрица
вырождена.
Для матриц определены линейные операции,
аналогичные операций над векторами. Если матрицы А и В
41
одинаковой размерности, то можно вычислить матрицы А + В и
А – В. Всякую матрицу можно умножить на действительное
число.
Если матрица А имеет размерность 𝑚 × 𝑘, а матрица В
размерность 𝑘 × 𝑛, то произведением матриц будет матрица
C= 𝐴 × В = (с𝑖𝑗 ) , где с𝑖𝑗 = 𝑎𝑖 ⋅ 𝑏𝑗 .
𝑚𝑛
Обобщением понятия длины n -мерного вектора 𝑥
является его норма, из множества способов введения которой в
зависимости от рассматриваемого случая может быть
определена различным образом, но при этом всегда должна
удовлетворять некоторым обязательным условиям.
Нормой вектора 𝑥 = (𝑥1 , 𝑥2 , … , 𝑥𝑛 ) называется
действительное число ‖𝑥‖, удовлетворяющее условиям
(аксиомам):

1. ‖𝑥‖ > 0, если 𝑥 ≠ 0, и ‖0‖ = 0;


2. ‖𝜆 ⋅ х‖ = |𝜆| ⋅ ‖х‖, R;
3. ‖х + 𝑦‖ ≤ ‖х‖ + ‖𝑦‖.

Наиболее часто применяемые нормы векторов, следующие:


1. Октаэдрическая норма
𝑛

‖𝑥‖1 = ∑ |𝑥𝑖 |
𝑖=1
2. Евклидова, или сферическая, норма

‖𝑥‖2 = √∑𝑛𝑖=1 |𝑥𝑖 |.

3. Кубическая норма

‖𝑥‖∞ = max|𝑥𝑖 |.
𝑖

42
Норма матрицы. Если А квадратная матрица
размерности 𝑛 × 𝑛, то ее нормой называют число ‖А‖,
удовлетворяющее условиям:

1. ‖А‖ > 0, если А ≠ 0, и ‖0‖ = 0;


2. ‖𝜆 ⋅ А‖ = |𝜆| ⋅ ‖А‖, R;
3. ‖А + 𝐵‖ ≤ ‖А‖ + ‖𝐵‖;
4. ‖А ⋅ 𝐵‖ ≤ ‖А‖ ⋅ ‖𝐵‖.

Каждому виду нормы вектора соответствует следующие


нормы матрицы А, а именно:

1. ‖А‖∞ = max ∑𝑛𝑗=1 |а𝑖𝑗 |;


𝑖
2. ‖А‖1 = max ∑𝑛𝑖=1 |а𝑖𝑗 |;
𝑗
1/2
3. ‖А‖𝐹 = (∑𝑛𝑖,𝑗=1 |а𝑖𝑗 |2 ) (норма Фробениуса).

Пример. Вычислить: 1) кубическую, октоэдрическую и


евклидовую норму вектора 𝑥 = (1,0, −5,3); 2) соответствующие
им нормы матрицы
5 1 2
𝐴 = (−1 2 −1).
2 −4 3

Решение. 1) ‖𝑥‖∞ = max(|1|, |0|, |−5|, |3|) = 5,


𝑖

‖𝑥‖1 = ∑𝑛𝑖=1 |𝑥𝑖 | = |1| + |0| + |−5| + |3| = 9,

‖𝑥‖2 = (∑𝑛𝑖=1 |𝑥𝑖 |2 )1/2 = √12 + 02 + | − 5|2 + 32 =


√35 = 5.91608;

2) ‖А‖∞ = max(5 + 1 + 2,  1 + 2 + 1,  2 + 4 + 3) =
𝑖

43
= max(8,4,9) = 9;
𝑖
‖А‖1 = max(5 + 1 + 2,  1 + 2 + 4,  2 + 1 + 3) =
𝑗
= max(8,7,6) = 8;
𝑖
1
𝑛 2

‖А‖𝐹 = ( ∑ |а𝑖𝑗 |2 ) =
𝑖,𝑗=1

= √52 + 12 + 22 + (−1)2 + 22 + (−1)2 + 22 + (−4)2 + 32 =


= √65 = 8.062258.

3.2. Метод Гаусса

Идея метода последовательного исключения Гаусса


состоит в применении ряда элементарных преобразований,
которые в случае совместно определенной системы, приводят к
эквивалентной исходной системе ЛАУ, с верхнетреугольной
матрицей. Эти элементарные преобразования, следующие:
• Перестановка уравнений системы.
• Умножение некоторого уравнения на постоянное число,
отличное от нуля.
• Вычитание одного уравнения из другого с заменой
второго уравнения результатом вычитания.
Рассмотрим систему, заданную в матрично-векторном
виде:

𝐴𝑥 = 𝑏,

где 𝐴 = (𝑎𝑖𝑗 )𝑛𝑛 , 𝑥, 𝑏 ∈ 𝑅𝑛 ,  det(𝐴) ≠ 0.

Алгоритм вычисления состоит из выполнения 2-х этапов:


прямой ход и обратный ход. Цель прямого хода заключается в
приведении матрицы ЛАУ к верхнетреугольному виду.
44
Результатом обратного хода является непосредственное
вычисление решения.

Прямой ход. Предположим, для определенности, что


a11  0 (если a11 = 0 меняем местами уравнения системы с тем,
чтобы в верхнем левом углу матрицы был ненулевой элемент).
Первый шаг метода заключается в исключении неизвестной 𝑥1
из второго и последующих уравнений. Для этого первое
уравнение умножается на дробь 𝜇𝑖1 = 𝑎𝑖1 /𝑎11 ,  𝑖 = 2,3, . . . , 𝑛 и
вычитается из i-го уравнения системы (i>2). В результате
выполнения первого шага система ЛАУ принимает следующий
эквивалентный вид:
(2)
𝐴(2) ⋅ 𝑥 = 𝑏 ,

коэффициенты которой вычисляются по формулам

(2) (1)
𝑎1𝑗 = 𝑎1𝑗 = 𝑎1𝑗 , 𝑗 = 1,2, … , 𝑛;
(2) (2) (1)
𝑎𝑖1 = 0, 𝑖 = 2, … , 𝑛;   𝑏1 = 𝑏1 = 𝑏1 ;
(2) (1) (1) (2) (1) (1)
𝑎𝑖𝑗 = 𝑎𝑖𝑗 − 𝜇𝑖1 𝑎1𝑗 ; 𝑏𝑖 = 𝑏𝑖 − 𝜇𝑖1 ⋅ 𝑏𝑖 ,  𝑖, 𝑗 = 2,3, . . . , 𝑛.

При этом вид первого уравнения системы сохранен. В


дальнейшем повторяются эти вычисления, начиная уже со
второго шага при котором исключается 𝑥2 из третьего и
последующих уравнений.
Так как по сделанным исходным предположениям (det(𝐴) ≠ 0 )
система имеет единственное решение, после n шагов получаем
эквивалентную систему

𝐴(𝑛) х = 𝑏 (𝑛) ,
где

45
(1) (1) (1) (1) (1)
𝑎11 𝑎12 … 𝑎1𝑘−1 𝑎1𝑘 … 𝑎1𝑛
(2) (2) (2) (2)
0 𝑎22 … 𝑎2𝑘−1 𝑎2𝑘 … 𝑎2𝑛
(𝑛)
𝐴 = ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ,
(𝑘) (𝑘)
0 0 0 0 𝑎𝑘𝑘 … 𝑎𝑘𝑛
⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
(𝑛)
(0 0 ⋯ ⋯ ⋯ 0 ⋯ 0 ⋯ 𝑎𝑛𝑛 )
(1)
𝑏1
𝑏 (𝑛) = ( ⋮ ).
(𝑛)
𝑏𝑛
Обратный ход. Начиная с последнего уравнения этой
(𝑛) (𝑛)
системы (вид которого 𝑎𝑛𝑛 ⋅ 𝑥𝑛 = 𝑏𝑛 ) вычисляем 𝑥𝑛 , после
чего из уравнения с номером (n-1) 𝑥𝑛−1 и т.д. Расчетные
формулы для значений неизвестных следующие:

(𝑛) (𝑛) (𝑛−1) (𝑛−1) (𝑛−1)


𝑥𝑛 = 𝑏𝑛 /𝑎𝑛𝑛 , 𝑥𝑛−1 = (𝑏𝑛−1 − 𝑎𝑛−1,𝑛 𝑥𝑛 )/𝑎𝑛−1,𝑛−1 , … ,
𝑛
(𝑘) (𝑘) (𝑘)
𝑥𝑘 = (𝑏𝑘 − ∑ 𝑎𝑘𝑗 𝑥𝑗 ) /𝑎𝑘𝑘 , … , 𝑘 = 𝑛 − 2, 𝑛 − 3, ⋯ ,2.1.
𝑗=𝑘+1

Более эффективен, с точки зрения количества


необходимых операций для достижения решения, является
метод Гаусса с выбором главного элемента. В этой процедуре на
каждом шаге выбирается главный (ведущий, pivot) элемент
𝑎𝑘𝑘 ≠ 0, такой, чтобы он оказался по модулю наибольшим в
столбце с номером k. Если на каком-то шаге это условие не
выполнено, то необходимо выполнить перестановку уравнений
расположенные в строках 𝑘 + 1, 𝑘 + 2, ⋯ , 𝑛, таким образом,
чтобы главный элемент был бы наибольший по модулю.
Пример. Решить систему ЛАУ
2𝑥1 + 𝑥2 + 𝑥3 = 1,
{ 4𝑥1 + 𝑥2   = −2,
−2𝑥1 + 2𝑥2 + 𝑥3 = 7.
46
Решение. Т.к. 𝑎11 = 2 ≠ 0, то неизвестная x1 будет
исключена из второго и третьего уравнений умножением
первого уравнения, соответственно, на числа
𝜇21 = 𝑎21 ⁄𝑎11 = 4/2 = 2, 𝜇31 = 𝑎31 ⁄𝑎11 = −2/2 = 1,
и вычитая результаты из последних двух уравнений. Приходим
к эквивалентной системе

2𝑥1 + 𝑥2 +    𝑥3 = 1,
{ −𝑥2 − 2𝑥3 = −4,
3𝑥2 + 2𝑥3 = 8.

Аналогично исключаем неизвестную x 2 из третьего


(1)
уравнения. В данном случае т.к. = −1, то умножив второе
𝑎22
′ ⁄ ′
уравнение новой системы на 𝜇32 = 𝑎32 𝑎22 = 3/(−1) = −3 и
вычитая результат из последнего, третьего уравнения,
исключаем из него неизвестную 𝑥2 .
В результате прямого хода эквивалентная исходной
системе система уравнений принимает вид:

2𝑥1 + 𝑥2 +    𝑥3 = 1,
{ −𝑥2 − 2𝑥3 = −4,
−4𝑥3 = −4.

Обратный ход. Из последнего уравнения находим


неизвестную 𝑥3∗ = 1. Подставляя это значение во второе
уравнение, находим 𝑥2∗ = 2. Наконец, используя значения 𝑥2∗ , 𝑥3∗
из первого уравнения определяем 𝑥1∗ = −1.
Ниже приводится функция, реализующая метод Гаусса с
выбором главного элемента. На k-том шаге в матрице 𝐴(𝑘)
ведущим элементом выбирается наибольший по модулю
элемент из столбца с номером k и строк k≤i≤n:

(𝑘) (𝑘)
|𝑎𝑟𝑘 | = max |𝑎𝑖𝑘 |.
𝑘≤𝑖≤𝑛
47
В результате этой операции уравнения с номером k и r
меняются местами.

/* На входе: N число уравнений (глобальная


переменная); A=[N+1][N+2] – матрица; A[i][j] 1≤j≤N,
1≤i≤N - матрица системы; A[0,j]=0, 1≤j≤N+1;
A[i,0]=0, 1≤i≤N+1; (N+2)-й столбец вектор правых
частей системы. На выходе: вектор x[N+1] решение
системы уравнений*/

void Gauss(float A[N+1][N+2],float x[N+1])


{int i,j,k,ved_str; float temp,t;
for(i=1;i<=N-1;i++)
{ved_str=i;
for(j=i+1;j<=N;j++)

if(fabs(A[j][i])>fabs(A[ved_str][i]))ved_str=j;
for(k=i;k<=N+1;k++)
{t=A[i][k];A[i][k]=A[ved_str][k];
A[ved_str][k]=t;}
for(j=i+1;j<N+1;j++)
{temp=A[j][i]/A[i][i];
for(k=i;k<=N+1;k++)
A[j][k]=A[j][k]-A[i][k]*temp;
}
}
x[N]=A[N][N+1]/A[N][N];
for(i=N-1;i>=1;i--)
{t=0;
for(k=N;k>i;k--)
t+=A[i][k]*x[k];
x[i]=(A[i][N+1]-t)/A[i][i];}}
Метод Гаусса теоретически либо дает точное решение
(если система совместно определенная), либо позволяет
выяснить, что решения нет (в случае несовместности системы
или ее неопределенной совместности). Тем не менее, при

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

3.3. Метод квадратного корня

Рассмотрим систему ЛАУ 𝐴𝑥 = 𝑏, где матрица 𝐴


𝑇
симметрическая, т.е. 𝐴 = 𝐴 . В этом случае 𝐴 представима в
виде произведения двух транспонированных между собой
квадратных матриц: 𝐴 = 𝐿𝐿𝑇 , где

𝑙11 0 … 0 𝑙11 𝑙12 … 𝑙1𝑛


𝑙 𝑙22 … 0 0 𝑙22 … 𝑙2𝑛
𝐿 = ( 12 ) и 𝐿𝑇 = ( )
… … … … … … … …
𝑙1𝑛 𝑙21 … 𝑙𝑛𝑛 0 0 … 𝑙𝑛𝑛

Идея метода заключается в представлении системы ЛАУ


в виде двух систем с треугольными матрицами:

𝐿𝑦 = 𝑏 и 𝐿𝑇 𝑥 = 𝑦.

Такое разложение матрицы называют факторизацией


Халецкого.
Теорема 3.1. Если симметрическая матрица А
положительно определенная, тогда существует единственная
нижнетреугольная матрица 𝐿 с положительными
диагональными элементами и такая что 𝐴 = 𝐿𝐿𝑇 .
Положительно определенной называют матрицу, для
которой
𝑇
𝑥 ⋅ 𝐴𝑥 > 0, ∀𝑥 ≠ 0.
Отсюда следует, что ррассматриваемая система 𝐴𝑥 = 𝑏 будет
иметь единственное решение, если 𝑙𝑖𝑖 ≠ 0, 𝑙 = 1,2, … , 𝑛.
49
Элементы 𝑙𝑖𝑗 нижнетреугольной 𝐿 матрицы вычисляются
следующим образом. Умножив между собой матрицы 𝐿 и 𝐿𝑇 ,
приравнивают элементы полученной матрицы с
соответствующими элементами матрицы А получаем
следующие уравнения

𝑙1𝑖 ⋅ 𝑙1𝑗 + 𝑙2𝑖 ⋅ 𝑙2𝑗 + ⋯ + 𝑙𝑖𝑖 ⋅ 𝑙𝑖𝑗 = 𝑎𝑖𝑗 (𝑖 < 𝑗);


2 2
𝑙1𝑖 + 𝑙2𝑖 + ⋯ + 𝑙𝑖𝑖2 = 𝑎𝑖𝑖 , 𝑖 = 1,2, ⋯ , 𝑛.

Из этих соотношений следует:


1
𝑙𝑖𝑗 = 0,  𝑖 < 𝑗; 𝑙11 = √𝑎11 , 𝑙𝑖1 = 𝑎𝑖1 , 𝑖 = 2,3, … , 𝑛;
𝑙11

𝑙𝑖𝑖 = √𝑎𝑖𝑖 − ∑𝑖−1 2


𝑘=1 𝑙𝑖𝑘 ;

𝑗−1
(𝑎𝑖𝑗 −∑𝑘=1 𝑙𝑖𝑘 ⋅𝑙𝑗𝑘 )
𝑙𝑖𝑗 = , 𝑖 > 𝑗, 𝑖 = 𝑗 + 1, . . . , 𝑛;.
𝑙𝑗𝑗

После вычисления элементов матрицы L переходим к


вычислению решений систем ЛАУ с треугольными матрицами
𝐿𝑦 = 𝑏 и 𝐿𝑇 𝑥 = 𝑦 используя формулы:

𝑙11 𝑦1 0 0 ⋯ 0 = 𝑏1
𝑙 𝑦 + 𝑙22 𝑦2 0 ⋯ 0 = 𝑏2
{ 21 1
⋮ ⋮ ⋮ ⋮ ⋮ ⋮
𝑙𝑛1 𝑦1 + 𝑙𝑛2 𝑦2 + 𝑙𝑛3 𝑦3 + ⋯ + 𝑙𝑛𝑛 𝑦𝑛 = 𝑏𝑛
и
𝑙11 𝑥1 + 𝑙21 𝑥2 + 𝑙31 𝑥3 + ⋯ +𝑙𝑛1 𝑥𝑛 = 𝑦1
0 𝑙22 𝑥2 + 𝑙32 𝑥3 + ⋯ +𝑙𝑛2 𝑥𝑛 = 𝑦2 .
{ ⋮
⋮ ⋮ ⋮ ⋮ ⋮
0 0 0 ⋯ 𝑛𝑛 𝑛 𝑦𝑛
𝑙 𝑥 =

50
Из первой системы определяем компоненты вектора y из
соотношений:
1
𝑦1 = 𝑏1 /𝑙11 ; 𝑦𝑖 = ⋅ (𝑏𝑖 − ∑𝑖−1
𝑘=1 𝑙𝑖𝑘 𝑦𝑘 ), 𝑖 = 2,3, … , 𝑛.
𝑙𝑖𝑖
Наконец, из второй системы с верхнетреугольной матрицей 𝐿𝑇
определяем решение исходной системы:
𝑛
𝑦𝑛 1
𝑥𝑛 = ; 𝑥𝑖 = ⋅ (𝑦𝑖 − ∑ 𝑙𝑘𝑖 𝑥𝑘 ),
𝑙𝑛𝑛 𝑙𝑖𝑖
𝑘=𝑖+1
𝑖 = 𝑛 − 1, 𝑛 − 2, … ,1.
Пример. Решить следующую систему ЛАУ по методу
квадратного корня

5𝑥1 − 𝑥2 + 3𝑥3 = 6 5 −1 3 6
{−𝑥1 + 2𝑥2 + 𝑥3 = 4 , 𝐴 = (−1 2 1), 𝑏 = (4).
3𝑥1 + 𝑥2 + 4𝑥3 = 9 3 1 4 9

Решение. Вычисляем элементы матрицы 𝐿:

𝑙11 = √𝑎11 = √5;

𝑙21 = 𝑎21 ⁄√𝑎11 = − 1⁄√5; 𝑙31 = 𝑎31 ⁄√𝑎11 = 3⁄√5 ;


2
𝑙22 = √𝑎22 − 𝑙21 = √2 − 1/5 = 3⁄√5;
𝑙32 = (𝑎33 − 𝑙21 ⋅ 𝑙31 )⁄𝑙22 =
= 3⁄√5(1 + 1/√5) ⋅ 3/√5) = 8⁄(3 ⋅ √5);

2 2
9 64
𝑙33 = √𝑎33 − 𝑙31 − 𝑙32 = √4 − − = √7⁄3
5 5
и матрица имеет следующий вид:

51
√5 0 0
1 3
𝐿= − 0 .
√5 √5
3 8 √7
( √5 3√5 3)

Тогда компоненты вектора 𝑦 равны:

𝑦1 = 𝑏1 /𝑙11 = 6/√5;

1 6 3 26
𝑦2 = (𝑏2 − 𝑙21 𝑦1 )/𝑙11 = (4 + ⋅ )⁄( )= ;
√5 √5 √5 3√5
1
𝑦3 = ⋅ (𝑏3 − 𝑙31 𝑦1 − 𝑙32 𝑦2 ) =
𝑙33
3 6 8 26 √7 3
= (9 − ⋅ − ⋅ )⁄( ) = .
√5 √5 3√5 3√5 3 √7

Определим, наконец, неизвестные 𝑥𝑖 :

𝑦3 3 7 1
𝑥3 = = ⁄ = 1; 𝑥2 = ⋅ (𝑦2 − 𝑙32 𝑥3 )
𝑙33 √7 √3 𝑙22
√5 26 8
= ( − ⋅ 1) = 2;
3 3√5 3√5

6 −1 3
𝑥1 = (𝑦1 − 𝑙21 𝑥2 − 𝑙31 𝑥3 )/𝑙11 = ( − ⋅2− ⋅ 1)⁄√5 = 1.
√5 √5 √5

Таким образом, решением системы является вектор 𝑥 = (1,2,1).

52
3.4. Итерационные методы решения СЛАУ. Метод Якоби и
метод Гаусса- Зейделя

Итерационные методы решения систем ЛАУ основаны на


представление матрицы 𝐴 в виде 𝐴 = 𝑆 − 𝑇, что приводит к
замене системы 𝐴𝑥 = 𝑏 эквивалентной системой

𝑆𝑥 = 𝑇𝑥 + 𝑏 или 𝑥 = 𝑄𝑥 + 𝑑,
где
𝑄 = 𝑆 −1 𝑇, 𝑑 = 𝑆 −1 𝑏.

Отсюда следует, что рекуррентно можно построить


(𝑘)
последовательность приближений {𝑥 } используя формулу
(𝑘+1) (𝑘)
𝑆𝑥 = 𝑇𝑥 + 𝑏,  𝑘 = 0,1,2, . ..
или
(𝑘+1) (𝑘)
𝑥 = 𝑄𝑥 + 𝑑,  𝑘 = 0,1,2, . ...

(0) ∗
Здесь 𝑥 ∈ 𝑅𝑛 выбранное начальное приближение решения х
системы уравнений.
Для того, чтобы представить матрицу 𝐴 в виде 𝐴 = 𝑆 − 𝑇,
удобным для итерирования, исходная матрица 𝐴 должна
удовлетворять определенным условиям, а именно:
(𝑘+1) (𝑘)
1) система 𝑆𝑥 = 𝑇𝑥 + 𝑏 имеет единственное

решение х и решается просто, а значит, матрица 𝑆 должна быть
обратимой и диагонального или треугольного типов;
(𝑘)
2) последовательность {𝑥 } сходится к точному
решению при любом выборе начального приближения 𝑥(0) ∈ 𝑅𝑛 .
Предположим, что диагональные элементы матрицы 𝐴
отличны от нуля (𝑎𝑖𝑖 ≠ 0, 𝑖 = 1,2, ⋯ , 𝑛.. Тогда в качестве
матрицы 𝐴 можно выбрать матрицу 𝑆 = diag(𝑎11 , 𝑎22 , . . . , 𝑎𝑖𝑖 ).
Но тогда 𝑆 −1 = diag(1/𝑎11 , 1/𝑎22 , . . . ,1/𝑎𝑛𝑛 ) и система
ЛАУ 𝐴𝑥 = 𝑏 может быть записана в виде
53
1
𝑥𝑖 = (𝑏𝑖𝑖 − ∑𝑛𝑗≠𝑖 𝑎𝑖𝑗 ⋅ 𝑥𝑗 ), i=1,2,…,n.
𝑎𝑖𝑖

Таким образом, можем определить следующий


итерационный процесс

(𝑘+1) 1 (𝑘)
𝑥𝑖 = (𝑏𝑖𝑖 − ∑𝑛𝑗≠𝑖 𝑎𝑖𝑗 ⋅ 𝑥𝑗 ), 𝑖 = 1,2, … , 𝑘 = 0,1,2, …,
𝑎𝑖𝑖

который называется методом Якоби (метод простой


итерации) решения СЛАУ.
Условия сходимости метода Якоби в значительной мере
зависят от способа построения матрицы Q. Можно доказать, что
если для элементов 𝑞𝑖𝑗 этой матрицы выполняется по крайней
мере одно из условий

‖𝑄‖∞ = max ∑𝑛𝑗=1|𝑞𝑖𝑗 | ≤ 𝛼 < 1, (3.1)


1≤𝑖≤𝑛

‖𝑄‖1 = max ∑𝑛𝑖=1|𝑞𝑖𝑗 | ≤ 𝛽 < 1, (3.2)


1≤𝑗≤𝑛

тогда итерационный процесс сходится к точному решению 𝑥 ∗


при любом начальном приближении, т.е.

lim 𝑥 (𝑘) = 𝑥 ∗ .
𝑘→∞

Отсюда следует, что точное решение может быть найдено


в результате бесконечной итерационной процедуры, причем
(к)
любой промежуточный вектор х является приближенным
решением исходной системы уравнений.
Оценка погрешности метода Якоби при выполнении
условия (3.1) дается формулой

54
∗ 𝛼 (𝑘+1) (𝑘)
‖𝑥 (𝑘+1) − 𝑥 ‖∞ ≤ ‖𝑥 −𝑥 ‖ ≤
1−𝛼 ∞
𝛼𝑘 (1) (0)
≤ ‖𝑥 − 𝑥 ‖ ,
1−𝛼 ∞

а в случае выполнении условия (3.2)

∗ 𝛽 (𝑘+1) (𝑘)
‖𝑥 (𝑘+1) − 𝑥 ‖1 ≤ ‖𝑥 −𝑥 ‖ ≤
1−𝛽 1
𝛽𝑘 (1) (0)
≤ ‖𝑥 − 𝑥 ‖ .
1−𝛽 1

Замечание. Если матрица А исходной системы имеет


преобладающую (доминирующую) главную диагональ, т.е.

|𝑎𝑖𝑖 | > ∑𝑖≠𝑗|𝑎𝑖𝑗 | ,  𝑖 = 1,2, . . . , 𝑛,

тогда условие (3.1) выполняется и метод Якоби сходится.


Оценка погрешности метода простой итерации
приводится в следующем утверждении:
Теорема 3.2. Если какая-то норма матрицы Q,
согласованная с нормой вектора 𝑥, меньше единицы, то оценка
погрешности приближения метода простой итерации дается
неравенством:
(𝑘) ∗ ‖𝑄‖𝑘 (1) (0)
‖𝑥 − 𝑥 ‖ ≤ ‖𝑥 − 𝑥 ‖ .
1 − ‖𝑄‖

При практической реализации метода критерием


прерывания вычислений является выполние неравенства
𝑛

max ∑|х𝑖 (к+1) − 𝑥𝑖 (к) | < 𝜀,


𝑖
𝑖=1

55
или
𝑛
|х𝑖 (к+1) − 𝑥𝑖 (к) |
max ∑ <𝜀,
𝑖 |𝑥𝑖 (к+1) |
𝑖=1
или

2
√∑𝑖 (𝑥(𝑘+1) − 𝑥(𝑘) )
𝑖 𝑖
,
2
√∑𝑖 (𝑥(𝑘+1) )
𝑖

где  заданная точность решения.

Замечание. Чем меньше коэффициенты 0 < 𝛼 < 1 или


0 < 𝛽 < 1, тем скорость сходимости метода итераций выше, что
позволяет получить решение за малое число итераций. Если же
этот коэффициент близок к единице скорость сходимости
снижается значительно, а, значит, количество необходимых
итераций возрастает существенно. Теоретически обоснованных
способов уменьшения коэффициента 𝛼 нет, но при решении
конкретной системы, исходя из ее особенностей, можно
добиться этого уменьшения, например, переходом к
эквивалентной системе.
Пример. Решить c точностью  =0.025 итерационным
методом Якоби следующую систему ЛАУ

5𝑥1 + 𝑥2 + 2𝑥3 = 4,
{ −𝑥1 + 4𝑥2 − 𝑥3   = 4,
2𝑥1 + 2𝑥2 − 7𝑥3 = 11.

Решение. По формуле 𝐴 = 𝑆 − 𝑇 разложим матрицу

5 1 2
𝐴 = (−1 4 −1).
2 2 −7
56
Используя матрицы

5 0 0 0 −1 −2
𝑆 = (0 4 0 ), 𝑇 = ( 1 0 1 ).
0 0 −7 −2 −2 0
Тогда
0 −1/5 −2/5 4/5
−1 1/4 0 1/4
𝑄=𝑆 𝑇=( ), 𝑑 = ( 1 )
2/7 2/7 0 −11/7

и имеем следующий итерационный процесс

(𝑘+1) (𝑘) (𝑘)


𝑥1 = 4/5 − 1/5𝑥2 − 2/5𝑥3
(𝑘+1) (𝑘) (𝑘)
{ 𝑥2 = 1 + 1/4𝑥1 + 1/4𝑥3 .
(𝑘+1) (𝑘) {𝑘}
𝑥3 = −11/7 + 2/7𝑥1 + 2/7𝑥2

Проверим условие сходимости:


𝑛
1 2 3
∑|𝑞𝑖𝑗 | = |− | + |− | = , 𝑖 = 1;
5 5 5
𝑗=1
𝑛
1 1 1
∑|𝑞𝑖𝑗 | = | | + | | = , 𝑖 = 2;
4 4 2
𝑗=1

𝑛
2 2 4
∑|𝑞𝑖𝑗 | = | | + | | = , 𝑖 = 3;
7 7 7
𝑗=1

𝑛
3
⇒ max ∑|𝑞𝑖𝑗 | ≤ 𝛼 = < 1.
𝑖 5
𝑗=1

57
Выберем в качестве начального приближения правую
(0)
часть преобразованной системы: х = (𝑑)Т = (4/5,  1, −11/7)
и вычисляем первое приближение:
(1) 4 1 2 −11 43 (1) (0)
𝑥1 = − ⋅ 1 − ⋅ = = 1.2286, |𝑥1 − 𝑥1 | = |1.2286 − 4/5| = 0.43
5 5 5 7 35
(1) 1 4 1 −11 (1) (0)
𝑥2 = 1 + ⋅ + ⋅ = 0.8071, |𝑥2 − 𝑥2 | = |0.6071 − 1| = 0.193
4 5 4 7
(1) 11 2 4 2 (1) (0)
𝑥 =− + ⋅ + ⋅ 1 = −1.0571, |𝑥3 − 𝑥3 | = |−1.0571 − (−11/7)| = 0.51
{ 3 7 7 5 7
.
Так как
max|х𝑖 (1) − 𝑥𝑖 (0) | = 0.51 > 𝜀,
𝑖
то вычисления должны продолжаться.
Второе приближение:

(2) 4 1 2 (2) (1)


𝑥1 = − ⋅ 0.8071 − ⋅ (−1.0571) = 1.0614, |𝑥1 − 𝑥1 | = 0.167
5 5 5
(2) 1 1 (2) (1)
𝑥2 = 1 + ⋅ 1.2286 + ⋅ (−1.0571) = 1.0428, |𝑥2 − 𝑥2 | = 0.23
4 4
(2) 11 2 2 (2) (1)
{𝑥3 = − 7 + 7 ⋅ 1.2286 + 7 ⋅ 0.8071 = −0.9898, |𝑥3 − 𝑥3 | = 0.067
.
Третий шаг дает приближение:

(3) 4 1 2 (3) (2)


𝑥1 = − ⋅ 1.0428 − ⋅ (−0.9898) = 0.9873, |𝑥1 − 𝑥1 | = 0.074
5 5 5
(3) 1 1 (3) (2)
𝑥2 = 1 + ⋅ 1.0614 + ⋅ (−0.9898) = 1.0179, |𝑥2 − 𝑥2 | = 0.025
4 4
(3) 11 2 2 (3) (2)
{𝑥3 = − 7 + 7 ⋅ 1.0614 + 7 ⋅ 1.0428 = −0.9702, |𝑥3 − 𝑥3 | = 0.019

Требуемая точность не достигнута и находим четвертое


приближение:

58
(4) 4 1 2 (4) (3)
𝑥1 = − ⋅ 1.0179 − ⋅ (−0.9702) = 0.9845, |𝑥1 − 𝑥1 | = 0.0028
5 5 5
(4) 1 1 (4) (3)
𝑥2 = 1 + ⋅ 0.9873 + ⋅ (−0.9702) = 1.0042, |𝑥2 − 𝑥2 | = 0.0136 .
4 4
(4) 11 2 2 (4) (3)
𝑥 =− + ⋅ 0.9873 + ⋅ 1.0179 = −0.9985, |𝑥3 − 𝑥3 | = 0.024
{ 3 7 7 7

Так как max|х𝑖 (4) − 𝑥𝑖 (3) | = 0.024 < 𝜀, требуемая


𝑖
точность достигнута и приближенное решение системы
(4)
определено и равно х = (0.9845,1.0042, −0.9985). Отметим,
для сравнения, что рассматриваемая система имеет точное

решение х = (1,1, −1).
Следует отметить, что реализация метода Якоби на
компьютере, требует сохранение в памяти одновременно двух
(𝑘) (𝑘+1)
векторов – приближений х и х , что при решении систем
больших размерностей значительно увеличивает объем
используемой основной памяти компьютера.
Этот недостаток метода Якоби отсутствует у другого
итерационного метода, который к тому же, в большинстве
случаев имеет и более быструю скорость сходимости – метода
Гаусса-Зейделя.
Данная модификация метода последовательных
приближений Якоби основана на следующей схеме: при
вычислении компоненты х𝑖 (к+1) используются вычисленные на
этой итерации значения х1 (к+1) , х2 (к+1) , . . . , х𝑖−1 (к+1) , что
позволяет предполагать более быструю сходимость.
Исследование вопросов сходимости метода Гаусса-
Зейделя выходит за рамки данной работы, однако приведем
теоремы, которые дают ответ на вопрос сходимости метода для
частного случая.
Теорема 3.3. Если матрица 𝐴 системы ЛАУ, диагонально
преобладающая по строкам, тогда метод Гаусса-Зейделя
сходится к решению системы независимо от выбора начального
(0)
приближения х .

59
Теорема 3.4 (Reich). Пусть матрица 𝐴 симметрическая и ее
диагональные элементы удовлетворяет неравенство а𝑖𝑖 > 0, ∀ 𝑖.
Метод Гаусса-Зейделя сходится тогда и только тогда, когда
матрица А положительно определенная.

Пример. Для сравнения методов, рассмотрим процедуру


вычисления решения предыдущего примера методом Гаусса-
Зейделя. Необходимо найти решение c точностью  =0.025
следующей системы ЛАУ

5𝑥1 + 𝑥2 + 2𝑥3 = 4,
{ −𝑥1 + 4𝑥2 − 𝑥3   = 4,
2𝑥1 + 2𝑥2 − 7𝑥3 = 11.

Решение. Вычисляем первое приближение при

(0)
х = (𝑑)Т = (4/5,  1, −11/7):
(1) 4 1 2 −11 43 (1) (0)
𝑥1 = − ⋅ 1 − ⋅ = = 1.2286, |𝑥1 − 𝑥1 | == 0.43
5 5 5 7 35
(1) 1 1 −11 (1) (0)
𝑥2 = 1 + ⋅ 1.2286 + ⋅ = 0.9143, |𝑥2 − 𝑥2 | = 0.086 .
4 4 7
(1) 11 2 2 (1) (0)
𝑥 =− + ⋅ 1.2286 + ⋅ 0.9143 = −0.9592, |𝑥3 − 𝑥3 | = 0.61
{ 3 7 7 7

Вторая итерация:
(2) 4 1 2 (2) (1)
𝑥1 = − ⋅ 0.9143 − ⋅ (−0.9592) = 1.0008, |𝑥1 − 𝑥1 | = 0.2
5 5 5
(2) 1 1 (2) (1)
𝑥2 = 1 + ⋅ 1.0008 + ⋅ (−0.9592) = 1.0104, |𝑥2 − 𝑥2 | = 0.096
4 4
(2) 11 2 2 (2) (1)
𝑥 =− + ⋅ 1.0008 + ⋅ 0.9143 = −0.9968, |𝑥3 − 𝑥2 | = 0.037
{ 3 7 7 7

После третьей итерации имеем:

60
(3) 4 1 2 (3) (2)
𝑥1 = − ⋅ 1.0104 − ⋅ (−0.9968) = 0.9966, |𝑥1 − 𝑥1 | = 0.004
5 5 5
(3) 1 1 (3) (2)
𝑥2 = 1 + ⋅ 0.9966 + ⋅ (−0.9968) = 0.9998, |𝑥2 − 𝑥2 | = 0.010
4 4
(3) 11 2 2 (3) (2)
{𝑥3 = − 7 + 7 ⋅ 0.9966 + 7 ⋅ 0.9998 = −1.0009, |𝑥3 − 𝑥2 | = 0.004

Требуемая точность достигнута и приближенное


решение системы
(3)
х = (0.9966,0.9998, −1.0009).
На рассмотренном примере можно заметить, что метод
Гаусса-Зейделя дает более быструю сходимость, чем метод
Якоби, однако это не всегда верно. В некоторых случаях метод
Якоби может иметь лучшую сходимость, или даже бывают
случаи, когда метод Гаусса-Зейделя расходится, в то время как
метод простых итераций сходится.
Ниже приводится функция на языке С для решения
системы с n неизвестными, матрица которой имеет
доминирующую главную диагональ по методу Гаусса-Зейделя.
Критерием конца вычислений в данной процедуре
служит евклидова метрика для достижения необходимой
точности:

2
√∑𝑖(𝑥𝑖(𝑘+1) − 𝑥𝑖(𝑘) )
<𝜀.
2
√∑𝑖(𝑥𝑖(𝑘+1) )

Используемые обозначения:
/*n – кол-во уравнений в системе; A – матрица системы; b -вектор
правых частей; x -выходной параметр - решение системы; Eps -
точность приближения; Nmax -максимальное кол-во разрешенных
итераций; К - выходной параметр -количество итераций выполненных
при достижении требуемой точности*/

61
void Seidel(float A[n][n], float b[n],float Eps,
int *K, float *x, int Nmax)
{
int i,j; float s,s1,y,t;
*K=0;
for (i=0;i<n;i++)
{
t=A[i][i];
b[i]=b[i]/t;
for (j=0;j<n;j++)
A[i][j]=- A[i][j]/t;
x[i]=b[i];
A[i][i]=0;
}
do {
s=0; s1=0;
for (i=0;i<n;i++)
{
y=0;
for (j=0;j<n;j++)
y=y+A[i][j]*x[j];
y=y+b[i];
s=s+(x[i]-y)*(x[i]-y);
s1=s1+y*y;
x[i]=y;
}
s=sqrt(s); s1=sqrt(s1); s=s/s1;
*K=(*K)+1;
if (*K>Nmax )
{printf("\t решение не найдено.
Итераций>Nmax%2d\n",*K);
break;}
}
while(s>Eps);
}

В заключение отметим некоторые достоинства


итерационных методов решения СЛАУ:
62
1. Самоисправляемость методов. В точных методах
ошибка, допущенная на каком-то этапе вычислений и
случайно не устраненная, в дальнейшем, приводит к
неправильному результату. В итерационных методах
ошибка на промежуточном этапе (если она не
повторяется) исправляется в дальнейшем и может
привести лишь к необходимости выполнения нескольких
дополнительных итераций.
2. Простота алгоритмов, которые состоят в выполнении
однообразных расчетов, приводит к простоте их
реализации на компьютере.
3. Если необходимое число операций при получении
2
решения методом Гаусса имеет порядок 𝑛3 , то при
3
хорошей сходимости итерационного метода количество,
необходимых для получения результата операций, может
оказаться значительно меньше.
После каждой итерации получаются приближенные
значения всех неизвестных, хотя и грубые.

3.5. Обращение матриц. Метод Жордана-Гаусса

Задача обращения матриц является одной из важнейших


в матричном анализе и формулируется следующим образом:
пусть задана невырожденная матрица 𝐴 (определитель матрицы
отличен от нуля) и требуется построить обратную к ней матрицу
𝐴−1 . Самое простое решение этой задачи вытекает из метода
Гаусса. Действительно, если обозначить через Х обратную к 𝐴
матрицу, тогда для ее определения следует решить матричное
уравнение
𝐴𝑋 = 𝐼 ,
где 𝐼 единичная матрица. Ясно, что решение этой системы
сводится к решению n СЛАУ вида

𝐴𝑥𝑖 = 𝑒𝑖 ,
63
где х𝑖 - столбец с номером i матрицы 𝑋, а 𝑒𝑖 i-тый столбец
единичной матрицы 𝐼.
Идея метода Жордана-Гаусса состоит в приведении
неособенной матрицы 𝐴 к единичной 𝐼.
Пусть матрица 𝐵 = (𝐴|𝐼) = (𝑏𝑖𝑗 )(𝑖=1,𝑛;𝑗=1,2𝑛 , матрица
полученная из 𝐴, присоединением к ней единичной матрицы 𝐼.
Легко заметить, что 𝐵 = 𝐴 ⋅ (𝐼|𝐴−1 ). Тогда осуществив ряд
преобразований (преобразования Жордана-Гаусса) можно
вместо матрицы 𝐼 из матрицы 𝐵 получить обратную матрицу
𝐴−1 . При каждом таком преобразовании один из первых n
столбцов матрицы B становится единичным с помощью формул:


𝑎𝑟𝑗
𝑎𝑟𝑗 = , 𝑟 = 1,2, … , 𝑛;  𝑗 = 1,2, … , 𝑛,
𝑎𝑟𝑟
′ 𝑎𝑖𝑟 ⋅𝑎𝑟𝑗,
𝑎𝑖𝑗 = 𝑎𝑖𝑗 − 𝑖, 𝑗, 𝑟 = 1,2, … , 𝑛, 𝑖 ≠ 𝑟.
𝑎𝑟𝑟

′ ′
Здесь новые 𝑎𝑖𝑗 и 𝑎𝑟𝑗 новые значения элементов матрицы.
Пример. Найти по методу Жордана − Гаусса обратную
матрицу к матрице
2 −1 2
𝐴 = (1 1 −1).
3 −1 −7

Решение. Вычисления удобно проводить в таблицах по


предыдущим формулам.

Nr. a1 a2 a3 e1 e2 e3
ур-я
1 2 -1 2 1 0 0

2 1 1 -1 0 1 0

3 3 -1 -7 0 0 1

64
1 1 -1/2 1 1/2 0 0

2 0 3/2 -2 -1/2 1 0

3 0 1/2 0 -3/2 0 1

1 1 0 1/3 1/3 1/3 0

2 0 1 -4/3 -1/3 2/3 0

3 0 0 2/3 -4/3 -1/3 1

1 1 0 0 1 1/2 -1/2

2 0 1 0 -3 0 2

3 0 0 1 -2 -1/2 3/2

Так, при переходе от исходной таблицы к первой,


выбираем ведущим элементом число 𝑎11 = 2 и находим:

(1) 𝑎𝑟𝑗 (1) 1 1


𝑎1𝑗 = , 𝑒1𝑗 = ⋅ 𝑒1𝑗 = ⋅ 𝑒1𝑗 ;  𝑗 = 1,2,3;
2 𝑎11 2
(1) 𝑎𝑖1 ⋅ 𝑎1𝑗 𝑎𝑖1 ⋅ 𝑎1𝑗
𝑎𝑖𝑗 = 𝑎𝑖𝑗 − = 𝑎𝑖𝑗 − ;
𝑎11 2
(1)′ 𝑎𝑖1 ⋅ 𝑒1𝑗 𝑎𝑖1 ⋅ 𝑒1𝑗
𝑒𝑖𝑗 = 𝑒𝑖𝑗 − = 𝑒𝑖𝑗 − ;  𝑗 = 1,2,3, 𝑖 = 2,3.
𝑎11 2

После трех шагов получаем таблицу содержащая в


первые три столбца обратную матрицу:

1 1/2 −1/2
𝐴−1 = (−3 0 2 ).
−2 −1/2 3/2

65
Ниже приводится пример программы обращения
матрицы, в которой предполагается, что на главной диагонали
матрицы нет нулевых элементов. Программа также преобразует
также исходную матрицу к верхнетреугольному виду.

#include <stdio.h>
#define n 4
Invers_gauss(float A[n][n],float AI[n][n])
{
int i,j,k,r;
float t,sum;
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
AI[i][j]=0;
AI[i][i]=1;
}
for(r=0;r<n-1;r++)
for(i=r+1;i<n;i++)
{t=A[i][r]/A[r][r];
for(j=r;j<n;j++)
A[i][j]=A[i][j]-t*A[r][j];
for(j=0;j<n;j++)
AI[i][j]=AI[i][j]-t*AI[r][j];
}
for(i=n-1;i>=0;i--)
for(k=0;k<n;k++)
{sum=0;
for(j=i+1;j<n;j++)
sum+=A[i][j]*AI[j][k];
AI[i][k]=(AI[i][k]-sum)/A[i][i];
}
}
int main()
{float a[n][n]={{1.8,-3.8,0.7,-3.7},{0.7,2.1,
- 2.6,-2.8},{7.3,8.1,1.7,-4.9},{1.9,-4.3,
-4.9,-4.7}},inv[n][n]; int i,j;
Invers_gauss(a,inv);
for(i=0;i<n;i++)
66
{for(j=0;j<n;j++)
printf("\t%6.3f",a[i][j]);
printf("\n");
}
printf("\n\n");
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("\t%9.6f",inv[i][j]);
printf("\n");
}
}
Результаты вычислений:

1.800 -3.800 0.700 -3.700


0.000 3.578 -2.872 -1.361
𝐴=( )
0.000 0.000 17.736 19.050
0.000 0.000 0.000 5.402

-0.211200 -0.458391 0.162859 0.269558


-0.035335 0.168895 0.015735 -0.089207
𝐴−1 =( )
0.230304 0.045978 -0.009440 -0.198853
-0.293155 -0.387763 0.061282 0.185133

Задания к лабораторной работе “Численное решение


систем линейных алгебраических уравнений”

Решить систему ЛАУ: а) методом последовательного


исключения неизвестных (методом Гаусса); б) методом Якоби с
точностью 0.00001; в) методом Гаусса-Зейделя с точностью
0.00001; г) вычислить определитель матрицы.

67
Варианты заданий.

3.4 0.7 0.2 −0.2 5.1


0.7 5.1 0.3 0.5 4.2
1. 𝐴 = ( ), 𝑏 = ( );
0.2 0.3 3.8 −0.4 5.3
−0.2 0.5 −0.4 4.7 5.4
7.1 0.9 −0.5 0.6 1.9
0.9 12.1 1.3 −1.1 7.8
2. 2. 𝐴 = ( ), 𝑏 = ( );
−0.5 1.3 6.5 0.4 −11.7
0.6 −1.1 0.4 10.8 8.6

8.1 −0.9 0.6 0.8 7.2


−0.9 14.3 0.3 0.7 10.3
3. 𝐴 = ( ), 𝑏=( );
0.6 0.3 7.9 −0.4 −11.9
0.8 0.7 −0.4 10.6 9.2

23.6 1.5 −0.9 −0.8 −1.2


1.5 14.6 0.7 0.2 0.9
4. 𝐴=( ), 𝑏 = ( );
−0.9 0.7 11.3 −0.6 4.7
−0.8 0.2 −0.6 9.9 −1.2

8.7 1.1 −0.5 0.4 10.2


1.1 9.6 1.2 0.4 −4.3
5. 𝐴=( ), 𝑏 = ( );
−0.5 1.2 14.1 1.3 8.6
0.4 0.4 1.3 13.6 0.9

7.2 2.5 −2.1 −1.2 9.2


2.5 −10.3 1.7 3.5 −6.5
6. 𝐴 = ( ), 𝑏 = ( );
−2.1 1.7 8.2 1.6 4.8
−1.2 3.5 1.6 6.2 7.2

21.6 1.5 −0.9 −0.8 −1.2


1.5 15.6 0.7 0.2 −0.9
7. 𝐴=( ), 𝑏 = ( );
−0.9 0.7 13.3 −0.6 4.8
−0.8 0.2 −0.6 10.9 1.2
68
8.7 1.1 −0.5 0.4 −10.2
1.1 10.6 1.2 0.4 4.3
8. 𝐴=( ), 𝑏 = ( );
−0.5 1.2 12.1 1.3 −8.6
0.4 0.4 1.3 15.6 0.9

9.2 2.5 −2.1 −1.2 −9.2


2.5 −11.3 1.7 3.5 16.5
9. 𝐴 = ( ), 𝑏 = ( );
−2.1 1.7 9.2 1.6 4.8
−1.2 3.5 1.6 8.2 −3.2

(5.18 + 0.1N ) x1 +1.12 x 2 +0.95x3 +1.32x4 = 10.83



 1.12 x1 + (4.28 + 0.2 N ) x 2 + 2.12x3 + 0.57 x4 = 10.91
10. 
 0.95x1 + 2.12 x 2 + (6.13 + 0.3N ) x3 + 1.29 x4 = 11.57
 − 1.32 x1 + 0.57 x 2 + 1.29x3 + (4.57 + 0.4 N ) x4 = 11.25

 4.1161x1 + 0.1254 x2 + 0.1307 x3 + 0.1490 x4 − 0.0126 x5 = 4.97332



 0.1968 x1 + 0.2071x2 + 5.2168 x3 + 0.2271x 4 + 0.1524 x5 = 6.43258
 0.1582 x1 + 6.1675 x2 + 0.1768 x3 + 0.18710 x4 − 1.0376 x5 = 7.35856
11. 
 0.2368 x1 + 0.2471x2 + 0.2568x3 + 7.2671x4 − 0.01834 x5 = 8.0858
− 0.2368 x1 + 0.1326 x2 − 0.3268 x3 − 0.2681x4 + 8.0563 = −0.76901


N – порядковый номер студента по списку группы.

69
IV. ЧИСЛЕННОЕ РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ
УРАВНЕНИЙ

4.1. Метод Ньютона

Решение систем нелинейных уравнений является задачей


существенно более сложной чем решение одного нелинейного
уравнения или системы ЛАУ. Для определенности рассмотрим
следующую систему из двух нелинейных уравнений:

𝑓(𝑥, 𝑦) = 0
{ .
𝑔(𝑥, 𝑦) = 0

где функции 𝑓(𝑥, 𝑦) и 𝑔(𝑥, 𝑦) непрерывны и дифференцируемые


в некоторой области D.
Метод Ньютона основан на идее разложения функций
𝑓(𝑥, 𝑦) и 𝑔(𝑥, 𝑦) в степенные ряды вблизи некоторой точке
(𝑥0 , 𝑦0 ), ограничиваясь при этом первыми тремя членами
разложения.
Пусть (𝑥0 , 𝑦0 ) некоторое начальное приближение
решения рассматриваемой системы. Задача состоит в
определении таких приращений Δх и Δ𝑦 независимых
переменных функций 𝑓(𝑥, 𝑦) и 𝑔(𝑥, 𝑦), что решение может быть
представлено в виде:
𝜉 = х0 + Δх, 𝜂 = 𝑦0 + Δ𝑦 .
Разложим левые части системы уравнений в ряд Тейлора
вблизи точки (𝑥0 , 𝑦0 ), ограничиваясь линейными относительно
приращений х и y членами разложений. Имеем:
𝑓(𝜉, 𝜂) = 𝑓(х0 + Δх, 𝑦0 + Δ𝑦) ≈
𝜕𝑓(𝑥0 , 𝑦0 ) 𝜕𝑓(𝑥0 , 𝑦0 )
≈ 𝑓(𝑥0 , 𝑦0 ) + Δ𝑥 + Δ𝑦 ,
𝜕𝑥 𝜕𝑦
𝑔(𝜉, 𝜂) = 𝑔(х0 + Δх, 𝑦0 + Δ𝑦) ≈
𝜕𝑔(𝑥0 , 𝑦0 ) 𝜕𝑔(𝑥0 , 𝑦0 )
≈ 𝑔(𝑥0 , 𝑦0 ) + Δ𝑥 + Δ𝑦 .
𝜕𝑥 𝜕𝑦
70
Так как по сделанному предположению 𝜉 = х0 + Δх, 𝜂 = 𝑦0 + Δ𝑦
является решением системы, то левые части полученных
разложений равны нулю, а значит

𝜕𝑓(𝑥0 , 𝑦0 ) 𝜕𝑓(𝑥0 , 𝑦0 )
𝑓(𝑥0 , 𝑦0 ) = − Δ𝑥 − Δ𝑦
𝜕𝑥 𝜕𝑦
𝜕𝑔(𝑥0 , 𝑦0 ) 𝜕𝑔(𝑥0 , 𝑦0 )
𝑔(𝑥0 , 𝑦0 ) = − Δ𝑥 − Δ𝑦
𝜕𝑥 𝜕𝑦

и, таким образом, относительно приращений х и y получили


следующую систему:

𝜕𝑓 𝜕𝑓
Δ𝑥 + Δ𝑦 = −𝑓(𝑥0 , 𝑦0 )
𝜕𝑥 𝜕𝑦
𝜕𝑔 𝜕𝑔
𝛥𝑥 + Δ𝑦 = −𝑔(𝑥0 , 𝑦0 )
{𝜕𝑥 𝜕𝑦
При этом частные производные 𝑓𝑥′ , 𝑔𝑥′ , 𝑓𝑦′ , 𝑔𝑦′ вычислены в точке
(𝑥0 , 𝑦0 ).
Если рассмотрим матрицу Якоби системы функций
𝑓(𝑥, 𝑦) и 𝑔(𝑥, 𝑦)
𝜕𝑓(𝑥, 𝑦) 𝜕𝑓(𝑥, 𝑦)
𝜕𝑥 𝜕𝑦
𝐽(𝑥, 𝑦) = ,
𝜕𝑔(𝑥, 𝑦) 𝜕𝑔(𝑥, 𝑦)
( 𝜕𝑥 𝜕𝑦 )

то полученная система уравнений для приращений будет иметь


единственное решение в том случае, когда якобиан
(определитель матрицы Якоби) отличен от нуля вблизи
приближения (𝑥0 , 𝑦0 ), т.е.: det 𝐽(𝑥0 , 𝑦0 ) ≠ 0. Если это условие
выполнено, тогда матрица 𝐽(𝑥, 𝑦) обратима и решение системы
уравнений для приращений имеет вид:
71
Δ𝑥 𝑓(𝑥0 , 𝑦0 )
( ) = −𝐽−1 (𝑥0 , 𝑦0 ) ⋅ ( ),
Δ𝑦 𝑔(𝑥0 , 𝑦0 )

Замечание. Если система содержит m уравнений с m


неизвестными, формулы вычисления решения системы
аналогичны.
Пример. Найти методом Ньютона с точностью =0.005
действительные корни нелинейной системы
2
𝑒 −𝑥 − 𝑦 = 0
{ .
𝑥 3 − 2𝑦 2 = 0

Решение. Графическим методом можно определяем


начальное приближение (𝑥0 , 𝑦0 ) = (0.7, 0.5) (рис. 4.1).

Матрица Якоби для данных функций имеет вид

72
−𝑥 2
−0.858 −1
𝐽(𝑥, 𝑦)|(0.7,0.5) = (−2𝑥𝑒2 −1 ) =( ).
3𝑥 −4𝑦 (0.7,0.5) 2.20 −2

−0.858 −1
Тогда Якобиан равен det 𝐽(𝑥0 , 𝑦0 ) = ( ) = 3.922, а
2.20 −2
обратная матрица имеет вид:

1 −4𝑦 1 1 −2 1
𝐽−1 (𝑥, 𝑦) = ( −𝑥 2
)= ( ).
det𝐽 −3𝑥 2 −2𝑥𝑒 3.922 −2.20 −0,858

Следовательно, решением системы будет вектор:

𝑥1 𝑥0 1 −2 1 𝑓(𝑥0 , 𝑦0 )
(𝑦 ) = (𝑦 ) − ⋅( )⋅( )=
1 0 3.922 −2.20 −0,858 𝑔(𝑥0 , 𝑦0 )

0,7 1 −2 1 0.113 0,80


=( )− ⋅( )⋅( )=( ).
0,5 3.922 −2.20 −0,858 -0.157 0,53

Таким образом, после первой итерации получили


решение (𝑥1 , 𝑦1 ) = (0.80, 0.53). Требуемая точность не
достигнута т.к. 𝑓(𝑥1 , 𝑦1 ) = −0.0498, а 𝑔(𝑥1 , 𝑦1 ) = −0.0027.
Продолжаем вычисления и аналогичным образом находим
второе приближение: (𝑥2 , 𝑦2 ) = (0.805, 0.508).
Т.к. 𝑓(𝑥2 , 𝑦2 ) = (0.0005, −0.0053), то требуемая точность
достигнута и тогда приближенное решение системы вектор
(𝑥 ∗ , 𝑦 ∗ ) ≈ (0.805, 0.508).

4.2. Метод простых итераций

Рассмотрим следующую систему из двух нелинейных


уравнений:
𝑓(𝑥, 𝑦) = 0
{ .
𝑔(𝑥, 𝑦) = 0
73
для которой следует определить действительные корни с
заданной точностью . При этом будем считать, что корни
изолированные. Число и приближенные значения корней можно
определить графически если на плоскости построить кривые
𝑓(𝑥, 𝑦) и 𝑔(𝑥, 𝑦). Координаты точек пересечения этих кривых и
будут решения исходной системы.
Система может быть записана в следующем
эквивалентном виде:

𝑥 = 𝜑1 (𝑥, 𝑦)
{ . (4.1)
𝑦 = 𝜑2 (𝑥, 𝑦)

Тогда, следуя идее итерационных методов, приходим к формуле


приближенного вычисления корней:

𝑥 = 𝜑1 (𝑥𝑛 , 𝑦𝑛 )
{ 𝑛+1 , 𝑛 = 0,1,2, . ..,
𝑦𝑛+1 = 𝜑2 (𝑥𝑛 , 𝑦𝑛 )

где (𝑥0 , 𝑦0 ) начальное приближение.


Условия сходимости итерационного процесса
сформулированы в следующей теореме:
Теорема 4.1. Пусть система (4.1) имеет единственное
решение (𝜉, 𝜂) в прямоугольнике 𝐷 = {𝑎 ≤ 𝑥 ≤ 𝑏; 𝑐 ≤ 𝑦 ≤ 𝑑}.
Тогда если:
1) функции 𝜑1 (𝑥, 𝑦) и 𝜑2 (𝑥, 𝑦) непрерывны вместе с
частными производными первого порядка в D;
2) начальное приближение (𝑥0 , 𝑦0 ) и последующие
приближения (𝑥𝑛 , 𝑦𝑛 ) принадлежат D;
3) в D выполняются неравенства

𝜕𝜑1 𝜕𝜑2 𝜕𝜑1 𝜕𝜑2


| |+| | ≤ 𝑞1 < 1, | |+| | ≤ 𝑞2 < 1,
𝜕𝑥 𝜕𝑥 𝜕𝑦 𝜕𝑦

74
тогда последовательные приближения

𝑥 = 𝜑1 (𝑥𝑛 , 𝑦𝑛 )
{ 𝑛+1 , 𝑛 = 0,1,2, . ..
𝑦𝑛+1 = 𝜑2 (𝑥𝑛 , 𝑦𝑛 )

сходятся к решению x= и y=, причем

lim 𝑥𝑛 = 𝜉, lim 𝑦𝑛 = 𝜂.
𝑛→∞ 𝑛→∞

Замечание. Утверждение теоремы верно и для случая,


когда условия 3) будут заменены на неравенства

𝜕𝜑1 𝜕𝜑1 𝜕𝜑2 𝜕𝜑2


| |+| | ≤ 𝑞1 < 1, | |+| | ≤ 𝑞2 < 1.
𝜕𝑥 𝜕𝑦 𝜕𝑥 𝜕𝑦

Оценка погрешности решения, допущенная на итерации


с номером n задана формулой:

𝑀
|𝜉 − 𝑥𝑛 | + |𝜂 − 𝑦𝑛 | ≤ (|𝑥 − 𝑥𝑛−1 | + |𝑦𝑛 − 𝑦𝑛−1 |) ,
1−𝑀 𝑛

где 𝑀 = max{𝑞1 , 𝑞2 } .

Пример. Найти с точностью 𝜀 = 0.005 решение


нелинейной системы

𝑥 3 − 𝑦 3 + 15𝑥 − 12 = 0
{ .
𝑥 3 + 𝑦 3 − 15𝑦 + 18 = 0

Решение. Графически изолируем корни. Для этого систему


запишем в виде:
3
𝑦 = √𝑥3 + 15𝑥 − 12
{ 3 .
𝑦 = √15𝑦 − 𝑥3 − 18
75
Графики представлены на рис. 4.2. Заметим, что имеются две
точки пересечения, а значит на прямоугольнике
𝐷 = {0.75 ≤ 𝑥 ≤ 1.75; 1 ≤ 𝑦 ≤ 3}
система имеет два действительных корня. Найдем корень из
прямоугольника

𝐷1 = {0.75 ≤ 𝑥 ≤ 1.2; 1 ≤ 𝑦 ≤ 1.6}.

В этой области грубое значение корня (1.0, 1.5). Уточним


корень методом постой итерации для системы нелинейных
уравнений.

Наиболее простая эквивалентная форма, которая будет


использована в итерационном процессе, будет

х = (−𝑥 3 + 𝑦 3 + 12)/15
{ ,
𝑦 = (𝑥 3 + 𝑦 3 + 18)/15

а формулы для итераций:


х = (−𝑥𝑛 3 + 𝑦𝑛 3 + 12)/15
{ 𝑛+1 , 𝑛 = 0,1, ⋯.
𝑦𝑛+1 = (𝑥𝑛 3 + 𝑦𝑛 3 + 18)/15

Т.к. область, содержащая корень, определена не будем


исследовать вопросы сходимости, а перейдем к
76
непосредственным вычислениям. При этом возьмем, например,
нулевое приближение равным (1.0, 1.7). Вычисления проведем
до тех пор, пока |𝑥𝑛+1 − 𝑥𝑛 | + |𝑦𝑛+1 − 𝑦𝑛 | не станет меньше
требуемой точности .
Результаты вычислений приведены в следующей
таблице:
Nr 𝑥𝑛 𝑦𝑛 |𝑥𝑛+1 − 𝑥𝑛 | |𝑦𝑛+1 − 𝑦𝑛 |
итер.
1 1.0000 1.7000 0.0608 0.1058
2 1.0608 1.5942 0.0703 0.0444
3 0.9905 1.5497 0.0071 0.0368
4 0.9833 1.5129 0.0158 0.0186
5 0.9674 1.4942 0.0054 0.0114
6 0.9620 1.4828 0.0040 0.0060
7 0.9543 1.4705 0.0019 0.0034

Следовательно приближенное значение корня исходной


системы равно:
(𝜉, 𝜂) ≈ (0.9543,1.4705).

Задания к лабораторной работе “Численное решение


систем нелинейных уравнений“
Для системы нелинейных уравнений

𝑎3
𝑥 3 − 𝑏𝑦 2 − =0
{ 27 (𝑎 > 0, 𝑏 > 0)
𝑥 2/3 + 𝑦 2/3 − 𝑎2/3 = 0

определить:
1. графическим методом начальное приближение (𝑥0 , 𝑦0 )
корня системы;
2. уточнить значение корня методами Ньютона и методом
простой итерации с точность 𝜀 = 10−4 .
Здесь 𝑎 = 1 + 0.25 ⋅ 𝑁;  𝑏 = 1 + 0.5 ⋅ 𝑁,  𝑁 = 1,2,3,4.
77
V. ИНТЕРПОЛИРОВАНИЕ ФУНКЦИЙ

5.1 Постановка задачи интерполирования

Рассмотрим табличную функцию 𝑓: [𝑎, 𝑏] → 𝑅

𝑥 𝑥0 𝑥1 ... 𝑥𝑛
𝑦 𝑦0 𝑦1 ... 𝑦𝑛

где 𝑦𝑖 = 𝑓(𝑥𝑖 ), 𝑖 = 0,1, ⋯ , 𝑛. Точки 𝑥0 = 𝑎, 𝑥1 , 𝑥2 , ⋯ , 𝑥𝑛 = 𝑏


называются узлами интерполяции.
Задача интерполяции формулируется следующим
образом: для функции 𝑦 = 𝑓(𝑥), аналитическая форма которой
неизвестна или имеет сложный вид, необходимо построить
функцию 𝐹(𝑥), значения которых в узлах будут те же что у
функции 𝑓(𝑥), т.е.:

𝐹(𝑥0 ) = 𝑦0 , 𝐹(𝑥1 ) = 𝑦1 , … , 𝐹(𝑥𝑛 ) = 𝑦𝑛

Геометрический смысл задачи (рис. 5.1) заключается в


следующем: требуется построить кривую 𝐹(𝑥) определенного
вида и проходящую через точки (𝑥𝑖 , 𝑦𝑖 ),  𝑖 = 0,1,2, . . . , 𝑛.

78
Если при этом не уточняется класс функций, которому
должна принадлежать F(x), то таким образом поставленная
задача имеет бесчисленное множество решений, т.к. через
систему точек (𝑥𝑖 , 𝑦𝑖 ), 𝑖 = 0,1, … , 𝑛 можно провести
бесконечно много кривых.
Существуют очень много способов приближения
функции 𝑓(𝑥) некоторой функцией для того, чтобы вычислить
ее значения в некоторых промежуточных точках 𝑥 ≠ 𝑥𝑖 , 𝑖 =
0,1, ⋯ , 𝑛 . Такая процедура называется интерполированием
функции 𝑓(𝑥).
Если при этом точка 𝑥 ∈ [𝑎, 𝑏], то имеет место
интерполяция в узком смысле, а если 𝑥 ∉ [𝑎, 𝑏], то значит
решается задача экстрополирования (интерполяция в широком
смысле). Интерполирование функций имеет большое значение в
вычислительной математике при решении задач других классов,
например, при численном интегрировании и численном
дифференцировании функций.
Наиболее часто для аппроксимации функций с помощью
интерполяции используются алгебраические многочлены
степени n вида

𝑃𝑛 (𝑥) = 𝑎𝑛 𝑥 𝑛 + 𝑎𝑛−1 𝑥 𝑛−1 +. . . +𝑎1 𝑥 + 𝑎0 .

Такой выбор объясняется теоретическим обоснованием


аппроксимации некоторой функции 𝑓(𝑥) алгебраическими
многочленами (теорема Вейерштрасса) и простотой вычисления
значений многочлена в точке (например, по схеме Горнера).
Для того, чтобы многочлен 𝑃𝑛 (𝑥) интерполировал
функцию f(x), необходимо, чтобы в узлах интерполирования
(𝑥𝑖 , 𝑦𝑖 ), 𝑖 = 0,1, … , 𝑛 выполнялись равенства:

𝑃𝑛 (𝑥𝑖 ) = 𝑓(𝑥𝑖 ),  𝑖 = 0,1, . . . , 𝑛.

Доказывается, что построенный таким образом


многочлен является единственным.
79
Теорема 5.1. Существует единственный интерполяционный
многочлен степени n такой что

𝑃𝑛 (𝑥𝑖 ) = 𝑓(𝑥𝑖 ),  𝑖 = 0,1, . . . , 𝑛.

5.2. Алгебраическое интерполирование функций

Рассмотрим систему 𝑃𝑛 (𝑥𝑖 ) = 𝑓(𝑥𝑖 ),  𝑖 = 0,1, . . . , 𝑛 из n+1


уравнений с неизвестными 𝑎0 , 𝑎1 , . . . , 𝑎𝑛 , или, в развернутом
виде
 a + a x + a x 0 2 + a x 03 +  + a x 0 n = y
 0 1 0 2 3 n 0
 a0 + a1x1+ a2 x1 + a3 x1 +  + an x1 = y1
2 3 n

     .
a + a x + a x n 2 + a x n 3 +  a x n n = y
 0 1 n 2 3 n n

Данная система ЛАУ будет иметь единственное решение,


если ее определитель
1 x0 x02 x 03  x 0 n
1 x1 x12 x13  x1n
D( x0 , x1,..., xn ) =
   
1 xn xn2 xn 3
xnn

отличен от нуля. Но это условие выполняется, если точки


𝑥0 , 𝑥1 , . . . , 𝑥𝑛 различны, т.к. в этом случае полученный
определитель является определителем Вандермонда
𝑊(𝑥0 , 𝑥1 , . . . , 𝑥𝑛 ). В этих условиях решение задачи
интерполирования дается формулой

𝐷 ∗ (𝑥, 𝑥0 , 𝑥1 , … , 𝑥𝑛 )
𝑃𝑛 (𝑥) = − ,
𝑊(𝑥0 , 𝑥1 , … , 𝑥𝑛 )

80
где использован определитель

0 1 x x2 x3  x n
y0 1 x 0 x02 x 03  x 0 n
D ( x, x0 , x1,..., xn ) = y 1 x
*
x12 x13  x1n .
1 1
   
yn 1 x n xn2 xn 3
xnn

Таким образом, определив решение полученной системы,


находим единственный набор коэффициентов многочлена
𝑎0 , 𝑎1 , . . . , 𝑎𝑛 , а значит задача интерполирования функции
решена.
Данный способ интерполяции функций называется
методом неопределенных коэффициентов.
Несмотря на кажущую простоту этого метода решения
задачи интерполирования, он для практических применений
мало пригоден, т.к. требует вычисления определителей, что
сопряжено с большими вычислительными проблемами при
большом n.
Рассмотрим применение метода для самого простого
случая когда n=1. В этом случае имеем линейную
интерполяцию (Рис. 5.2).
Возьмем элементарный отрезок [𝑥𝑖 , 𝑥𝑖+1 ] ⊂ [𝑎, 𝑏] и будем
аппроксимировать на этом отрезке функцию f(x) линейной
функцией 𝑃1 (𝑥) = 𝑎𝑖 𝑥 + 𝑏𝑖 , где 𝑎𝑖 , 𝑏𝑖 неизвестные
коэффициенты. Подставив в эту функцию значения узлов,
получим систему
𝑎 𝑥 + 𝑏𝑖 = 𝑦𝑖
{ 𝑖 𝑖 .
𝑎𝑖 𝑥𝑖+1 + 𝑏𝑖 = 𝑦𝑖+1

Определитель этой системы


𝑥 1
𝐷(𝑥𝑖 , 𝑥𝑖+1 ) = | 𝑖 | = 𝑥𝑖 − 𝑥𝑖+1 ≠ 0.
𝑥𝑖+1 1
81
Тогда решение системы имеет вид:
1 𝑦 1 𝑦𝑖 − 𝑦𝑖+1
𝑎𝑖 = ⋅| 𝑖 |=
𝑥𝑖 − 𝑥𝑖+1 𝑦𝑖+1 1 𝑥𝑖 − 𝑥𝑖+1

1 𝑥𝑖 𝑦𝑖 𝑥𝑖 𝑦𝑖+1 − 𝑥𝑖+1 𝑦𝑖
 𝑏𝑖 = ⋅ |𝑥 𝑦𝑖+1 | = .
𝑥𝑖 − 𝑥𝑖+1 𝑖+1 𝑥𝑖 − 𝑥𝑖+1

В этом случае функция для линейного интерполирования на


рассматриваемом отрезке записывается в виде
𝑦𝑖 − 𝑦𝑖+1 𝑥𝑖 𝑦𝑖+1 − 𝑥𝑖+1 𝑦𝑖
𝑃1 (𝑥) = ⋅𝑥+ =
𝑥𝑖 − 𝑥𝑖+1 𝑥𝑖 − 𝑥𝑖+1
𝑥 − 𝑥𝑖+1 𝑥𝑖 − 𝑥
= ⋅ 𝑦𝑖 + ⋅𝑦 .
𝑥𝑖 − 𝑥𝑖+1 𝑥𝑖 − 𝑥𝑖+1 𝑖+1
Метод неопределенных коэффициентов для случая когда
n=2 позволяет, в частности, осуществить квадратичную (или
параболическую) интерполяцию, так как через любые три
различные точки на плоскости можно провести единственную
параболу (рис. 5.3).
Рассмотрим отрезок [𝑥𝑖−1 , 𝑥𝑖+1 ], содержащий узлы
интерполирования 𝑥𝑖−1 , 𝑥𝑖 , 𝑥𝑖+1 и будем аппроксимировать на
этом отрезке функцию f(x) квадратичным трехчленом 𝑃2 (𝑥) =
𝑎𝑖 𝑥 2 + 𝑏𝑖 х + с𝑖 , где 𝑎𝑖 , 𝑏𝑖 , 𝑐𝑖 неизвестные коэффициенты. Так как

Рис. 5.2 Рис. 5.3


82
по условию парабола должна проходить через эти точки, то
должны выполняться равенства
2
𝑎𝑖 𝑥𝑖−1 + 𝑏𝑖 х𝑖−1 + с𝑖 = 𝑦𝑖−1
2
{ 𝑎𝑖 𝑥𝑖 + 𝑏𝑖 х𝑖 + с𝑖 = 𝑦𝑖 .
2
𝑎𝑖 𝑥𝑖+1 + 𝑏𝑖 х𝑖+1 + с𝑖 = 𝑦𝑖+1

Решением системы являются коэффициенты


2
интерполирующего трехчлена 𝑃2 (𝑥) = 𝑎𝑖 𝑥 + 𝑏𝑖 х + с𝑖 .
Пример. Найти значение функции f(x), заданной таблицей

x 1.50 2.50 3.50 4.50


y 8 13 25 27

в точке 2.75 используя: 1) линейную интерполяцию; 2)


квадратичную интерполяцию.
Решение. 1) По формуле, полученной выше, для 𝑥𝑖 =2.5 и
𝑥𝑖+1 =3.5, 𝑦𝑖 =13 и 𝑦𝑖+1 =25 строим интерполяционную функцию:

𝑥 − 3.5 𝑥 − 2.5
𝑃1 (𝑥) = ⋅ 13 + ⋅ 25 = 12𝑥 − 17.
2.5 − 3.5 3.5 − 2.5

Отсюда искомое значение 𝑦(2.75) ≈ 12 ⋅ 2.75 − 17 = 16.


2) Так как 2.75 ∈ (2.5, 4.5), то используем узлы
𝑥𝑖−1 = 2.5, 𝑥𝑖 = 3.5, 𝑥𝑖+1 = 4.5.
Подставив в формуле

𝑃2 (𝑥) = 𝑎𝑖 𝑥 2 + 𝑏𝑖 х + с𝑖

координаты узлов, получим систему

83
2. 52 𝑎𝑖 + 2.5𝑏𝑖 + с𝑖 = 13 6.25𝑎𝑖 + 2.5𝑏𝑖 + с𝑖 = 13
{3. 5 𝑎𝑖 + 3.5𝑏𝑖 + с𝑖 = 25 ⇒ {12.25𝑎𝑖 + 3.5𝑏𝑖 + с𝑖 = 25
2

4. 52 𝑎𝑖 + 4.5𝑏𝑖 + с𝑖 = 27 20.25𝑎𝑖 + 4.5𝑏𝑖 + с𝑖 = 27

Решение последней системы: 𝑎𝑖 = −5, 𝑏𝑖 = 42, 𝑐𝑖 = −60.7.


Следовательно трехчлен имеет вид:

𝑃2 (𝑥) = −5𝑥 2 + 42х − 60.7.


В точке 2.75 имеем:

𝑃2 (2.75) = −5 ⋅ 2.752 + 42 ⋅ 2.75 − 60.7 = 16.9875.

5.3. Интерполяционная формула Лагранжа

Этот метод интерполяции функции находит широкое


применение особенно в тех случаях, когда разбиение отрезка
интерполирования [𝑎, 𝑏] на элементарные отрезки
неравномерно, т.е. узлы интерполирования не равноотстоящие.
Рассмотрим систему из (n +1) узлов 𝑎 = 𝑥0 , 𝑥1 , … , 𝑥𝑛 = 𝑏
и значения некоторой функции 𝑓(𝑥) в этих точках:

𝑓(𝑥0 ) = 𝑦0 , 𝑓(𝑥1 ) = 𝑦1 , . . . , 𝑓(𝑥𝑛 ) = 𝑦𝑛 .

Построим многочлен 𝐿𝑛 (𝑥) степени не большей n,


значения которого в узлах совпадали с соответствующими
значениями функции f(x). Это значит, что в узлах
интерполирования выполняются равенства:

𝐿𝑛 (𝑥𝑖 ) = 𝑓(𝑥𝑖 ),  𝑖 = 0,1, . . . , 𝑛.

Вначале рассмотрим вспомогательную задачу: построить такой


(𝑖)
многочлен 𝑝𝑛 (𝑥), чтобы выполнялись равенства

84
(𝑖) 1,  𝑖 = 𝑗
𝑝𝑛 (𝑥𝑗 ) = { (рис. 5.5):
0,  𝑖 ≠ 𝑗
Легко заметить, что этот
многочлен должен иметь вид:

(𝑖)
𝑝𝑛 (𝑥) = 𝐶𝑖 ⋅ (𝑥 − 𝑥0 ) ⋯ (𝑥 −
−𝑥𝑖−1 )(𝑥 − 𝑥𝑖+1 ) ⋯ (𝑥 − 𝑥𝑛 ),

где постоянные 𝐶𝑖 можно


определить из равенства
(𝑖)
𝑝𝑛 (𝑥𝑖 ) = 1:

1
𝐶𝑖 = .
(𝑥𝑖 − 𝑥0 ) ⋯ (𝑥𝑖 − 𝑥𝑖−1 )(𝑥𝑖 − 𝑥𝑖+1 ) ⋯ (𝑥𝑖 − 𝑥𝑛 )

Следовательно

(𝑖) (𝑥 − 𝑥0 ) ⋯ (𝑥 − 𝑥𝑖−1 )(𝑥 − 𝑥𝑖+1 ) ⋯ (𝑥 − 𝑥𝑛 )


𝑝𝑛 (𝑥) = .
(𝑥𝑖 − 𝑥0 ) ⋯ (𝑥𝑖 − 𝑥𝑖−1 )(𝑥𝑖 − 𝑥𝑖+1 ) ⋯ (𝑥𝑖 − 𝑥𝑛 )

Т.к. вспомогательные многочлены определены, решением


задачи интерполирования будет функция
𝑛
(𝑖)
𝐿𝑛 (𝑥) = ∑ 𝑦𝑖 ⋅ 𝑝𝑛 (𝑥) =
𝑖=0
𝑛
(𝑥 − 𝑥0 ) ⋯ (𝑥 − 𝑥𝑖−1 )(𝑥 − 𝑥𝑖+1 ) ⋯ (𝑥 − 𝑥𝑛 )
= ∑ 𝑦𝑖
(𝑥𝑖 − 𝑥0 ) ⋯ (𝑥𝑖 − 𝑥𝑖−1 )(𝑥𝑖 − 𝑥𝑖+1 ) ⋯ (𝑥𝑖 − 𝑥𝑛 )
𝑖=0

или, в более компактной форме:

85
𝑛 𝑛
𝑥 − 𝑥𝑗
𝐿𝑛 (𝑥) = ∑ 𝑦𝑖 ∏ .
𝑥𝑖 − 𝑥𝑗
𝑖=0 𝑗=0
𝑗≠𝑖
Многочлен 𝐿𝑛 (𝑥) называется интерполяционным
(𝑖)
многочленом Лагранжа, а функции 𝑝𝑛 - лагранжевы
коэффициенты. Следуя теореме 5.1 это представление
единственно.
В узлах интерполирования значения многочлена
Лагранжа совпадают со значениями функции f(x) в этих точках,
а в точках отличных от узлов погрешность интерполяции равна

𝑅𝑛 (𝑥) = 𝑓(𝑥) − 𝐿𝑛 (𝑥).

Если f(x) непрерывна вместе со своими производными до


(𝑛 + 1)-го порядка включительно, тогда погрешность
интерполяции равна
𝑓 (𝑛+1) (𝜉)
𝑅𝑛 (𝑥) = 𝜔 (𝑥),
(𝑛 + 1)! 𝑛+1
где
𝜔𝑛+1 (𝑥) = (𝑥 − 𝑥0 ) ⋯ (𝑥 − 𝑥𝑖−1 )(𝑥 − 𝑥𝑖 ) ⋯ (𝑥 − 𝑥𝑛 ),

а  - точка из интервала (𝑥0 , 𝑥𝑛 ).


Пример. Написать интерполяционный многочлен
Лагранжа для функции f(x) заданной таблицей

x -1 0 2
y -8 -1 1

Решение. Т.к. имеем три узла, значит, решением задачи


будет квадратичный трехчлен. По формуле, приведенной выше,
получаем:
(𝑥 − 0)(𝑥 − 2) (𝑥 + 1)(𝑥 − 2)
𝐿2 (𝑥) = (−8) ⋅ + (−1) ⋅ +
(−1 − 0)(−1 − 2) (0 + 1)(0 − 2)
86
(𝑥 + 1)(𝑥 − 0)
+1 ⋅ == −2𝑥 2 + 5𝑥 − 1 .
(2 + 1)(2 − 0)

В приложениях часто нет необходимости в определении


аналитической формы многочлена Лагранжа, а требуется лишь
найти его значение в какой-то заданной точке отличной от узлов
с известной погрешностью. В таких случаях удобно
воспользоваться схемой Эйткена.
Алгоритм схемы Эйткена заключается в следующем. На
отрезке [𝑥0 , 𝑥1 ] осуществляется линейная интерполяция с
помощью интерполяционной формулы Лагранжа
𝑦0 𝑥0 − 𝑥
𝑥 − 𝑥1 𝑥 − 𝑥0 |𝑦 𝑥 − 𝑥 |
𝐿01 (𝑥) = 𝑦0 ⋅ + 𝑦1 ⋅ = 1 1
.
𝑥0 − 𝑥1 𝑥1 − 𝑥0 𝑥1 − 𝑥0

На отрезке [𝑥1 , 𝑥2 ] имеем


𝑦1 𝑥1 − 𝑥
𝑥 − 𝑥2 𝑥 − 𝑥1 |𝑦 𝑥 − 𝑥 |
𝐿12 (𝑥) = 𝑦1 ⋅ + 𝑦2 ⋅ = 2 2
.
𝑥1 − 𝑥2 𝑥2 − 𝑥1 𝑥2 − 𝑥1

Аналогично, на [𝑥0 , 𝑥2 ] получим


𝑦0 𝑥0 − 𝑥
𝑥 − 𝑥2 𝑥 − 𝑥0 |𝑦 𝑥 − 𝑥 |
𝐿02 (𝑥) = 𝑦0 ⋅ + 𝑦2 ⋅ = 2 2
.
𝑥0 − 𝑥2 𝑥2 − 𝑥0 𝑥2 − 𝑥0
Легко проверяется, что

𝐿01 (𝑥0 ) = 𝑦0 , 𝐿01 (𝑥1 ) = 𝑦1 и 𝐿02 (𝑥2 ) = 𝑦2 .

Далее строятся функции 𝐿13 (𝑥), 𝐿23 (𝑥), и т.д. Если построить


функцию
𝐿 (𝑥) 𝑥0 − 𝑥
| 01 |
𝐿12 (𝑥) 𝑥2 − 𝑥
𝐿012 (𝑥) = ,
𝑥2 − 𝑥0

87
то можно убедиться, что это квадратный трехчлен является
многочленом Лагранжа, который принимает в узлах 𝑥0 , 𝑥1 , х2
значения 𝑦0 , 𝑦1 , 𝑦3 , соответственно.
Обобщая сказанное, можно показать, что функция

𝐿 (𝑥) 𝑥0 − 𝑥
| 01...𝑛−1 |
𝐿12...𝑛 (𝑥) 𝑥𝑛 − 𝑥
𝐿012...𝑛 (𝑥) =
𝑥𝑛 − 𝑥0

является многочленом Лагранжа, принимающий в узлах


𝑥0 , 𝑥1 , . . . , 𝑥𝑛 значения 𝑦0 , 𝑦1 , . . . , 𝑦𝑛 .
Вычисления по схеме Эйткена осуществляют в таблицах
вида:

𝑥𝑖 𝑦𝑖 𝑥𝑖 − 𝑥 𝐿𝑖−1,𝑖 𝐿𝑖−2,𝑖−1,𝑖 𝐿𝑖−3,𝑖−2,𝑖−1,𝑖


𝑥0 𝑦0 𝑥0 − 𝑥
𝑥1 𝑦1 𝑥1 − 𝑥 𝐿01 (𝑥)
𝑥2 𝑦2 𝑥2 − 𝑥 𝐿12 (𝑥) 𝐿012 (𝑥)
𝑥3 𝑦3 𝑥3 − 𝑥 𝐿23 (𝑥) 𝐿123 (𝑥) 𝐿0123 (𝑥)

С учетом формулы 𝑅𝑛 (𝑥) = 𝑓(𝑥) − 𝐿𝑛 (𝑥) для


погрешности интерполяции, можно получить следующую
оценку приближения на (𝑘 + 1) шаге:
𝑅𝑘 (𝑥) ≈ 𝐿𝑘+1 (𝑥) − 𝐿𝑘 (𝑥) .
Эта формула используется для приближенного вычисления
значения функции f(x) в заданной точке 𝑥 ≠ 𝑥𝑖 , 𝑖 = 1,2, ⋯ , 𝑛, с
требуемой точностью >0. Для этого последовательно
вычисляются многочлены 𝐿01 (𝑥),  𝐿12 (𝑥), . . . , 𝐿1𝑛 (𝑥), . ..
используя схему Эйткена. Одновременно, вычисляют величины
𝜀1 = |𝐿012 (𝑥) − 𝐿01 (𝑥)|, 
  𝜀2 = |𝐿0123 (𝑥) − 𝐿012 (𝑥)|,
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
 𝜀𝑘−1 = |𝐿012⋯𝑘 (𝑥) − 𝐿01⋯(𝑘−1) (𝑥)|.
88
Если для некоторого k имеет место неравенство 𝜀𝑘 < 𝜀
вычисления прекращаются т.к. требуемая точность достигнута
и, следовательно, 𝑓(𝑥) ≈ 𝐿012...𝑘 (𝑥). Иначе, (𝜀𝑘 ≥ 𝜀) определяют
наименьшее число r для которого 𝜀𝑟 = min {𝜀𝑖 } и полагают
1≤𝑖≤𝑛

𝑓(𝑥) ≈ 𝐿012⋯𝑟 (𝑥).

Пример. Используя значения функции


𝜋 𝜋 𝜋
𝑓(𝑥) = sin 𝑥  для 𝑥 = 0,  ,  , 
6 4 3 𝜋
вычислить по схеме Эйткена значение sin   и оценить
5
погрешность приближения.
𝜋
Решение. В данном случае 𝑥 = ≈ 0.6283 - точка, для
5
которой необходимо вычислить значение синуса и
𝜋 𝜋 𝜋
  = 0.5236,   = 0.7854,   = 1.0471.
6 4 3
Вычисляем многочлены 𝐿к (𝑥):
𝑦0 𝑥0 − 𝑥
|𝑦 𝑥 − 𝑥 | 1 0 −0.6283
𝐿01 (𝑥) = 1 1
= ⋅| | = 0.5999 ,
𝑥1 − 𝑥0 0.5236 0.5 −0.1047
𝑦1 𝑥1 − 𝑥
|𝑦 𝑥 − 𝑥| 1 0.5 −0.1047
𝐿12 (𝑥) = 2 2
= ⋅| | = 0.5828 ,
𝑥2 − 𝑥1 0.2618 0.707 0.1571
𝑦2 𝑥2 − 𝑥
|𝑦 𝑥 − 𝑥 | 1 0.707 0.1570
𝐿23 (𝑥) = 3 3
= ⋅| | = 0.6116 ,
𝑥3 − 𝑥2 0.2618 0.8660 0.4189
𝐿 𝑥0 − 𝑥
| 01 | 1
𝐿12 𝑥2 − 𝑥 0.5999 −0.6283
𝐿012 (𝑥) = = | | = 0.5861
𝑥2 − 𝑥0 0.7854 0.5828 0.1571

89
𝐿12 𝑥1 − 𝑥
| | 1
𝐿23 𝑥3 − 𝑥 0.5828 −0.1047
𝐿123 (𝑥) = = | | = 0.5885
𝑥3 − 𝑥1 0.5236 0.6116 0.4189

𝐿012 𝑥0 − 𝑥
| |
𝐿 𝑥3 − 𝑥
𝐿0123 (𝑥) = 123 =
𝑥3 − 𝑥0
1 0.5861 −0.6283
= | | = 0.5876.
0.0471 0.5885 0.4189

Учитывая, что значения всех этих функций определены,


составляем таблицу:

𝑥𝑖 𝑦𝑖 𝑥𝑖 − 𝑥 𝐿𝑖−1,𝑖 𝐿𝑖−2,𝑖−1,𝑖 𝐿𝑖−3,𝑖−2,𝑖−1,𝑖


0.00000 0.0000 -0.6283
0.5236 0.5000 -0.1047 0.5999
0.7854 0.7071 0.1571 0.5827 0.5861
1.0471 0.8662 0.4189 0.6116 0.5885 0.5876

Т.к. первые две цифры значений 𝐿012 и 𝐿0123 совпадают,


𝜋
следует что sin ≈ 0.587. При этом ошибка приближения равна
5
𝜀 = 0.110−3
Эффективный метод с точки зрения требуемых операций
для вычисления значений многочлена является схема Горнера.
Алгоритм вычислений по этому методу состоит в следующем.
Вначале многочлен записывается в виде

𝑃𝑛 (𝑥) = 𝑎𝑛 𝑥 𝑛 + 𝑎𝑛−1 𝑥 𝑛−1 +. . . +𝑎1 𝑥 + 𝑎0 =


= 𝑎0 + 𝑥(𝑎1 + 𝑥(𝑎2 + ⋯ + 𝑥(𝑎𝑛−1 + 𝑥𝑎𝑛 )) ⋯ ).

Тогда значение многочлена в точке х будет найдено, если


последовательно вычислить величины

90
𝑏𝑛 = 𝑎𝑛
𝑏𝑛−1 = 𝑎𝑛−1 + 𝑥 ⋅ 𝑏𝑛 = 𝑎𝑛−1 + 𝑥 ⋅ 𝑎𝑛
𝑏𝑛−2 = 𝑎𝑛−2 + 𝑥 ⋅ 𝑏𝑛−1 = 𝑎𝑛−2 + 𝑥 ⋅ (𝑎𝑛−1 + 𝑥 ⋅ 𝑎𝑛 )
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
𝑏 = 𝑎0 + 𝑥 ⋅ 𝑏1 = 𝑎0 + 𝑥 ⋅ (𝑎1 + (⋯ + 𝑥(𝑎𝑛−1 + 𝑥 ⋅ 𝑎𝑛 ) ⋯ ) = 𝑃𝑛 (𝑥)

Данный способ вычисления значений многочлена в точке


требует не больше 2n арифметических операций.
Ниже приводится пример программы вычисления
коэффициентов интерполяционного многочлена Лагранжа и его
значение у1 в заданной х1 точке по таблице значений функции.
#include <stdio.h>
#include <stdlib.h>
#define N 6
int main()
{ int i,j,k,m,ii; double r,b[N+1],c[N+2],a[N+1],
x[7]={-2.2, -1.3, -0.5,1.1, 2.1, 3.2,4.3},
y[7]={133.954,-11.60306,-16.03422,-10.37124,
-45.00654,-404.4093,-2012.295};
double x1=2.5,y1;
c[0]=1;
puts("------ISHODNYE DANNYE:----------");
for(i=0;i<=N;i++)
printf("\tx[%d]=%8.3f",i,x[i],y[i]);
printf("\n");
for(i=0;i<=N;i++)
printf("\ty[%d]=%8.3f",i,y[i]);
printf("\n");
for(i=0;i<=N;i++)
{c[i+1]=c[i];
for(j=i;j>=1;j--)
c[j]=c[j-1]-c[j]*x[i];
c[0]=-c[0]*x[i];
}
for(i=0;i<=N;i++)
a[i]=0;
b[N]=c[N+1];
91
for(i=0;i<=N;i++)
{r=1;
for(j=0;j<=N;j++)
if(i!=j)
r=r*(x[i]-x[j]);
for(k=N-1;k>=0;k--)
b[k]=c[k+1]+x[i]*b[k+1];
for(k=0;k<=N;k++)
a[k]=a[k]+y[i]*b[k]/r;
}
y1=a[N];
for(i=1;i<=N;i++)
y1=x1*y1+a[N-i];
puts("\n\t\t\tKoefitzienty
mnogoclena Lagrange:");
for(i=0;i<=N;i++)
{if(i%4==0)puts("\n");
printf("\ta%d=%7.4f ",i,a[N-i]);
}
printf("\n");
printf("\n\t--ZNACENIEMN-CLENA V TOCIKE x1:
L[%5.2f]=%8.4f---\n",x1,y1);
printf("\n\t(%6.2f)*x^6+(%6.2f)*x^5+(%6.2f)*
x^4+(%6.2f)*x^3+(%6.2f)*x^2+(%6.2f)*x+(%6.2f)\n",
a[6],a[5],a[4],a[3],a[2],a[1],a[0]);
return 0;
}
Результаты расчетов:
--------------------------------------------ISHODNYE DANNYE:-------------------------
x[0]= -2.2 x[1]= -1.3 x[2]= -0.5 x[3]= 1.1 x[4]= 2.1 x[5]= 3.2 x[6]= 4.3
y[0]= 133.954 y[1]= -11.603 y[2]= -16.034 y[3]= -10.371
y[4]= -45.007 y[5]=-404.409 y[6]=-2012.295

Koefitzienty mnogoclena Lagrange:


a0= 0.0100 a1=-2.1000 a2= 3.2000 a3= 0.0000
a4=-5.2000 a5= 6.0000 a6=-12.0000
---------ZNACENIE MN-CLENA V TOCIKE x1: L[ 2.50]=-107.1367--------

0.01*x^6-2.10*x^5+3.20*x^4+0.00*x^3-5.20*x^2+6.00*x-12.00
92
5.4. Интерполяционные формулы Ньютона

Рассмотрим случай, когда узлы интерполирования


равноотстоящие, т.е.
𝑥𝑖+1 − 𝑥𝑖 = ℎ = Δ𝑥 = const, 𝑖 = 0,1, . . . , 𝑛 − 1.

Конечными разностями первого порядка для функции


f (x) называются числа

𝑦1 − 𝑦0 = Δ𝑦0 , 𝑦2 − 𝑦1 = Δ𝑦1 ,., 𝑦𝑛−1 − 𝑦𝑛−2 = Δ𝑦𝑛−2 ,

второго порядка

Δy1 − Δ𝑦0 = Δ2 𝑦0 , Δ𝑦2 − Δ𝑦1 = Δ2 𝑦1 ,.,


Δ𝑦𝑛−2 − Δ𝑦𝑛−3 = Δ2 𝑦𝑛−3 ,
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . .
к - го порядка

Δ𝑘−1 𝑦1 − Δ𝑘−1 𝑦0 = Δ𝑘 𝑦0 ,

Отсюда получаем значения функции, выраженные через


конечные разности:

𝑦1 = 𝑦0 +𝑦0 ,
𝑦2 = 𝑦0 + 2𝑦0 + 2 𝑦0 ,
𝑦3 = 𝑦0 + 3𝑦0 + 32 𝑦0 + 3 𝑦0 ,

𝑦𝑛 = (1 + )𝑛 𝑦0 = 𝑦0 + 𝑛𝑦0 + ⋯ + 𝑛 𝑦0 .

Конечные разности различных порядков удобно


расположить в горизонтальные или вертикальные таблицы.
Например, для n=4, горизонтальная и вертикальная таблицы
конечных разностей имеют вид:

93
х y y 2y 3y 4y х y y 2y 3y 4y
х0 х0
y0 y0 2y0 3y0 4y0 y0
y0
2y0
х1 х1
y1 y1 2y1 3y1
y1
х2 y1
y2 y2  y2 2 2y1
3y0
х2
х3
y3 y3 y2
y2
4y0
 y2
2
 y1
3

х4 х3
y4 y3
y3
х4 y4

Можно показать, что приведенные формулы позволяют


построить интерполяционный многочлен степени п вида:
𝛥𝑦0 𝛥2 𝑦0
𝑁(𝑥) = 𝑦0 + (𝑥 − 𝑥0 ) + (𝑥 − 𝑥0 )(𝑥 − 𝑥1 ) + ⋯ +
ℎ 2! ℎ2
𝛥𝑛 𝑦0
+ (𝑥 − 𝑥0 ) ⋯ (𝑥 − 𝑥𝑛−1 ).
𝑛! ℎ𝑛

Если теперь в данном многочлене сделать подстановку


𝑥 − 𝑥0
𝑞= ,

получим первую интерполяционную формулу Ньютона для


интерполирования вперед.

𝑞(𝑞 − 1) 2
𝑁1,𝑛 (𝑥) = 𝑦0 + 𝑞Δ𝑦0 + Δ 𝑦0 + ⋯ +
2!
𝑞(𝑞 − 1) ⋯ (𝑞 − 𝑛 + 1) 𝑛
+ Δ 𝑦0 .
𝑛!

94
Заметим, что в этой формуле Ньютона присутствуют только
значения первой строки горизонтальной таблицы. При этом
интерполяционная формула используется для значений близких
к 𝑥0 , т.е. при малых по модулю 𝑞.
Ошибка приближения определяется по формуле:

𝑞(𝑞 − 1) ⋯ (𝑞 − 𝑛) (𝑛+1)
𝑅𝑛 (𝑥) = ℎ𝑛+1 ⋅ 𝑓 (𝜉), 𝜉 ∈ (𝑥0 , 𝑥𝑛 ).
(𝑛 + 1)!
Вторая интерполяционная формула Ньютона (для
интерполирования назад) имеет вид
q(q + 1) 2 q(q + 1)  (q + n − 1) n
N 2, n ( x) = yn + qyn −1 +  yn − 2 +  +  y0 ,
2! n!
𝑥−𝑥
𝑛
где 𝑞 =  

Как правило, вторая интерполяционная формула Ньютона
применяется в случаях, когда необходимо вычислить значение
многочлена в точке, лежащей ближе к точке хn.

Пример. Значения эмпирической функции у = f(x) заданы


таблицей:
х 1.50 1.52 1.54 1.56 1.58 1.60
y 0.51183 0.50064 0.48940 0.47811 0.46678 0.45540

Пользуясь: a) первой интерполяционной формулой Ньютона


найти значение функции в точке 1.51234; b) второй
интерполяционной формулой Ньютона найти значение функции
в точке 1.58183.
Решение. a) Составим таблицу конечных разностей.
х y y 2y
1.50 0.51183 -0.01119 -0.0005
1.52 0.50064 -0.01124 -0.0005
1.54 0.48940 -0.01129 -0.0004
1.56 0.47811 -0.01133 -0.0004
1.58 0.46678 -0.01138
1.60 0.45540
95
Так как элементы столбца конечных разностей 2y практически
постоянные ограничимся в первой интерполяционной формулой
Ньютона тремя слагаемыми. Вычисляем параметры формулы:
𝑥−𝑥0 1.51234−1.50
h=0.02, 𝑞 = = = 0.617 .
ℎ 0.02
Тогда:

f(1.51234)=0.51183-0.617(0.01129)-0.617(0.617-1)0.0005/2=0.50487.

b) Для этой точки


𝑥−𝑥5 1.58183−1.60
𝑞=  = = −0.09085
ℎ 0.02
и
f(1.58183)= 0.45540+(-0.09085)  (-0.01138) +
+(-0.09085)  (-0.09085 +1)(- 0.0004)/2=0.45645.

Замечание 1. Многочлен Ньютона удобен тем, что в случае


добавления нового узла 𝑥𝑛+1 , для интерполирования нет
необходимости в пересчете всех коэффициентов формулы.
Достаточно вычислить только
Δ𝑛+1 𝑦0
(𝑛 + 1)! ℎ𝑛+1

остальные множители не меняются.


Замечание 2. Если количество узлов превышает 10
интерполирование с равноотстоящими узлами малоэффективно,
т.к. погрешность интерполяции вблизи границ интервала
интерполяции с ростом n бесконечно возрастает, что может
привести к расходимости (явление функции Рунге). Кроме
этого, погрешности в исходных данных приводят к
значительным ошибкам интерполяции.
Использование многочленов высокого порядка не только
приводят к погрешностям связанные с округлением, но и

96
приводят к значительным осцилляциям при полиномиальной
интерполяции.
На рисунках 5.8 и 5.9 сплошная кривая является
графиком функции Рунге

1
𝑓(𝑥) =
1 + 25𝑥 2

а пунктируемая кривая представляет график полиномиального


интерполянта. Точками на графиках обозначены узлы
интерполяции

Рис. 5.8 n=5

Рис. 5.9 n=10


97
Задания к лабораторной работе “Интерполирование функций”

Заданы значения функции 𝑓: [𝑎, 𝑏] → 𝑅 в (n +1)


различных точках (узлах) 𝑥0 = 𝑎, 𝑥1 , 𝑥2 , ⋯ , 𝑥𝑛 = 𝑏 . Требуется:
1. Построить интерполяционный многочлен Лагранжа для
заданной табличной функции;
2. С помощью многочлена 𝐿𝑛 (𝑥) вычислить значение
функции y=f(x) в заданной точке ;
3. Аппроксимировать значение 𝑓() с точностью = 10-4
(или с наибольшей возможной точностью), определив
интерполяционный многочлен Лагранжа 𝐿𝑚 (𝑥) для
(m<n).

Варианты:
1. =6.135

х 5.252 6.781 6.879 7.201 8.314 9.265 9.978


y 4.465 5.321 6.653 7.543 8.452 10.317 11.567

2. =6.00+0.15 N,

4.25+ 5.78+ 6.87+ 7.01+ 8.34+ 9.25+ 9.98+


х
+10-3N +10-3N +10-3N +10-3N +10-3N +10-3N +10-3N
2.46+ 3.32+ 4.65+ 5.51+ 6.45+ 7.37+ 8.57+
y
+10-2N +10-2N +10-2N +0.01N +10-2N +10-2N +10-2N

3. =1.50+0.005 N,

1.12+ 1.24+ 1.37+ 1.52+ 1.61+ 1.69+ 1.78+


х
+0.03N +0.03N +0.03N +0.03N +0.03N +0.03N +0.03N
3.46+ 4.32+ 5.25+ 6.21+ 7.45+ 7.91+ 8.23+
y
+0.02N +0.02N +0.02N +0.02N +0.02N +0.02N +0.01N

Здесь N = 1,2,,23 .

98
VI. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ

Задачи вычисления определенных интегралов часто


встречаются в практических приложениях. Если
подынтегральная функция f(x) имеет относительно простой
аналитический вид, то можно найти ее первообразную F(x) и
тогда определенный интеграл вычисляется по формуле
Ньютона-Лейбница:
𝑏
𝐼 = ∫ 𝑓(𝑥)𝑑𝑥 = 𝐹(𝑏) − 𝐹(𝑎),
𝑎

т.е. определенный интеграл от заданной функции на отрезке


численно равен приращению ее первообразной на данном
промежутке. Однако применение данной формулы
затруднительно или вообще невозможно в следующих случаях:
1) интеграл не берущихся, т.е. его первообразная не выражается
с помощью элементарных функций; 2) интеграл берется, но
первообразная функция имеет сложную аналитическую форму,
что затрудняет ее вычисление; 3) подынтегральная функция f(x)
задана таблично или графически.
В таких ситуациях прибегают к численному вычислению
определенного интеграла. В численных методах вычисления
интегралов подынтегральная функция f(x) заменяется другой
функцией, которая должна ее аппроксимировать с достаточной
точностью. Численные методы вычисления интегралов
называют квадратурными формулами. Обычно при
численном интегрировании исходный интеграл заменяется
конечной суммой вида:
𝑛

𝐼𝑛 = ∑ 𝐴𝑖 𝑓(𝑥𝑖 )
𝑖=0

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

lim |𝐼 − 𝐼𝑛 | = 0.
𝑛→∞

6.1. Метод прямоугольников и метод трапеций

Пусть функция f: [𝑎, 𝑏] → 𝑅 непрерывна вместе со своими


производными первого и второго порядков на [𝑎, 𝑏]. Рассмотрим
задачу приближенного вычисления интеграла
𝑏
𝐼 = ∫ 𝑓(𝑥)𝑑𝑥.
𝑎
Из геометрической интерпретации определенного
интеграла известно что численно он равен площади
криволинейной трапеции закллюченной между графиком
функции 𝑦 = 𝑓(𝑥), осью 𝑂𝑥 и прямыми 𝑥 = 𝑎 и 𝑥 = 𝑏. Ясно что,
если криволинейную трапецию заменить приближенно более
простыми геометрическими фигурами, площадь которых легко
вычислить, нам удастся найти формулы, позволяющие
определить приближенное значение интеграла. Для этого
разобьем отрезок [a, b] на n равных интервалов с помощью
точек: 𝑎 = 𝑥0 , 𝑥1 = 𝑥0 + ℎ, 𝑥2 = 𝑥0 + 2ℎ, … , 𝑥𝑛 = 𝑥0 + 𝑛ℎ = 𝑏,
где ℎ = (𝑏 − 1)⁄𝑛– шаг интегрирования и построим на отрезках
[𝑥𝑖 , 𝑥𝑖+1 ],  𝑖 = 0,1, … , 𝑛 − 1 прямоугольники высоты f ( xi ) . В
результате получаем ступенчатую фигуру (рис. 6.1 а, 6.1 б, 6.1 в,
с площадью приближенно равной площади криволинейной
фигуры, причем, чем меньше шаг h, тем точнее результат
приближения.
Площадь элементарного прямоугольника с основанием
[𝑥𝑖 , 𝑥𝑖+1 ] равна𝑆𝑖 = (𝑥𝑖+1 − 𝑥𝑖 ) ⋅ 𝑓(𝑥𝑖 ),  𝑖 = 0,1,2, … , 𝑛 − 1.
Тогда площадь ступенчатой фигуры равна:

100
𝑛−1

𝑆 = ∑ 𝑆𝑖 = ℎ ⋅ (𝑓(𝑥0 ) + 𝑓(𝑥1 ) + ⋯ + 𝑓(𝑥𝑛−1 ))


𝑖=0
и, значит, формула левых прямоугольников для вычисления
определенного интеграла имеет вид:
𝑏
∫ 𝑓(𝑥)𝑑𝑥 ≈ ℎ ⋅ (𝑓(𝑥0 ) + 𝑓(𝑥1 ) + ⋯ 𝑓(𝑥𝑛−1 ))
𝑎

y y

y=f(x)

y=f(x A B
)

a=x 0 x i x i+1 x n =b a=x 0 x i x i+1 x n =b


x Рис. 6.1а x Рис. 6.1б

y=f(x)
Если на отрезках [ xi , xi+1 ]
построить прямоугольники
высоты , то
аналогичным образом a= x 0 xi x i+1 x n =b x
получаем формулу правых
прямоугольников (рис.6.1б) Рис. 6.1в

𝑏
∫ 𝑓(𝑥)𝑑𝑥 ≈ ℎ ⋅ (𝑓(𝑥1 ) + 𝑓(𝑥1 ) + ⋯ + 𝑓(𝑥𝑛 ))
𝑎

101
Приведенные формулы, хотя и имеют невысокую
точность приближения (порядка h), просты и легко
программируются. Более точную формулу получим, очевидно,
если на отрезке [𝑥𝑖 , 𝑥𝑖+1 ] построим прямоугольник с высотой
𝑥 +𝑥
𝑓 ( 𝑖 𝑖+1 ). Площадь такого прямоугольника будет равна
2
𝑥𝑖 + 𝑥𝑖+1 ℎ
𝑆𝑖 = (𝑥𝑖+1 − 𝑥𝑖 ) ⋅ 𝑓 ( ) = ℎ ⋅ 𝑓 (𝑥𝑖 + ),
2 2
 𝑖 = 0,1,2, … , 𝑛 − 1
и тогда получаем формулу
𝑏
∫ 𝑓(𝑥)𝑑𝑥 ≈ ℎ ⋅ (𝑓(𝑥1/2 ) + 𝑓(𝑥3/2 ) + ⋯ 𝑓(𝑥𝑛−1/2 ))
𝑎

где
𝑓(𝑥𝑖+1/2 ) = 𝑓(𝑥𝑖 + ℎ/2).

Эта формула называется формулой прямоугольников или


методом средних. Точность этой формулы имеет порядок h2.
Точнее, имеем:
𝑏
∫ 𝑓(𝑥)𝑑𝑥 ≈ ℎ ⋅ (𝑓 (𝑥1 ) + 𝑓 (𝑥3 ) + ⋯ 𝑓 (𝑥𝑛−1 )) +
𝑎 2 2 2
𝑏−𝑎 ″
+ℎ2 ⋅ ⋅ 𝑓 (𝜉), (𝑎 < 𝜉 < 𝑏).
24

Формула трапеций основана на аппроксимации


функции у=f(x) на отрезке [𝑥𝑖 , 𝑥𝑖+1 ] интерполяционным
многочленом Лагранжа первой степени с узлами 𝑥𝑖 и 𝑥𝑖+1 :
𝑥𝑖+1 𝑥𝑖+1
𝑥𝑖+1 − 𝑥𝑖
∫ 𝑓(𝑥)𝑑𝑥 ≈ ∫ 𝐿1 (𝑥)𝑑𝑥 = (𝑓(𝑥𝑖 ) + 𝑓(𝑥𝑖+1 )).
𝑥𝑖 𝑥𝑖 2

102
Геометрически это означает, что криволинейная
трапеция, ограниченная кривой 𝑦 = 𝑓(𝑥), осью абсцисс и
прямыми х = 𝑥𝑖 и х = 𝑥𝑖+1 , на этом промежутке заменяется
прямоугольной трапецией (рис. 6.2).
Если таким же образом поступить со всеми
элементарными отрезками из [a, b] (по начальным
предположениям они имеют одинаковую длину h), то формула
трапеций имеет следующий вид:

𝑏 𝑛−1

∫ 𝑓(𝑥)𝑑𝑥 ≈ [𝑓(𝑥0 ) + 2 ∑ 𝑓(𝑥𝑖 ) + 𝑓(𝑥𝑛 )] .
𝑎 2
𝑖=1

Ошибка приближения исходного интеграла по формуле


трапеции дается формулой:

(𝑏 − 𝑎)3 ″
𝑅𝑛 = − 𝑓 (𝜉̃), где 𝑎 < 𝜉̃ < 𝑏 .
12𝑛2

Если сравнить ошибки приближения по методу средних


и по методу трапеций, можно заметить, что при сохранении
знака второй производной на
интервале интегрирования, эти
ошибки имеют противоположный
знак и примерно в два раза по
абсолютной величине ошибка
метода трапеций больше ошибки
метода прямоугольников:

(𝑏−𝑎)3 𝑏−𝑎
− 𝑓 ″ (𝜉̃) и 𝑓 ″ (𝜉) .
12𝑛2 24𝑛2

Отсюда естественно предположить, что, используя этот факт,


ошибку приближения можно уменьшить.

103
Пусть 𝐼𝑛𝑝 и 𝐼𝑚𝑝 приближенные значения интеграла на
отрезке, полученные по методу прямоугольников и по методу
трапеций, соответственно. Тогда выражение
𝑏
𝐼 = ∫𝑎 𝑓(𝑥)𝑑𝑥 ≈ (2𝐼𝑛𝑝 + 𝐼𝑚𝑝 )/3

дает более точное приближение значения интеграла.

Пример. Найти по методу трапеций приближенное


значение интеграла для п=12 и оценить погрешность
вычислений.
1.2
𝑑𝑥
𝐼=∫ .
0 √𝑥 2 + 1

Решение. Найдем оценку остаточного члена по формуле:

(𝑏−𝑎)3
𝑅1 ≤ max|𝑓"(𝑥)|
12𝑛2

1.23
Т.к. на [0,1] max|𝑓"(𝑥)| ≤ 2, то 𝑅1 ≤ ⋅ 2 < 0.002 и для
12⋅122
уменьшения ошибок округления вычисления должны
ограничиваться четырьмя знаками после запятой. Шаг
𝑏−𝑎
дискретизации ℎ= = 0.1. При этом значения
𝑛
подинтегральной функции, следующие:

x 0 0.1000 0.2000 0.3000 0.4000 0.5

f(x) 1 0.9950 0.9806 0.9578 0.9284 0.8944

x 0.6000 0.7000 0.8000 0.9000 1.0000 1.1000 1.2000

f(x) 0.8575 0.8192 0.7809 0.7433 0.7071 0.6727 0.6402

и приближенно по формуле трапеций интеграл равен

104
1.2 11
𝑑𝑥 𝑓(𝑥0 ) + 𝑓(𝑥12 )
𝐼=∫ ≈ 0.1 ( + ∑ 𝑓(𝑥𝑘 )) = 1.0157 .
0 √𝑥 2 + 1 2
𝑘=1

Наконец, округляя ответ до трех знаков, получим что:


1.2
𝑑𝑥
𝐼=∫ ≈ 1.016
0 √𝑥 2 + 1

Замечание. Очевидно, что точность вычислений зависит


от шага разбиения отрезка интегрирования: чем меньше шаг,
тем точнее результат. Однако это не всегда возможно, так как
подынтегральная функция может быть задана таблично.

6.2. Метод Симпсона (парабол)

Этот метод предполагает разбиение отрезка


𝑏−𝑎
интегрирования [𝑎, 𝑏] на четное число частей с шагом ℎ = :
𝑛
[𝑥0 , 𝑥2 ], [𝑥2 , 𝑥4 ], … , [𝑥𝑖−1 , 𝑥𝑖+1 ], … , [𝑥𝑛−2 , 𝑥𝑛 ]. Если на отрезке
[𝑥𝑖−1 , 𝑥𝑖+1 ] заменить функцию 𝑦 = 𝑓(𝑥) интерполяционным
многочленом Лагранжа второй степени, получим:
𝑥𝑖+1 𝑥𝑖+1
∫ 𝑓(𝑥)𝑑𝑥 ≈ ∫ 𝐿2 (𝑥)𝑑𝑥 =
𝑥𝑖−1 𝑥𝑖−1
𝑥𝑖+1 − 𝑥𝑖−1
= (𝑓(𝑥𝑖−1 ) + 4𝑓(𝑥𝑖 ) + 𝑓(𝑥𝑖+1 )) =
6

= ⋅ (𝑓(𝑥𝑖−1 ) + 4𝑓(𝑥𝑖 ) + 𝑓(𝑥𝑖+1 )) .
3
Сложив полученные результаты для каждой пары элементарных
отрезков разбиения, получаем формулу Симпсона для всего
интервала [a, b] :

105
𝑏

∫ 𝑓(𝑥)𝑑𝑥 ≈ (𝑓(𝑥0 ) + 4𝑓(𝑥1 ) + 2𝑓(𝑥2 ) + ⋯ + 2𝑓(𝑥𝑛−2 )
𝑎 3
+ 4𝑓(𝑥𝑛−1 ) + 𝑓(𝑥𝑛 ))

Геометрический смысл формулы состоит в том, что через


три точки можно провести параболу и тем самым на отрезке
[ xi−1 , xi+1 ] исходная функция
аппроксимируется квадратным
трехчленом (рис.6.3).

Погрешность приближения метода


Симпсона имеет вид:

(𝑏 − 𝑎)5 (𝐼𝑉)
𝑅𝑛 = − 𝑓 (𝜉), 𝑎<𝜉
180𝑛4
<𝑏.

Пример. Найти по методу Симпсона приближенное


значение интеграла
1.2
𝑑𝑥
𝐼=∫ .
0 √𝑥 2 + 1
𝑏−𝑎
Решение. Пусть п=12. Тогда ℎ = = 0.1 и:
𝑛
0.1
𝐼≈ (𝑓(𝑥0 ) + 4(𝑓(𝑥1 ) + 𝑓(𝑥3 ) + ⋯ + 𝑓(𝑥11 )) +
3
+2(𝑓(𝑥2 ) + 𝑓(𝑥4 ) + ⋯ + 𝑓(𝑥10 )) + 𝑓(𝑥12 )) = 1.015973

Заметим, что данный интеграл табличный и он равен


1.2
𝑑𝑥 1.2
𝐼=∫ = ln (𝑥 + √𝑥 2 + 1)| = 1.0159731 .
0 √𝑥 2 + 1 0

106
6.3. Формулы Ньютона-Котеса

Рассмотренные в предыдущих параграфах методы


численного интегрирования, вообще говоря, являются
частными случаями более общего метода – метода Ньютона-
Котеса.
Пусть требуется вычислить определенный интеграл:
𝑏
𝐼 = ∫ 𝑓(𝑥)𝑑𝑥 .
𝑎
𝑏−𝑎
Разобьем отрезок [𝑎, 𝑏] на n равных частей длины ℎ =
𝑛
точками 𝑥0 = 𝑎, 𝑥𝑖 = 𝑥0 + 𝑖 ⋅ ℎ  (𝑖 = 1,2, … , 𝑛 − 1), 𝑥𝑛 = 𝑏.
Значения подынтегральной функции в этих точках равны 𝑦𝑖 =
𝑓(𝑥𝑖 ). Если функцию f(x) аппроксимировать многочленом
Лагранжа 𝐿𝑛 (𝑥) степени n, то получим приближенную формулу
для вычисления интеграла:
𝑏 𝑛

𝐼 = ∫ 𝑓(𝑥)𝑑𝑥 ≈ ∑ 𝐴𝑖 𝑦𝑖 .
𝑎 𝑖=0
Здесь Аi - неизвестные постоянные. Определим эти
коэффициенты, используя формулу

𝑥−𝑥𝑗
𝐿𝑛 (𝑥) = ∑𝑛𝑖=0 (𝑦𝑖 ∏𝑛𝑗=0 ) .
𝑥𝑖 −𝑥𝑗
𝑗≠𝑖

𝑥−𝑥
Пусть 𝑞 = 0
и 𝑞 [𝑛+1] = 𝑞 ⋅ (𝑞 − 1) ⋯ (𝑞 − 𝑛) обобщенная

степень 𝑞. Тогда несложно убедиться, что в новых
обозначениях многочлен Лагранжа принимает вид:
𝑛
(−1)𝑛−𝑖 𝑞 [𝑛+1]
𝐿𝑛 (х) = ∑ ⋅ 𝑦
𝑖! (𝑛 − 𝑖)! 𝑞 − 𝑖 𝑖
𝑖=0

107
𝑑𝑥
Т.к. 𝑑𝑞 = , подставив многочлен в интеграл, следует, что

искомые коэффициенты 𝐴𝑖 должны быть равными
𝑛
(−1)𝑛−𝑖 𝑞 [𝑛+1]
𝐴𝑖 = ℎ ∫ ⋅ 𝑑𝑞
0 𝑖! (𝑛 − 𝑖)! 𝑞 − 𝑖

Введем новое обозначение 𝐴𝑖 = (𝑏 − 𝑎)𝐻𝑖 , где

𝑛 [𝑛+1]
(−1)𝑛−𝑖 𝑞
𝐻𝑖 = ∫ 𝑑𝑞 , 𝑖 = 1,2, . . . , 𝑛
𝑛 ⋅ 𝑖! (𝑛 − 𝑖)! 0 𝑞 − 𝑖

коэффициенты Ньютона-Котеса, которые обладают


следующими свойствами:
𝑛

𝑎) ∑ 𝐻𝑖 = 1; 𝑏) 𝐻𝑖 = 𝐻𝑛−𝑖 .
𝑖=0

С учетом принятых обозначений, получаем формулу


Ньютона-Котеса для приближенного вычисления интеграла:

𝑏 𝑛

𝐼 = ∫ 𝑓(𝑥)𝑑𝑥 ≈ (𝑏 − 𝑎) ∑ 𝐻𝑖 𝑦𝑖 .
𝑎 𝑖=0

На практике, для того чтобы не вычислять интегралы от


многочленов высоких степеней, отрезок интегрирования
разбивают на несколько отрезках меньшей длины, к ним
применяют формулу Ньютона-Котеса после чего результаты
складываются.
Если n=3, то из формулы Ньютона-Котеса следует
правило 3-х восьмых:
𝑥3
3ℎ
∫ 𝑓(𝑥)𝑑𝑥 ≈ (𝑓(𝑥0 ) + 3𝑓(𝑥1 ) + 3𝑓(𝑥2 ) + 𝑓(𝑥3 )) .
𝑥0 8
108
При числе квадратурных узлов большие 3 формулу
применяют, когда оно кратно трем, причем точность в этом
случае меньше, чем у метода Симпсона при одинаковом шаге.
Точности метода 3-х восьмых и формулы Симпсона
совпадает если n кратно шести.
Пример. Вычислить по правилу 3-х восьмых
приближенное значение интеграла
1.2
𝑑𝑥
𝐼=∫ .
0√𝑥 2 + 1
𝑏−𝑎
Решение. Пусть 𝑛 = 12.  Тогда ℎ = = 0.1 и получаем:
𝑛

3 ⋅ 0.1
𝐼= (𝑓(𝑥0 ) + 2(𝑓(𝑥3 ) + 𝑓(𝑥6 ) + 𝑓(𝑥9 )) +
8
+3(𝑓(𝑥1 ) + 𝑓(𝑥2 ) + 𝑓(𝑥4 ) + 𝑓(𝑥5 ) + 𝑓(𝑥7 ) + 𝑓(𝑥8 ) + 𝑓(𝑥10 ) +
+𝑓(𝑥11 )) + 𝑓(𝑥12 )) = 1.015973.

6.4. Принцип Рунге

Точность приближенного вычисления интеграла может


быть увеличена, если шаг дискретизации уменьшить. Например,
если используется формула Симпсона, то, как известно,
погрешность вычислений является величиной
пропорциональной ℎ4 . Применение формулы дважды с шагами
ℎ4
ℎ и ℎ⁄2 приводит к погрешностям 𝜀ℎ = 𝑐 ⋅ ℎ4 и 𝜀h/2 = 𝑐 ⋅ .
4
Отсюда
𝜀ℎ
𝜀ℎ⁄2 = 𝑐 ⋅ .
16
𝑏
Пусть 𝐼 точное значение интеграла ∫𝑎 𝑓(𝑥)𝑑𝑥 , а 𝐼ℎ и 𝐼ℎ/2
приближенные значения интеграла, полученные по формуле
Симпсона с шагами h и h/2, соответственно. Тогда имеем:
109
𝐼 = 𝐼ℎ + 𝜀ℎ = 𝐼ℎ/2 + 𝜀h/2 , или 𝐼ℎ + 16 ⋅ 𝜀h/2 = 𝐼ℎ/2 + 𝜀h/2 .

Отсюда следует, что 𝜀h/2 ≈ (𝐼ℎ/2 − 𝐼ℎ )/15 и тогда для формулы


Симпсона можно написать следующую уточненную формулу:
𝑏
∫𝑎 𝑓(𝑥)𝑑𝑥 ≈ 𝐼ℎ/2 + (𝐼ℎ/2 − 𝐼ℎ )/15 . (6.1)

Аналогично, для метода трапеций, получаем:

𝑏
∫𝑎 𝑓(𝑥)𝑑𝑥 ≈ 𝐼ℎ/2 + (𝐼ℎ/2 − 𝐼ℎ )⁄3 . (6.2)

Таким образом, проводя вычисления интеграла


одновременно с двумя шагами дискретизации отрезка [𝑎, 𝑏],
получаем третье приближенное значение интеграла, имеющую
более высокую точность. Эти действия стоят в основе
принципа Рунге, который позволяет получить значение
интеграла с заранее заданной точностью >0.
Принцип (правило) Рунге заключается в следующем:
• выбирается целое число 𝑘 > 1;
• отрезок [𝑎, 𝑏] делится на 2к равные части и вычисляется
значение интеграла 𝐼ℎ с помощью одной из квадратурных
формул;
• отрезок [𝑎, 𝑏] делится на 2к+1 равные части и вычисляется
значение интеграла 𝐼ℎ/2 ;
• если для формулы трапеций |𝐼ℎ/2 − 𝐼ℎ | < 3𝜀, а для
формулы Симпсона |𝐼ℎ/2 − 𝐼ℎ | < 15𝜀, тогда вычисления
прекращаются и значения интеграла является число (6.1)
или (6.2);
• в противном случае полагают 𝐼ℎ = 𝐼ℎ/2 , k = k + 1 и
вычисления возобновляются.

110
Задания к лабораторной работе “Численное
интегрирование”

1. Вычислить значение интеграла

 f ( x)dx
a

используя формулы трапеций и парабол. Отрезок [𝑎, 𝑏]


разделить на 10 равных частей.
2. Вычислить приближенно, с точностью не менее =10-3,
интеграл применив правило Рунге по методу Симпсона и
трапеций. Сравнить величины шагов необходимых для
достижения необходимой точности.

Варианты:

1.5 2.5 4
sin( x + 1) x 2 ln( x)
  
cos( 2 x)
1. dx ; 2. dx ; 3. dx ;
x +1 x +1 x +1
0.5 1.5 1.5

ln( 4 + x )
2 3 1.0
аrctg x 2 sin( x + 1)
5. 
4.

0.5
x +4
2
dx ;
1.0 x x + 1
dx ; 6.

0
x2 +1
dx ;

2.5  /4 1.5
1 + 2.5 x 2
   1+ x +
dx
7. 3 dx ; 8. 1 − 0.75 cos x dx ; 9.
2
;
sin x + 2.5 tgx
1.5 0 0.

3 2 1.0
lg( x + 1) e 4x
  
x
10. x cos 3 dx ; 11. dx ; 12. dx ;
3 x +3 x x +1
0.0 1.0 0.0

111
VII. ЧИСЛЕННОЕ РЕШЕНИЕ ОБЫКНОВЕННЫХ
ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

7.1. Постановка задач

Моделирование большого круга задач, возникающих в


инженерной практике, приводят к необходимости решения
дифференциальных уравнений. В зависимости от числа
независимых переменных, участвующие в таких уравнениях,
последние делятся на два класса: обыкновенные
дифференциальные уравнения, содержащие одну независимую
переменную и уравнения с частными производными в которых
не меньше двух независимых переменных. В этой главе будем
рассматривать только обыкновенные дифференциальные
уравнения.
Обыкновенным дифференциальным уравнением
(ОДУ) называется уравнение, которое помимо независимой
переменной x содержит неизвестную функция y(х) и несколько
ее производных. Наивысший порядок производных,
участвующие в уравнение называется порядком уравнения.
Общий вид ОДУ порядка n следующий:

𝐹(𝑥, 𝑦, 𝑦 ′ , … , 𝑦 (𝑛) ) = 0.
Если данное уравнение может быть разрешено относительно
старшей производной, тогда общий вид такого уравнения,
следующий:
𝑦 (𝑛) = 𝑓(𝑥, 𝑦, 𝑦 ′ , … , 𝑦 (𝑛−1) ).

Решением ОДУ (общий интеграл) называют любую


функцию (х), которая при постановке в уравнение превращает
его в тождество.
Общее решение ОДУ, это такое решение, которое
содержит ровно столько произвольных постоянных С1 , С2 , С3 , …,
каков порядок уравнения.

112
Частное решение получается из общего решения при
определенном наборе произвольных постоянных.
ОДУ первого порядка имеет вид: 𝑦 ′ = 𝑓(𝑥, 𝑦), а его
общее решение – 𝑦 = 𝜑(𝑥, 𝐶). При определенном значении
постоянной 𝐶 = 𝐶0 получаем частное решение 𝑦 = 𝜑(𝑥, 𝐶0 ).
Геометрически функция 𝑦 = 𝜑(𝑥, 𝐶) на плоскости
описывает бесконечное семейство интегральных кривых,
зависящие от параметра 𝐶. Частное решение 𝑦 = 𝜑(𝑥, 𝐶0 ) одна
из них.
В связи с ОДУ могут быть поставлены две задачи: 1)
определить все решения уравнения; 2) найти решение, которое
проходит через заданную точку (𝑥0 , 𝑦0 ).
При решении второй из отмеченных задач, возникает
вопрос о существовании и единственности решения, ответ на
который дается следующей теоремой:
Теорема 7.1 (Коши). Если функция 𝑓(𝑥, 𝑦) и ее частная
производная 𝑓у (𝑥, 𝑦) непрерывная и ограниченная в области D
плоскости, тогда для любой внутренней точки (𝑥0 , 𝑦0 )
уравнение 𝑦 ′ = 𝑓(𝑥, 𝑦) имеет единственное решение, причем
у(𝑥0 ) = 𝑦0 .
Для ОДУ более высокого порядка через одну точку могут
проходить более одной интегральной кривой, поэтому в этом
случае необходимы дополнительные условия для определения
частного решения. Этих условий, которые называются
начальными условиями, должны быть столько, каков порядок
уравнения. Задача Коши для таких уравнений формулируется
следующим образом: найти решение уравнения

𝑦 (𝑛) = 𝑓(𝑥, 𝑦, 𝑦 ′ , … , 𝑦 (𝑛−1) ),

удовлетворяющая условиям

𝑦(𝑥0 ) = 𝑦0 , 𝑦 ′ (𝑥0 ) = 𝑦01 ,…,𝑦 (𝑛−1) (𝑥0 ) = 𝑦0,𝑛−1 .

113
В математических моделях могут присутствовать и
системы ОДУ вида
𝑑𝑦1
= 𝑓1 (𝑡, 𝑦1 , 𝑦2 , … , 𝑦𝑛 )
𝑑𝑡
𝑑𝑦2
= 𝑓2 (𝑡, 𝑦1 , 𝑦2 , … , 𝑦𝑛 ) .
𝑑𝑡
………………………………
𝑑𝑦𝑛
{ = 𝑓𝑛 (𝑡, 𝑦1 , 𝑦2 , … , 𝑦𝑛 )
𝑑𝑡

Здесь 𝑡 независимая переменная, а функции 𝑦𝑖 (𝑡) неизвестные.


Начальные условия в такого типа задач имеют вид:

𝑦1 (𝑡0 ) = 𝑦1,0 (𝑡0 ), 𝑦2 (𝑡0 ) = 𝑦2,0 (𝑡0 ), … , 𝑦𝑛 (𝑡0 ) = 𝑦𝑛,0 (𝑡0 ),

В приложениях, когда общее решение ОДУ невозможно


определить, решение находят приближенно. Приближенные
методы решения задачи Коши, в зависимости от способа их
построения, могут быть разделены на несколько групп. Среди
этих групп рассмотрим в дальнейшем следующие:
1) аналитические методы, которые позволяют найти
приближенное решение в виде некоторого аналитического
выражения; и 2) численные методы, дающие решение в виде
табличной функции.

7.2. Решение ОДУ с помощью рядов

Рассмотрим аналитический метод определения решения


задачи Коши. Пусть решается задача

𝑦 (𝑛) = 𝑓(𝑥, 𝑦, 𝑦 ′ , … , 𝑦 (𝑛−1) ),


𝑦(𝑥0 ) = 𝑦0 , 𝑦 ′ (𝑥0 ) = 𝑦01 ,…,𝑦 (𝑛−1) (𝑥0 ) = 𝑦0,𝑛−1 .

Допустим, что решение 𝑦(𝑥) может быть разложено в ряд


Тейлора по степеням (𝑥 − 𝑥0 ):

114
𝑦 ′ (𝑥0 ) 𝑦 ′′ (𝑥0 )
𝑦(𝑥) = 𝑦(𝑥0 ) + (𝑥 − 𝑥0 ) + (𝑥 − 𝑥0 )2 + ⋯ +
1! 2!
𝑦 (𝑛) (𝑥0 )
+ (𝑥 − 𝑥0 )𝑛 + ⋯
𝑛!

В данном разложении значения производных


(𝑘)
𝑦 (𝑥0 ),  𝑘 = 1,2, …, и 𝑦(х0 ) известны из начальных условий
задачи Коши. Значение производной 𝑦 (𝑛) (х) в точке 𝑥0 находят,
используя исходное дифференциальное уравнение:

𝑦 (𝑛) |х=х = 𝑓(𝑥, 𝑦, 𝑦 ′ , … , 𝑦 (𝑛−1) )х=х0 .


0

Далее последовательно дифференцируя исходное уравнение,


определяют производные

𝑦 (𝑛+1) (х0 ) = 𝑦0,𝑛+1 , 𝑦 (𝑛+2) (х0 ) = 𝑦0,𝑛+2 , ⋯


в точке х0.
Доказано, что, при определенных условиям, которым
должна удовлетворять функция 𝑓(𝑥, 𝑦, 𝑦 ′ , … , 𝑦 (𝑛−1) ), вблизи
точки 𝑥0 решение задачи Коши единственно и его можно
разложить в ряд Тейлора по степеням разности (𝑥 − 𝑥0 ).
Имея разложение решение в бесконечную сумму, для
приближенного решения задачи берут частичную сумму ряда.
Пример. Вычислить первые пять членов разложения
решения задачи Коши:

𝑦 ″ (1 + 𝑦) = (𝑦 ′ )2 + 𝑦 ′ ,  𝑦(0) = 𝑦 ′ (0) = 1

в ряд Маклорена.
Решение. Вблизи точки 𝑥 = 0 функция 𝑦(𝑥) может быть
представлена в виде ряда
𝑦 ′ (0) 𝑦 ′′ (0) 2 𝑦 (𝑛) 𝑛
𝑦(𝑥) = 𝑦(0) + 𝑥+ 𝑥 + ⋯+ 𝑥 +⋯
1! 2! 𝑛!
115
Исходное уравнение можно переписать следующим образом:

𝑦 ′ ⋅ (1 + 𝑦 ′ )
. 𝑦″ =
1+𝑦
Находим значение второй производной в точке х=0, используя
начальные условия. Имеем

y   (1 + y )
y  х=0 = х =0 = 1 .
1+ y
Третья производная равна:

  y y 
 y  (1 + y ) y  − y  2 
y  х =0 =  ( y  + 1)  х =0 = + (1 + y )  = 1.
1+ y  1 + y (1 + y ) 2  х =0

Используя полученные результаты, имеем возможность


записать четыре члена разложения в ряд Маклорена
приближенного решения задачи Коши:

х х2 х3
𝑦(𝑥) ≈ 1 + + + .
1! 2! 3!

Для данного уравнения точное решение задачи можно” угадать”


по виду полученного степенного ряда. Действительно, т.к.
приближенное решение мы получили в виде отрезка ряда для
разложения функции ех , то эта функция является точным
решение задачи Коши.
Рассмотренный метод построения приближенного
решения ДУ с начальными данными называется метод
последовательного дифференцирования.
Другой аналитический метод позволяющий получить
приближенное решение задачи Коши в виде функции – это
метод неопределенных коэффициентов, который, однако, в

116
основном применим для линейных ДУ c переменными
коэффициентами, т.е. уравнений вида:

𝑎0 (𝑥)𝑦 (𝑛) + 𝑎1 (𝑥)𝑦 (𝑛−1) + 𝑎2 (𝑥)𝑦 (𝑛−2) + ⋯ + 𝑎𝑛 (𝑥)𝑦 = 𝑓(𝑥) .

Рассмотрим реализацию данного способа решения


задачи Коши для случая ДУ второго порядка:

𝑦 ″ + 𝑝(𝑥)𝑦 ′ + 𝑞(𝑥)𝑦 = 𝑓(𝑥), 𝑦(0) = 𝑦0 , 𝑦 ′ (0) = 𝑦01 .

Разложим коэффициенты уравнения в виде следующих


степенных рядов

𝑝(𝑥) = 𝑝0 + 𝑝1 𝑥 + 𝑝2 𝑥 + ⋯ + 𝑝𝑛 𝑥 + ⋯ = ∑ 𝑝𝑛 𝑥 𝑛 ;
2 𝑛

𝑛=0

∞ ∞
𝑛
𝑞(𝑥) = ∑ 𝑞𝑛 𝑥 ; 𝑓(𝑥) = ∑ 𝑓𝑛 𝑥 𝑛 .
𝑛=0 𝑛=0

Аналогично, разложение решения в ряд должно иметь вид:


𝑦(𝑥) = ∑ 𝐴𝑛 𝑥 𝑛
𝑛=0

где значения коэффициентов 𝐴𝑛 неизвестны. Если первые три


ряда сходятся на интервале (−𝑅, 𝑅), то согласно свойствам
сходящихся степенных рядов, ряд для производных этих
функций и ряд для решения 𝑦(𝑥) будет сходящихся на этом
интервале.
Производные 𝑦 ″ и 𝑦 ′ тогда принимают вид:

117
 
y( x) =  A nx
n =1
n
n−1
, y( x) =  A n(n −1)x
n=2
n
n−2
.

Подставив полученные ряды в исходное ДУ и осуществляя


соответствующие умножения рядов, получим систему
уравнений
2 ⋅ 𝐴2 + 𝑝0 ⋅ 𝐴1 + 𝑞0 ⋅ 𝐴0 = 𝑓0 𝑥0
3 ⋅ 2 ⋅ 𝐴3 + 2 ⋅ 𝑝0 ⋅ 𝐴2 + 𝑝1 ⋅ 𝐴1 + 𝑞0 ⋅ 𝐴1 + 𝑞1 ⋅ 𝐴0 = 𝑓1 1
{ |𝑥
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ ...
(𝑛 + 2) ⋅ (𝑛 + 1) ⋅ 𝐴𝑛+2 + 𝐺(𝐴𝑛+1 , 𝐴𝑛 , . . . , 𝐴0 ) = 𝑓𝑛 𝑥𝑛

Здесь 𝐺(𝐴𝑛+1 , 𝐴𝑛 , . . . , 𝐴0 ) линейная функция относительно


неизвестных коэффициентов 𝐴𝑛+1 , 𝐴𝑛 , . . . , 𝐴0 . Особенность этой
системы состоит в том, что каждое уравнение, начиная со
второго, содержит на одну неизвестную больше, чем
предыдущее уравнение, что упрощает ее решение. Из начальных
условий определяются 𝐴0 и 𝐴1 , а остальные из системы.
Пример. Найти приближенное решение задачи Коши:

𝑦 ″ + 𝑥𝑦 ′ − 2𝑥 2 𝑦 = 𝑒 𝑥 , 𝑦(0) = 1, 𝑦 ′ (0) = 0.

Решение. В обозначениях, использованных выше, здесь



2
𝑥𝑛
𝑝(𝑥) = 𝑥,  𝑞(𝑥) = −2𝑥 ,  𝑓(𝑥) = ∑ .
𝑛!
𝑛=0
Решение исходной задачи ищем в виде:

𝑦(𝑥) = 𝐴0 + 𝐴1 𝑥 + 𝐴2 𝑥 2 + ⋯ + 𝐴𝑛 𝑥 𝑛 + ⋯.
Отсюда
𝑦 ′ (𝑥) = 𝐴1 + 2𝐴2 𝑥 + 3𝐴3 𝑥 2 + ⋯ + 𝑛𝐴𝑛 𝑥 𝑛−1 + ⋯,

𝑦 ′′ (𝑥) = 𝐴2 + 6𝐴3 𝑥 + ⋯ + 𝑛(𝑛 − 1)𝐴𝑛 𝑥 𝑛−2 + ⋯

118
Подставим полученные ряды в исходное уравнение и
приравниваем коэффициенты при одинаковых степенях х. В
результате получим систему:
2 ⋅ 𝐴2 = 1
3 ⋅ 2 ⋅ 𝐴3 + 𝐴1 = 1
1
12𝐴4 + 2𝐴2 − 2𝐴0 =
2
1
20𝐴4 + 3𝐴3 − 2𝐴2 =
6
1
{30𝐴5 + 4𝐴3 − 2𝐴4 = 24

Начальные условия дают 𝐴0 = 1, 𝐴1 = 0 .


1 1 1 7
Тогда: 𝐴2 = , 𝐴3 = , 𝐴4 =  , 𝐴5 = − .
2 6 20 400
Таким образом приближенное решение записывается в виде
суммы:
х2 х3 х4 7х5
𝑦(𝑥) ≈ 1 + + + −
2 ⋅ 2! 6 ⋅ 3! 20 ⋅ 4! 400 ⋅ 5!

7.3. Метод Эйлера

Данный метод является одним из самых простых методов


численного решения задачи Коши

𝑦 ′ = 𝑓(𝑥, 𝑦), у(𝑥0 ) = 𝑦0

и легко реализуется на компьютере. Идея метода основана на


разложение решения 𝑦 = 𝑦(𝑥) в ряд Тейлора вблизи точек-узлов
𝑥 = 𝑥𝑖, 𝑖 = 0,1,2, ⋯ из которого удаляются все члены ряда
содержащие производные порядка выше первого. При этом
решение представляется в виде таблицы значений функции
𝑦(𝑥).

119
Пусть h выбранный шаг дискретизации промежутка, на
котором строится решение задачи Коши, и рассмотрим систему
равноотстоящих узлов 𝑥𝑖 = 𝑥0 + 𝑖ℎ, 𝑖 = 0,1,2, ⋯. Тогда
разложение функции в точке xi+1 имеет вид

𝑦(х𝑖+1 ) = 𝑦(х𝑖 + ℎ) = 𝑦(х𝑖 ) + 𝑦 ′ (х𝑖 ) ⋅ ℎ + 𝑂(ℎ2 ).

Пренебрегая членами порядка 𝑂(ℎ2 ) и учитывая, что



𝑦 (𝑥𝑖 ) = 𝑓(𝑥𝑖 , 𝑦𝑖 ), получаем расчетную формулу:

𝑦(𝑥𝑖+1 ) = 𝑦𝑖 + ℎ ⋅ 𝑓(𝑥𝑖 , 𝑦𝑖 ),  𝑖 = 0,1,2, . ...

Отсюда, используя начальное условие 𝑦(𝑥0 ) = 𝑦0 ,


последовательно находим:

𝑦(𝑥1 ) = 𝑦0 + ℎ ⋅ 𝑓(𝑥0 , 𝑦0 ), 


    𝑦(𝑥2 ) = 𝑦1 + ℎ ⋅ 𝑓(𝑥1 , 𝑦1 ),
......................................
𝑦(𝑥𝑛 ) = 𝑦𝑛−1 + ℎ ⋅ 𝑓(𝑥𝑛−1 , 𝑦𝑛−1 ),

Геометрический смысл метода Эйлера заключается в том, что


интегральная кривая y=y(x) на участке [𝑥0 , 𝑥2 ] заменена ломаной
𝑀0 𝑀1 𝑀2 (рис. 7.1) следующим образом: касательная к кривой
𝑦(𝑥) в точке 𝑀0 (𝑥0 , 𝑦0 ) имеет угловой коэффициент равный 𝑘 =
= 𝑓(𝑥0 , 𝑦0 ) = 𝑦0′ . Точки 𝑀1 и 𝑀2 получены в результате
применения формулы Эйлера. Отклонение этих точек от
интегральной кривой 0 является следствием погрешности
метода. По сути, каждый шаг метода означает переход на
другую интегральную кривую (на рисунке - кривые 1 и 2).
Ломанная 𝑀0 𝑀1 𝑀2 называется ломанная Эйлера. Метод
Эйлера относится к группе одношаговых методов, т.к.
использует лишь информацию, полученную на предыдущем
шаге.

120
Пример. Найти приближенное решение задачи Коши на
отрезке [0,1] методом Эйлера:

𝑦 ′ = 𝑦 2 + 2𝑥 − 2𝑥 2 − 𝑥 4 − 1, у(0) = 1.

Решение. Здесь 𝑓(х, 𝑦) = 𝑦 2 + 2𝑥 − 2𝑥 2 − 𝑥 4 − 1.


y y

y2 M2 y1 M1

y1 M1
ŷ1
y0 M0 y0 M0

0
1
2

х0 x1 x2 х0 x0+h/2 x1
x Рис. 7.1 x
Рис. 7.2
Возьмем шаг дискретизации h=0.1 и, следовательно,
необходимо вычислять значение решения в узлах
𝑥𝑖 = 𝑥0 + 𝑖ℎ, 𝑖 = 0,1,2, ⋯ ,10.
Расчетная формула
𝑦𝑖+1 = 𝑦𝑖 + ℎ ⋅ 𝑓(𝑥𝑖 , 𝑦𝑖 ) =
= 𝑦𝑖 + 2 ⋅ (𝑖 ⋅ ℎ) − 2 ⋅ (𝑖 ⋅ ℎ)2 − (𝑖 ⋅ ℎ)4 − 1.
2

Тогда имеем:
y1 = y 0 + h  f ( x0 , y 0 ) = 12 + 2  (1  0.1) − 2  (1  0.1) 2 − (1  0.1) 4 − 1 = 1.0318;
y 2 = y1 + h  f ( x1 , y1 ) = 1.0318 2 + 2  (2  0.1) − 2  (2  0.1) 2 − (2  0.1) 4 − 1 = 1.0795;
y3 = y2 + h  f ( x2 , y2 ) = 1.0795 2 + 2  (3  0.1) − 2  (3  0.1)2 − (3  0.1)4 − 1 = 1.1415;
y4 = y3 + h  f ( x3 , y3 ) = 1.1415 2 + 2  (4  0.1) − 2  (4  0.1)2 − (4  0.1)4 − 1 = 1.2155.
Аналогичным образом вычисляются остальные значения
искомого решения. Данная задача Коши имеет точное

121
решение:𝑌 = х2 + 1. Ниже, для
сравнения, прилагается таблица
значений решения по формуле
Эйлера и точного решения во
всех узлах. На рис. 7.3
приведены графики точного
решения и приближенного
решения (ломанная Эйлера).

𝒙𝒊 0.0 0.1000 0.2000 0.3000 0.4000 0.5000


𝒚𝒊 1.0 1.0318 1.0795 1.1415 1.2155 1.2983
𝒀𝒊 1.0 1.0400 1.0900 1.1600 1.2500 1.3600

𝒙𝒊 0.6000 0.7000 0.8000 0.0000 1.0000


𝒚𝒊 1.3849 1.4677 1.5355 1.5712 1.5497
𝒀𝒊 1.4900 1.6400 1.8100 2.0000 2.2100

Из таблицы видны существенные отличия между


результатом численного моделирования и точной формулы.
Таким образом, возникает вопрос об оценке погрешности
метода Эйлера.
Погрешность метода обусловлена двумя источниками
ошибок: 1) ошибки дискретизации (заменой ряда Тейлора его
частичной суммой); и 2) ошибки округления.
Вследствие накопления ошибок на каждом шаге,
погрешность численного решения в некоторой точке, удаленной
от начальной точки 𝑥0 может быть значительной.
Пусть функция 𝑓(𝑥, 𝑦) удовлетворяет в прямоугольнике

𝐷 = {|𝑥 − 𝑥0 | ≤ 𝑎; |𝑦 − 𝑦0 | ≤ 𝑏}

122
условия:
|𝑓(𝑥1 , 𝑦1 ) − 𝑓(𝑥1 , 𝑦2 )| ≤ 𝑁|𝑦1 − 𝑦2 |, 

𝜕𝑓(𝑥, 𝑦) 𝜕𝑓(𝑥, 𝑦)
| + 𝑓(𝑥, 𝑦) | ≤ 𝑀, ∀(𝑥, 𝑦) ∈ 𝐷, (𝑁, 𝑀 − const),
𝜕𝑥 𝜕𝑦

тогда оценка погрешности метода Эйлера задается


неравенством
ℎ𝑀
|𝑦(𝑥𝑛 ) − 𝑦𝑛 | ≤ [(1 + ℎ𝑁)𝑛 − 1] ,
2𝑁
где 𝑦(𝑥𝑛 ) – точное решение задачи в точке 𝑥𝑛 а 𝑦𝑛 численное
решение, полученное на n-ом шаге.
Данная оценка является теоретической и имеет
ограниченное применение. На практике используют
следующую процедуру для оценки погрешности: после решения
задачи Коши методом Эйлера с шагом дискретизации h,
повторяют вычисления, но с шагом h/2. Тогда оценка
погрешности задается выражением:
|𝑦(𝑥𝑛 ) − 𝑦 ∗ | ≈ |𝑦𝑛 − 𝑦𝑛∗ |

где 𝑦𝑛 - приближенное решение в точке 𝑥 = 𝑥𝑛 , найденное с
шагом h/2.
Как следует из приведенных оценок погрешности метода
Эйлера, его суммарная погрешность равна 𝑂(ℎ), т.е. первый
порядок точности. Ясно, что точность может быть увеличена за
счет уменьшения шага, что, однако увеличивает объем
необходимых вычислений.
Для улучшения порядка точности метода Эйлера, были
предложены различные его модификации. Рассмотрим одну из
таких модификаций – метод Эйлера с пересчетом. Алгоритм
этого метода состоит из следующих действий: если определено
значение 𝑦𝑖 решения, то вычисляется приближение

𝑦̂𝑖+1 = 𝑦𝑖 + ℎ𝑓(𝑥𝑖 , 𝑦𝑖 ),

123
после чего модифицированная формула записывается в
следующей форме:

𝑦𝑖+1 = 𝑦𝑖 + [𝑓(𝑥𝑖 , 𝑦𝑖 ) + 𝑓(𝑥𝑖+1 , 𝑦̂𝑖+1 )].
2

Геометрическая интерпретация этой формулы приведена


на рис. 7.3.
Отметим, что суммарная точность данного метода имеет
порядок O(h 2 ) .

7.4. Метод Рунге-Кутта

Данный метод является также одношаговым явным


методом решения задачи Коши. Идея метода заключается в
построении вычислительной формулы для расчета значений
решения задачи в узлах 𝑥𝑖 , 𝑖 = 0,1,2, ⋯, вида

𝑦𝑖+1 = 𝑦𝑖 + ℎ𝜑(𝑥𝑖 , 𝑦𝑖 , ℎ)

которая аппроксимирует частичную сумму ряда Тейлора вблизи


точки 𝑥𝑖 с точностью 𝑂(ℎр ) без использования производных
высшего порядка. Отметим, что при p=1 эта формула метода
Эйлера. Рассмотрим формулу Рунге-Кутта для p=2.
Будем искать функцию  в виде

𝜑(𝑥, 𝑦, ℎ) = 𝐴𝑓(𝑥, 𝑦) + 𝐵𝑓(𝑥 + 𝛼ℎ, 𝑦 + 𝛽ℎ),

где 𝐴, 𝐵, , неизвестные пока постоянные. Если разложить


вторую функцию из правой части формулы в ряд Тейлора по
степеням h и пренебрегая членами содержащие h2 и выше,
получим:

𝜕𝑓(𝑥𝑖 , 𝑦𝑖 ) 𝜕𝑓(𝑥𝑖 , 𝑦𝑖 )
𝜑(𝑥, 𝑦, ℎ) = 𝐴𝑓 (𝑥𝑖 , 𝑦𝑖 ) + ℎ𝛼 + ℎ𝛽𝑓(𝑥𝑖 , 𝑦𝑖 ) + 𝑂(ℎ2 )
𝜕𝑥 𝜕𝑥

124
С другой стороны, ряд Тейлора для решения y(x) задачи в точке
𝑥𝑖 с точностью О(h2), имеет вид:

𝑦𝑖+1 = 𝑦𝑖 + ℎ ⋅ [𝑓(𝑥𝑖 , 𝑦𝑖 ) + (𝑓𝑥′ (𝑥𝑖 , 𝑦𝑖 ) + 𝑓𝑦′ (𝑥𝑖 , 𝑦𝑖 )𝑓(𝑥𝑖 , 𝑦𝑖 ))] + О(ℎ2 ).
2

Сравнивая эти равенства, получаем систему уравнений для


вычисления неизвестных постоянных:
𝐴 + 𝐵 = 1; 𝛼𝐵 = 1⁄2; β𝐵 = 1⁄2.
Данная система уравнений является совместно неопределенной
(четыре неизвестных и три уравнения). Общее решение
системы: 𝐴 = 1 − 𝜆; 𝐵 = 𝜆; 𝛼 = 𝛽 = (𝛾⁄2)𝜆; 𝜆 ≠ 0.
В частности, при =0.5, получаем формулу Рунге-Кутта
второго порядка:

𝑦𝑖+1 = 𝑦𝑖 + (𝑘1 + 𝑘2 ), (𝑖 = 0,1,2)
{ 2 .
𝑘1 = 𝑓(𝑥𝑖 , 𝑦𝑖 ); 𝑘2 = 𝑓(𝑥𝑖 + ℎ, 𝑦𝑖 + ℎ𝑘1 )

Аналогично, получают формулу Рунге-Кутта любого


порядка, однако чаще используется формула Рунге-Кутта
четвертого порядка, имеющая вид


𝑦𝑖+1 = 𝑦𝑖 + (𝑘0 + 2𝑘1 + 2𝑘2 + 𝑘3 ); (𝑖 = 0,1,2, . . . ) ,
6
где
 k   k 
k0 = f ( xi , yi ); k1 = f  xi + , yi + 0 ; k2 = f  xi + , yi + 1 ; k3 = f (xi + h, yi + k 2 ).
h h
 2 2   2 2
Геометрическая интерпретация коэффициентов
формулы, следующая (рис.7.4): пусть дуга 𝑀0 𝐶𝑆 является
графиком решения задачи Коши на отрезке [х0, х1]. Точка 𝐶
находится на пересечении кривой с прямой y= x0+h/2, а точки B
и P – точки пересечения касательной в точке 𝑀0 с прямыми
х=x0+h/2 и х=x0+h. Тогда k1 / h равен угловому коэффициенту
касательной в точке 𝑀0 . Точка B имеет координаты (𝑥0 +
+ℎ/2, 𝑦0 + 𝑘1 /2) .
125
Коэффициент 𝑘2 из формулы является угловым
коэффициентом касательной к интегральной кривой,
проходящей через точку B, а отрезок BF принадлежит
касательной.
Проведем через точку 𝑀0 прямую параллельную отрезку
ℎ 𝑘
BF. Точка А имеет координаты (𝑥0 + , 𝑦0 + 2 ) При этом
2 2
угловой коэффициент касательной к интегральной кривой в
точке А равен 𝑘3 /ℎ, а точка S находится на пересечении этой
касательной с прямой y=x0+h. Далее строится прямая,
проходящая через точку 𝑀0 , и параллельная отрезку АS и
пересекающая прямую х=x0+h в точке N(x0+h, y0+к3). Число к3/h
равно угловому коэффициенту касательной к интегральной
кривой, которая проходит через точку N.
Замечание. Погрешность метода Рунге-Кутта может
быть уменьшена, если при вычислении очередной точки
варьировать шаг дискретизации. Правильность выбора шага
проверяется с помощью величины
𝑘1 − 𝑘2
𝜃=| |
𝑘0 − 𝑘1
которая не должна превышать несколько сотых. Если данное
условие не выполняется,
то шаг уменьшается. y
Метод Рунге-
N
Кутта имеет точность
порядка h4 на весь S
отрезок, на котором
F
определяется решение.
A
Оценку погрешности C P
метода затруднительно y0 M0 B
проводить, однако ее
можно определить,
используя правило Рунге. х0 x0+h/2 x0 +h x
Пусть 𝑦(𝑥𝑛 ) Рис.7.4
точное решение в точке
126
𝑥𝑛 , а 𝑦𝑛∗ и 𝑦𝑛 приближенные значения решения, вычисленные с
шагом h/2 и h, соответственно. Тогда погрешность метода
оценивается с помощью выражения

1 ∗
|𝑦𝑛∗ − 𝑦(𝑥𝑛 )| ≈ |𝑦 − 𝑦𝑛 | .
15 𝑛

Пример. Решить методом Эйлера, модифицированным


методом Эйлера и формулой Рунге-Кутта задачу Коши:
𝑦
𝑦 ′ = (𝑦 ln 𝑥 − 1),  𝑦(0.5) = 1.2394 на отрезке [0.5,1.5].
𝑥

Решение. Возьмем шаг дискретизации отрезка h=0.1 и


найдем численное решение задачи по указанным в условиях
методам и сравним с точным решением задачи, которое задается
1
функцией 𝑦 = . Ниже приводится таблица с
𝑥+ln x+1
результатами вычислений:

x 0.6 0.7 0.8 0.9 1.0


Метод Эйлера 0.7785 0.5972 0.4937 0.4252 0.3759
Модиф. метод 0.9183 0.7771 0.6336 0.5565 0.4992
Метод Рунге Кутта 0.9180 0.7443 0.6341 0.5571 0.4999
Точное решение 0.9181 0.7444 0.6342 0.5572 0.5000

Метод Эйлера 1.1 1.2 1.3 1.4 1.5


Модиф. метод 0.3383 0.3085 0.2842 0.2640 0.2469
Метод Рунге Кутта 0.4547 0.4189 0.3894 0.3646 0.3434
Точное решение 0.4555 0.4197 0.3902 0.3653 0.3442
Метод Эйлера 0.4555 0.4198 0.3903 0.3654 0.3442

Из таблицы следует, что наиболее близкие к точному


решению являются значения в узлах, полученные по методу
Рунге-Кутта. Вместе с тем, наименее точным оказался метод
Эйлера. Так, в точке х=1.5 погрешность результата составляет
28.3%, что является следствием накапливания погрешностей на
127
каждом шаге. Уменьшение шага дискретизации в методе Эйлера
с одной стороны увеличивает точность, но с другой стороны,
возрастает число обрабатываемых узлов что, негативно влияет
на точность полученного решения. Таким образом, применение
метода Эйлера при большом количестве узлов, неэффективно.

Задания к лабораторной работе “Решение


обыкновенных ДУ”

Методами Эйлера, модифицированным Эйлера и Рунге-


Кутта определить решение ОДУ 𝑦 ′ = 𝑓(𝑥, 𝑦) на отрезке [𝑎, 𝑏] с
шагом ℎ = 0.05.

Варианты.
1. 𝑦 ′ == 0.75𝑦 2 + 0.5𝑦 sin 𝑥 + 1,  𝑦(0) = 0;  𝑎 = 0,  𝑏 = 1.
2. 𝑦 ′ = 𝑒 𝑥 − 𝑦 2 ,  𝑦(0) = 0;  𝑎 = 0,  𝑏 = 1.
3. 𝑦 ′ = 𝑥 ln 𝑦 − 𝑦 ln 𝑥 ,  𝑦(1) = 1;  𝑎 = 1,  𝑏 = 2.
4. 𝑦 ′ = 0.1( 3√𝑦 + ln( 𝑥 + 𝑦) − 1),  𝑦(2) = 1,  𝑎 = 2,  𝑏 = 3.
5. 𝑦 ′ = 𝑦 2 + √𝑦 + cos 𝑦 ,  𝑦(0) = 0;  𝑎 = 0,  𝑏 = 1.
6. 𝑦 ′ = 𝑦 2 + √𝑦 + cos 𝑦 ,  𝑦(0) = 0;  𝑎 = 0,  𝑏 = 1.
7. 𝑦 ′ = 1 − sin( 1.25𝑥 + 𝑦),  𝑦(−1) = 0;  𝑎 = −1,  𝑏 = 0.
cos 𝑦
8. y  = − 0.25𝑦 2 ,  𝑦(0) = 0;  a=0; b=1.
1.25+𝑥
′ 2 2.6
9. 𝑦 = −𝑦 + ,  𝑦(0.5) = 0;  𝑎 = 0.5,  𝑏 = 1.5.
1+𝑥 2
cos(1.8𝑥−0.5)
10. 𝑦 ′ = ,  𝑦(0) = 0;  𝑎 = 0,  𝑏 = 1.
1.5+𝑥 2
′ −1.2𝑥 2
11. 𝑦 = 𝑒 (𝑥 + 1.8),  𝑦(0) = 0;  𝑎 = 0,  𝑏 = 1.
𝑦
12. 𝑦 ′ = − − 0.2𝑦 2 ln 𝑥 ,  𝑦(1) = 1;  𝑎 = 1, 𝑏 = 2. 
𝑥
′ 5.2
13. 𝑦 = − 𝑦tg𝑥,  𝑦(0) = 1;  𝑎 = 0,  𝑏 = 1.
cos 𝑥
′ 2
14. 𝑦 = 𝑥𝑦 + 𝑘 cos 𝑦 ,  𝑦(0) = 0;  𝑎 = 0,  𝑏 = 1,  𝑘 = 2,4,6,8,10.
15. 𝑦 ′ = ln( 𝑥 + √𝑘𝑥 2 + 𝑦 2 ),  𝑦(0) = 1;  𝑎 = 0, 𝑏 = 2,  𝑘 = 1,3,5,7,9. 

128
VIII. ВЫЧИСЛЕНИЕ СОБСТВЕННЫХ ЧИСЕЛ И
СОБСТВЕННЫХ ВЕКТОРОВ МАТРИЦ

8.1. Постановка задач

Исследование различных объектов и процессов в


технике, науке и экономике приводят к математическим
моделям в которых существенную роль играют системы
линейных алгебраических уравнений вида:

(𝑎11 − 𝜆)𝑥1 + 𝑎12 𝑥2 + 𝑎13 𝑥3 +   … 𝑎1𝑛 𝑥𝑛 = 0


𝑎21 𝑥1 + (𝑎22 − 𝜆)𝑥2 + 𝑎23 𝑥3 +   ⋯ 𝑎2𝑛 𝑥𝑛 = 0
{ ,
⋮ ⋮ ⋮  ⋮
𝑎𝑛1 𝑥1 + 𝑎𝑛2 𝑥2 + 𝑎𝑛3 𝑥3 + ⋯ (𝑎𝑛𝑛 − 𝜆)𝑥𝑛 = 0

или, если ввести обозначения: 𝑥 = (𝑥1 , 𝑥2 , … , 𝑥𝑛 )𝑇 и

𝑎11 𝑎12 𝑎13  … 𝑎1𝑛


𝑎21 𝑎22 𝑎23  ⋯ 𝑎2𝑛
𝐴=( ⋮ ⋮ ⋮  ⋮ ),
𝑎𝑛1 𝑎𝑛2 𝑎𝑛3 ⋯ 𝑎𝑛𝑛

то
Ах = 𝜆х  ((А − 𝜆𝐼)х = 0)
Системы ЛАУ данного вида называются однородные.
Ясно, что такая система имеет, по крайней мере, одно очевидное
тривиальное решение х = 0 . Однако больший интерес
представляет наличие у системы ненулевых решений. Т.к.
система зависит от параметра R, то можно предположить, что
для одних значений  СЛАУ будет совместной определенной, а
для других - совместной неопределенной. Необходимое и
достаточное условие чтобы система имела ненулевые решения
состоит в том, чтобы ранг ее матрицы был меньше n, а это
означает что система (А − 𝜆𝐼)х = 0 будет обладать ненулевыми

129
решениями, если ее определитель будет равным нулю, т.е.
det( А − 𝜆𝐼) = 0, или
𝑎11 − 𝜆 𝑎12 𝑎13  … 𝑎1𝑛
𝑎21 𝑎22 − 𝜆 𝑎23  ⋯ 𝑎2𝑛
| | = 0.
⋮ ⋮ ⋮  ⋮
𝑎𝑛1 𝑎𝑛2 𝑎𝑛3 ⋯ 𝑎𝑛𝑛 − 𝜆

Если развернуть данный определитель, получим многочлен n-ой


степени от параметра , т.к. он будет содержать, в частности,
произведение элементов главной диагонали, а значит в
многочлене старший член будет иметь вид (−1)𝑛 𝜆𝑛 .
Таким образом полученный многочлен называется
характеристическим многочленом матрицы А и записывается
в следующей форме:
𝐷𝑛 (𝜆) = (−1)𝑛 𝜆𝑛 + 𝑝1 𝜆𝑛−1 + ⋯ + 𝑝𝑛 ,
где 𝑝1 , 𝑝2 , … , 𝑝𝑛 коэффициенты многочлена.
Уравнение det( А − 𝜆𝐼) = 0 называется
характеристическим (вековым) уравнением, а корни
уравнения 𝜆1 , 𝜆2 , … , 𝜆𝑛 для которых система (А − 𝜆𝐼)х = 0 имеет
ненулевое решение, - собственными значениями матрицы А.
Следует отметить, что собственные значения могут быть как
действительные, так и комплексные.
Ненулевой вектор 𝑥 = (𝑥1 , 𝑥2 , … , 𝑥𝑛 )𝑇 , отвечающий
собственному значению 0, называется собственным вектором,
если он удовлетворяет уравнение А ⋅ х = 𝜆0 ⋅ х.
Так как многочлен 𝐷𝑛 (𝜆) имеет не более n различных
корней, то и число различных собственных чисел матрицы А не
превосходит n. Множество всех собственных значений матрицы
составляет ее спектр. Если матрица имеет нулевое собственное
значение, тогда эта матрица вырожденная. Верно и обратное
утверждение: у всякой вырожденной матрицы имеются
собственное значение равное нулю. Алгебраической
кратностью собственного значения 0 матрицы А называют
кратность данного корня многочлена 𝐷𝑛 (𝜆).
130
Собственные числа матрицы удовлетворяет равенства:
n n n


i =1
i = det A и   = a
i =1
i
i =1
ii =tr(А) ,

где число tr( А) называется следом матрицы А.


Отметим и другие свойства собственных чисел и
векторов матрицы. Так, если 0 является собственным
значением матрицы А, тогда 𝜆𝑘0 , будет собственным числом
матрицы 𝐴𝑘 . Если собственный вектора 𝑥0 , соответствует
собственному числу 0, тогда и любой другой вектор вида
𝛼𝑥0  (𝛼 = сonst) тоже собственный вектор данной матрицы.
Если в систему Ах = 𝜆х последовательно заменить 
корнями характеристического уравнения и решить ее, то в
результате найдем n собственных векторов матрицы.
При вычислении собственных значений и
соответствующим им собственных векторов возникают
следующие две задачи: 1) нахождение всех собственных чисел
матрица и соответствующие им собственные векторы (полная
задача собственных значений); 2) определение одного или
нескольких собственных значений и векторов (частичная задача
собственных значений).
Первый тип задач предполагает развертывание
характеристического определителя с тем, чтобы найти
коэффициенты 𝑝1 , 𝑝2 , … , 𝑝𝑛 характеристического многочлена
𝐷𝑛 (𝜆) для которого необходимо вычислить корни. Для решения
таких задач используются прямые методы в том смысле, что
если они используются для исследования матриц, элементы
которых заданы точно и вычисления определителя проводятся
без ошибок округления, тогда коэффициенты
характеристического многочлена определяются точно.
Вследствие этого собственные векторы вычисляются как
функции от собственных значений матрицы.
Второй тип задач ограничивается вычислением одного
или нескольких собственных чисел и соответствующим им
собственным векторам без построения характеристического
131
многочлена с помощью специально разработанных
итерационных методов.
В процессе разыскания собственных значений и
собственных векторов большое значение имеют подобные
матрицы. Квадратная матрица 𝐵 называется подобной
матрицей для данной матрице 𝐴, если существует
невырожденная матрица 𝑇 такая, что 𝐵 = 𝑇𝐴𝑇 −1 . Этот тип
матриц используется при выполнении замены переменных
следующим образом.
Если исходная система уравнений имеет вид 𝐴х = 𝑏, то
вводя обозначение 𝑦 = 𝑇х,  𝑇𝑏 = 𝑐, приходим к
эквивалентной СЛАУ
𝑇А𝑇 −1 𝑦 = 𝑐
с матрицей системы равной 𝑇А𝑇 −1 .
Использование подобных матриц для поиска
собственных значений связано со следующим важным
свойством: эти матрицы имеют те же собственные значения, что
и исходные. Действительно из свойств определителей имеем:

det( А − 𝜆𝐼) = det( ТТ−1 ) ⋅ det( А − 𝜆𝐼) =


= det( Т) ⋅ det( А − 𝜆𝐼) ⋅ det( Т−1 ) =
= det( ТАТ−1 − 𝜆𝐼).

При этом, собственные вектора после преобразования


изменяются. Отсюда возникает вопрос, к какому простейшему
виду можно свести исходную матрицу после подобных
преобразований. Ответ на данный вопрос дает следующая
теорема.
Теорема 8.1. Квадратная невырожденная матрица
подобна диагональной матрице тогда и только тогда, когда
имеет ровно n различных собственных значений.
Данная теорема позволяет перейти от матрицы А с
помощью подобных преобразований к матрице

132
𝜆1 0 0  … 0
0 𝜆2 0  ⋯ 0
𝛬=( ).
⋮ ⋮ ⋮  ⋮
0 0 0 ⋯ 𝜆𝑛
Из теоремы 8.1 следуют два важных следствия:
Следствие 8.1. Если все собственные значения матрицы
различны, то она подобна диагональной матрице.
Следствие 8.2. Если у матрицы А все элементы 𝑎𝑖𝑗
действительные и она симметрическая, т.е. 𝐴 = 𝐴Т = (𝑎𝑖𝑗 )𝑛𝑛 ,
тогда она подобна некоторой диагональной матрице.
Другим способом, упрощающий процесс вычисления
собственных значений, является приведение квадратной к
треугольному виду, например, применив метод Гаусса.
Пример. Найти собственные значения и собственные
векторы матрицы
3 4
𝐴=( ).
5 2
Решение. Так как матрица имеет размерность 22, то
вычисление характеристического многочлена не представляет
проблем. Составляем характеристический многочлен:

3−𝜆 4
det( 𝐴 − 𝜆𝐼) = | |=(3−  )(2−  )−20=  2−5  −14.
5 2−𝜆

Характеристическое уравнение имеет вид:  2−5  −14=0,


корни которого 1=7 и 2=-2.
(1)
Переходим к вычислению собственных векторов х  и
(2) (1)
х . Для х получаем следующую систему

(1) (1)
3 4 х х
( ) ⋅ ( 1(1) ) = 7 ⋅ ( 1(1) ) .
5 2 х х
2 2

Определим ее решение.

133
 3 4   х1(1)   х (1)  3х (1) + 4 х (1) = 7 х (1)  х (1) − х (1) = 0
   (1) = 7   1(1) ; 1
 (1)
2 1  1
 (1)
2
.
 5 2   х 2  х  (1) (1) (1)
 2  5х1 + 2 х 2 = 7 х 2  х1 − х 2 = 0

Так система является совместной и неопределенной, из одного


(1) (1) (1)
уравнений находим, что х1   = х2 и присвоим переменной х2
(1) (1)
произвольное значение, например, х2 =1. Тогда х1   = 1 и
первый собственный вектор имеет вид
(1) 1
х = 𝛼1 ⋅ ( ) ,
1
где 1 – произвольное число. Аналогичным образом находим
собственный вектор, соответствующий собственному значению
2=−2:
(2) −1
х = 𝛼2 ⋅ ( ).
1

8.2. Методы Леверье и Фаддеева решения задачи на


собственные значения

Метод Леверье используется для вычисления


коэффициентов характеристического многочлена для
квадратной матрицы А и основывается на ньютоновские
формулы для сумм степеней корней алгебраического уравнения.
Рассмотрим характеристический многочлен матрицы
𝐴 = (𝑎𝑖𝑗 )𝑛𝑛
det( 𝐴 − 𝜆𝐼) = (−1)𝑛 (𝜆𝑛 + 𝑝1 𝜆𝑛−1 + ⋯ + 𝑝𝑛 )
и пусть 1 , 2 ,, n корни этого многочлена, причем в этом
наборе каждый корень повторяется столько раз, какова его
кратность. Составляем суммы:
𝑆𝑘 = 𝜆1𝑘 + 𝜆𝑘2 + ⋯ + 𝜆𝑘𝑛 ,  𝑘 = 1,2, . . . , 𝑛.

134
Для этих сумм при kn имеют место рекуррентные соотношения
Ньютона:

𝑆𝑘 + 𝑝1 𝑆𝑘−1 + 𝑝2 𝑆𝑘−2 + ⋯ + 𝑝𝑘−1 𝑆1 = −𝑘𝑝𝑘 .

Отсюда последовательно получаем

𝑝1 = −𝑆1
1
𝑝2 = − (𝑆2 + 𝑝1 𝑆1 )
2 .
⋯⋯⋯⋯⋯⋯⋯⋯
1
𝑝𝑛 = − (𝑆𝑛 + 𝑝1 𝑆𝑛−1 + ⋯ + 𝑝𝑛−1 𝑆1 )
{ 𝑛

Таким образом, если известны суммы 𝑆1 , 𝑆2 , … , 𝑆𝑛 , то шаг за


шагом можно найти коэффициенты 𝑝1 , 𝑝2 , … , 𝑝𝑛
характеристического многочлена матрицы. Но эти суммы
удовлетворяют следующие равенства:

n n
Sk = 
i =1
ik a
=
i =1
k
ii =tr( А k ), k = 1,2,..., n .

Вычисляя степени матриц А2=АА, А3=А2А,…, Аn=Аn-1А, можно


определить следы 𝑆𝑘 матриц 𝐴𝑘 с последующем вычислением
коэффициентов многочлена.
Пример 1. Для матрицы
1 0.2 1
𝐴 = (5 1 5)
1 0.2 1
построить характеристический многочлен по методу Леверье и
найти собственные значения матрицы.
Решение. Следуя методу Леверье найдем матрицы А2 и
А:
3

135
1 0.2 1 1 0.2 1 3 0.6 3
𝐴2 = (5 1 5) ⋅ (5 1 5) = (15 3 15),
1 0.2 1 1 0.2 1 3 0.6 3
3 0.6 3 1 0.2 1 9 1.8 9
3
𝐴 = (15 3 15) ⋅ (5 1 5) = (45 9 45).
3 0.6 3 1 0.2 1 9 1.8 9
Тогда следы матриц равны:
𝑆1 = tr(𝐴) = 1 + 1 + 1 = 3; 𝑆2 = tr(𝐴2 ) = 3 + 3 + 3 = 9;
𝑆3 = tr(𝐴3 ) = 9 + 9 + 9 = 27.
Применяя формулы метода Леверье для коэффициентов
характеристического многочлена, получаем:
1 1
𝑝1 = −𝑆1 = −3; 𝑝2 = − (𝑆2 + 𝑝1 𝑆1 ) = − (9 − 3 ⋅ 3) = 0;
2 2
1 1
𝑝3 = − (𝑆3 + 𝑝1 𝑆2 + 𝑝2 𝑆1 ) = − (27 − 3 ⋅ 9 − 3 ⋅ 0) = 0.
3 3
Значит характеристический многочлен этой матрицы имеет
вид:
𝐷(𝜆) = (−1)(−1)3 (𝜆3 − 3𝜆2 = −𝜆2 (𝜆 − 3).

Отсюда собственные значения матрицы А равны: 1=2=0; 3=3.


Метод Фаддеева является модификацией метода Леверье.
В этом методе характеристический многочлен запишем в виде:

𝑄𝑛 (𝜆) = 𝜆𝑛 + 𝑞1 𝜆𝑛−1 + ⋯ + 𝑞𝑛−1 𝜆 + 𝑞𝑛 .

где 𝑞𝑖 = (−1)𝑛 𝑝𝑖 . Введем в рассмотрение матрицы


А1 , А2 , ⋯ , Ап−1 , А𝑛 и 𝐵1 , 𝐵2 , ⋯ , 𝐵п−1 , 𝐵𝑛 с помощью которых,
определим рекурсивно коэффициенты собственного многочлена

𝑞1 , 𝑞2 , … , 𝑞𝑛−1 , 𝑞𝑛

следующим образом:

А1 = А, 𝑞1 = −𝑡𝑟(А1 ), 𝐵1 = А1 + 𝑞1 𝐼;

136
1
А2 = 𝐵1 А, 𝑞2 = − 𝑡𝑟(А2 ), 𝐵2 = А2 + 𝑞2 𝐼;
2

............................................................................
1
А𝑛 = 𝐵𝑛−1 А, 𝑞𝑛 = − 𝑡𝑟(А𝑛 ), 𝐵𝑛 = А𝑛 + 𝑞𝑛 𝐼 = 0.
𝑛

Метод Фаддеева позволяет определить и обратную


матрицу следующим образом:
1
𝐴−1 = − 𝐵𝑛−1 , если 𝑞𝑛 ≠ 0 или
𝑞𝑛

Пример 2. Построить характеристический многочлен и


найти обратную матрицу для матрицы:

4 −5
𝐴=( ).
2 −3

Решение.

4 −5
𝐴1 = ( ) , 𝑞1 = −𝑡𝑟(𝐴1 ) = −(4 + (−3)) = −1,
2 −3

3 −5
𝐵1 = 𝐴1 + 𝑞1 𝐼 = ( );
2 −4
2 0 1
𝐴2 = 𝐵1 𝐴 = ( ) , 𝑞2 = − 𝑡𝑟(𝐴2 ) = −2.
0 2 2

Тогда получаем:

1 3/2 −5/2
𝑄2 (𝜆) = 𝜆2 − 𝜆 − 2 и 𝐴−1 = 𝐵1 = ( ).
2 1 −2

137
Собственные значения матрицы А равны: Собственные
значения матрицы А равны: 𝜆1 = 2; 𝜆2 = −1 .

Собственные вектора находим из матрицы 𝐶(𝜆𝑘 ), где


𝐶(𝜆) = 𝜆𝑛−1 𝐼 + 𝜆𝑛−2 𝐵1 + ⋯ + 𝐵𝑛−1 .
Найдем собственный вектор, соответствующий
собственному значению 𝜆1 = 2. Для этого вычислим матрицу
𝐶(𝜆1 ) т.е.
2 0 3 −5 5 −5
𝐶(2) = 𝜆𝐼 + 𝐵1 𝜆 = ( )+( )= ( )
0 2 2 −4 2 −2
5
Вектор 𝑥̅1 = ( ) является собственным вектором
2
исходной матрицы. Проверка:

4 −5 5 10 5
𝐴𝑥̅1 = ( ) ( ) = ( ) = 2 ( ) = 2𝑥̅1 .
2 −3 2 4 2
Заметим, что собственные значения матрицы
определяются однозначно (с учетом их кратности), а
собственные векторы — неоднозначно, а с точностью до
5
произвольного постоянного множителя, так что 𝑥̅1 = 𝛼1 ( ), где
2
𝛼1 – произвольное ненулевое число.
Найдем, теперь, собственный вектор, соответствующий
собственному значению 𝜆2 = −1 :

−1 0 3 −5 2 −5
𝐶(−1) = 𝜆𝐼 + 𝐵1 𝜆 = ( )+( )= ( ).
0 −1 2 −4 2 −5
1
Вектор 𝑥̅2 = 𝛼2 ( ) (𝛼2 ≠ 0) является собственным вектором
1
соответствующий собственному значению 𝜆2 = −1
Следует отметить, что хотя объем вычислений
характеристического многочлена по методу Фаддеева
значительно больший чем по методу Леверье, в результате,
138
помимо чисел 𝑞1 , 𝑞2 , … , 𝑞𝑛 , получают дополнительно другие
характеристики матрицы А. Например, в процессе вычислений
вычисляется определитель матрицы по формуле
𝑑𝑒𝑡 𝐴 = (−1)𝑛 𝑞𝑛 = 𝑝𝑛 .

Пример 3. Для матрицы


5 1 1
𝐴 = ( 1 3 1)
1 1 3
построить собственный многочлен по методу Фаддеева и найти
собственные значения матрицы.

Решение.
5 1 1
𝐴1 = (1 3 1) , 𝑞1 = −𝑡𝑟(𝐴1 ) = −11 ,
1 1 3
−6 1 1
𝐵1 = 𝐴1 + 𝑞1 𝐼 = ( 1 −8 1 ) ,
1 1 −8
−28 −2 −2
1
𝐴2 = 𝐵1 𝐴 = ( −2 −22 −4 ) , 𝑞2 = − 𝑡𝑟(𝐴2 ) = 36 ,
2
−2 −4 −22
8 −2 −2
𝐵2 = 𝐴2 + 𝑞2 𝐼 = (−2 14 −4) ,
−2 −4 14
36 0 0
1
𝐴3 = 𝐵2 𝐴 = ( 0 36 0 ) , 𝑞3 = − 𝑡𝑟(𝐴3 ) = −36 .
3
0 0 36
Получаем:
𝑄3 (𝜆) = 𝜆3 − 11𝜆2 + 36𝜆 − 36
и

139
2 1 1
− −
9 18 18
1 1 8 −2 −2 1 7 1
𝐴−1 = 𝐵2 = (−2 14 −4) = − −
36 36 18 18 9
−2 −4 14
1 1 7
(− 18 − 9 18 )
Для вычисления собственных векторов матрицы А, необходимо
найти ее собственные числа для чего требуется решить
характеристическое уравнение 𝜆3 − 11𝜆2 + 36𝜆 − 36 = 0 Т.к.
коэффициенты уравнения целые, то используя
соответствующую теорему из алгебры, корни следует искать
среди делителей свободного члена уравнения.
Непосредственной проверкой получаем, что числа 1=6, 2=2;
3=3 корни уравнения.
Найдем, например, собственный вектор,
соответствующий собственному значению 2=6. Для этого
вычислим матрицу
𝐶(𝜆2 ) = 𝐶(6) = 62 𝐼 + 6𝐵1 + 𝐵2 =
36 0 0 −36 6 6
= ( 0 36 0 ) + ( 6 −48 6 )+
0 0 36 6 6 −48
8 −2 −2 8 4 4
+ (−2 14 −4) = (4 2 2)
−2 −4 14 4 2 2
2
(1)
Вектор х = 𝛼1 (1), где константа 𝛼1 ≠ 0, является
1
собственным вектором исходной матрицы соответствующий
собственному значению 2=6.

8.3. Степенной метод определения собственных значений и


собственных векторов

Данный метод относится к классу итерационных методов


для решения частичной задачи на собственные значения т.к.
140
позволяет вычислить одно собственное значение. Метод
особенно эффективен при обработке матриц со специальной
структурой, например разряженные матрицы (матрицы большой
размерности, но с малым числом ненулевых элементов).
Пусть характеристическое уравнение матрицы А имеет
(1) (2) (𝑛)
вид det( А − 𝜆𝐼) =0 и пусть система (𝑥 , 𝑥 , … , 𝑥 ) состоит
из n линейно независимых собственных векторов матрицы.
Расположим собственные значения матрицы 𝜆1 , 𝜆2 , … , 𝜆𝑛 в
порядке не возрастания их модулей: |𝜆1 | > |𝜆2 | ≥ ⋯ ≥ 𝜆𝑛 и
пусть собственное число 𝜆1 является единственным
наибольшим по модулю из всех собственных чисел. Иначе
говоря, 𝜆1 является доминантным собственным числом.
(0)
Возьмем произвольный ненулевой вектор у и учитывая
(1) (2) (𝑛)
тот факт, что векторы 𝑥 , 𝑥 , … , 𝑥 линейно независимы и
образуют базис в 𝑅𝑛 , разложим его по данной системе векторов:
𝑛
(0) (𝑘)
у = ∑ 𝛼𝑘 𝑥
𝑘=1

где  k некоторые постоянные числа.


Умножим обе части этого равенства слева на матрицу А
и получим:
𝑛
(0) (𝑘)
Ау = ∑ 𝛼𝑘 А𝑥 .
𝑘=1

(𝑘)
Отсюда, т.к. 𝑥 собственный вектор матрицы А, а значит А ⋅
(𝑘) (𝑘)
𝑥 = 𝜆𝑘 𝑥 ,
имеем
𝑛
(0) (𝑘)
Ау = ∑ 𝜆 𝑘 𝛼𝑘 𝑥 .
𝑘=1

141
Аналогичным образом, умножая последовательно полученные
равенства на матрицу А, получим итерационный набор векторов
(1) (0) (2) (0) (𝑟) (0)
у = Ау , у = А2 у , … , у = А𝑟 у , …,
где
𝑛
(𝑚) 𝑚 (0) (𝑚)
𝑦 =А у = ∑ 𝜆𝑚
𝑘 ⋅ 𝛼𝑘 ⋅ 𝑥 .
𝑘=1
Покомпонентно, отсюда следует, что

𝑦𝑖 (𝑟) = 𝛽1𝑖 ⋅ 𝜆1𝑟 + 𝛽2𝑖 ⋅ 𝜆𝑟2 + ⋯ + 𝛽𝑛𝑖 ⋅ 𝜆𝑟𝑛𝑖 ,  𝑖 = 1,2, . . . , 𝑛.

Здесь введены обозначения


(𝑟) (𝑟) (𝑟) (𝑟) (𝑖)
у = (𝑦1 , 𝑦2 , … , 𝑦𝑛 ), 𝛽𝑠𝑖 = 𝛼𝑠 𝑥𝑠 .
Если |𝜆1 | > |𝜆к |,  𝑘 > 1 и 1≠0, тогда можно рассмотреть
отношение

𝑦𝑖 (𝑟+1) 𝛽1𝑖 ⋅𝜆𝑟+1 𝑟+1 𝑟+1


1 +𝛽2𝑖 ⋅𝜆2 +⋯+𝛽𝑛𝑖 ⋅𝜆𝑛 1+𝛾2𝑖 ⋅𝜇2𝑟+1 +⋯+𝛾𝑛𝑖 ⋅𝜇𝑛
𝑟+1
= = 𝜆1 ,
𝑦𝑖 (𝑟) 𝛽1𝑖 ⋅𝜆𝑟1 +𝛽2𝑖 ⋅𝜆𝑟2 +⋯+𝛽𝑛𝑖 ⋅𝜆𝑟𝑛 1+𝛾2𝑖 ⋅𝜇2𝑟 +⋯+𝛾𝑛𝑖 ⋅𝜇𝑛
𝑟

где
𝛽т𝑖 𝜆т
𝛾т𝑖 = , 𝜇т = .
𝛽1𝑖 𝜆1
С учетом того, что |𝜇𝑠 | < 1, ∀𝑠 > 1 при неограниченном
возрастании числа итераций r, получаем

𝑦𝑖 (𝑟+1)
lim = 𝜆1 .
𝑟→∞ 𝑦𝑖 (𝑟)

Тогда можно считать, что для достаточно большого количества


итераций r имеет место формула

𝑦𝑖 (𝑟+1)
≈ 𝜆1 .
𝑦𝑖 (𝑟)

142
С другой стороны, согласно процедуре построения
собственного вектора, соответствующего собственному
значению 1 этот вектор имеет вид:

1 (𝑟)
(1)
𝑥 𝑦 .≈
𝜆1𝑟
В следствие того, что собственный вектор определяется с
(1) (𝑟)
точностью до постоянной, можно считать, что х = 𝐶𝑦 .
Отметим, что рассматриваемый степенной метод
определения собственного значения и соответствующего
собственного вектора может быть применен и в тех случаях,
когда матрица А имеет несколько равных доминантных
собственных значений.
Степенной метод требует большое число вычислений,
так как является итерационным методом, который может
сходится или расходится. Признаком расходимости
итерационного процесса может служить осцилляция дроби
(𝑟+1)
𝑦𝑖
(𝑟) . В этом случае следует подобрать другой начальный
𝑦𝑖
вектор. Скорость сходимости метода зависит от выбора
(0)
начального вектора у и отношения |𝜆к |/|𝜆1 |: чем это
отношение меньше, тем скорость сходимости выше.
Пример. Найти с помощью степенного метода
наибольшее собственное значение и соответствующий
собственный вектор матрицы
6 −2 2
𝐴 = (−2 5 0).
2 0 7
Решение. Возьмем, например, в качестве начального
(0)
вектор у = (1,1,1)Т . По алгоритму метода строим
последовательно векторы
(1) (0) (2) (0) (𝑟) (0)
у = Ау , у = А2 у , … , у = А𝑟 у , ….
После 6 итераций, получены следующая таблица с результатами
вычислений:
143
(𝟎) (𝟎) (𝟎) (𝟎) (𝟎)
у Ау А2у А3у А4у
1 48 432 3996 36936
1 3 -81 -1269 -14337
1 75 621 5211 44469

(𝟎) (𝟎) (𝟎) (𝟎)


А5у А6у А7 у А8у
339228 3096792 28142316 254934216
-145557 -1406241 -13224789 -122408577
385155 3374541 29815371 264992229

Отсюда получаем

(1) 𝑦1 (8) 254934216 (2) 𝑦2 (8) -122408577


𝜆1 ≈ (7) = =9.058750, 𝜆1 ≈ = =9.255995,
𝑦1 28142316 𝑦2 (7) -13224789
(3) 𝑦3 (8) 264992229
𝜆1 ≈ = =8.887772.
𝑦3 (7) 29815371

Из этих чисел в качестве приближения 1 можно взять любое,


однако можно получить более улучшенный результат если взять
среднее арифметическое данных величин, т.е.
(1) (2) (3)
𝜆 +𝜆 +𝜆
𝜆1 ≈ 1 1 1 = 9.067506.
3
Для сравнения погрешности полученного результата, приведем
точное значение этого собственного значения: 𝜆1 ≈ 9.0000.
В качестве собственного вектора соответствующий
значению 1 можно взять вектор

254934216
(0)
А8 у = (-122408577).
264992229

Если нормировать данный вектор, поделив на

144
2 2 2
√[у(8) ] + [у(8) ] + [у(8) ] ,
1 2 3

тогда собственный вектор, соответствующий значению 1


равен:
(1)
х = (0.6532650, -0.3069858, 0.6921015)Т .

Из приведенного примера очевидны недостатки данного


(0)
примера. Так, если |1|>1, тогда компоненты векторы А𝑘 у по
модулю возрастают экспоненциально, что приводит к очень
(𝑘)
большим числам (𝑦𝑖 → ∞). С другой стороны, если |𝜆1 | < 1
тогда на каком-то шаге может быть потеря значимости, т.к.
(𝑘)
𝑦𝑖 → 0. Выходом из данной ситуации является нормирование
полученных величин на каждом промежуточном шаге.
Вследствие медленной сходимости метода, его
применяют в тех случаях, когда матрица А разряженная.

8.4. Метод Крылова

Рассматриваемый ниже метод основан на свойство


квадратной матрицы обращать в ноль свой характеристический
многочлен. Согласно теореме Кэли-Гамильтона, всякая
квадратная матрица является корнем соответствующего ей
характеристического многочлена.
Пусть для матрицы 𝐴 = (𝑎𝑖𝑗 )𝑛𝑛 характеристический
многочлен имеет вид

𝐷(𝜆) = 𝑑𝑒𝑡( 𝐴 − 𝜆𝐼) = (−1)𝑛 (𝜆𝑛 + 𝑝1 𝜆𝑛−1 + ⋯ + 𝑝𝑛 ),

а характеристическое уравнение - 𝐷(𝜆) = 0. В этом равенстве


заменим число  матрицей А и получим следующее матричное
уравнение
А𝑛 + 𝑝1 А𝑛−1 + ⋯ + 𝑝𝑛 𝐼 = 0,
145
обе части которого умножим справа на произвольный
(0)
ненулевой вектор у . Имеем:

(0) (0) (0)


А𝑛 у + 𝑝1 А𝑛−1 у + ⋯ + 𝑝𝑛 у =0.

(0) (к)
Если ввести обозначение А(к) у =у , тогда векторное
уравнение принимает вид

(𝑛) (𝑛−1) (0)


у + 𝑝1 у + ⋯ + 𝑝𝑛 у = 0,

откуда следует, что

(𝑛) (𝑛−1) (0)


−у = 𝑝1 у + ⋯ + 𝑝𝑛 у .

По компонентам, данное векторное уравнение будет


эквивалентной системе уравнений:

(𝑛−1) (𝑛−2) (0) (𝑛)


у1 ⋅ 𝑝1 + у1 ⋅ 𝑝2 + ⋯ + у1 ⋅ 𝑝𝑛 = −у1
(𝑛−1) (𝑛−2) (0) (𝑛)
у2 ⋅ 𝑝1 + у2 ⋅ 𝑝2 + ⋯ + у2 ⋅ 𝑝𝑛 = −у2
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
(𝑛−1)
{у𝑛 ⋅ 𝑝1 + у(𝑛−2)
𝑛
⋅ 𝑝2 + ⋯ + у(0)
𝑛
⋅ 𝑝𝑛 = −у(𝑛)
𝑛
.
Эта система из n уравнений с n неизвестными 𝑝1 , 𝑝2 , … , 𝑝𝑛 -
коэффициенты характеристического многочлена.
(𝑘)
Коэффициенты у𝑖 ,  𝑖, 𝑘 = 1,2, . . . , 𝑛 вычисляются по
формулам:

146
𝑛
(1) (0)
у𝑖 = ∑ 𝑎𝑖𝑗 ⋅ у𝑗
𝑗=1
𝑛
(2) (1)
у𝑖 = ∑ 𝑎𝑖𝑗 ⋅ у𝑗
𝑗=1
⋯⋯⋯⋯⋯⋯
𝑛
(𝑛) (𝑛−1)
у𝑖 = ∑ 𝑎𝑖𝑗 ⋅ у𝑗
{ 𝑗=1

Решение данной системы может быть получено одним из


методов, рассмотренных в главе 3 (например, методом Гаусса).
Определив из системы коэффициенты 𝑝1 , 𝑝2 , … , 𝑝𝑛
характеристического многочлена в дальнейшем решается
характеристическое уравнение и тем самым находят
собственные числа матрицы.
Метод Крылова позволяет найти и собственные векторы
матрицы по следующим формулам:

(𝑘) (𝑛−1) (𝑛−2) (0)


𝑥 =у + 𝑞1,𝑘 у + ⋯ + +𝑞𝑛−1,𝑘 у ,  𝑘 = 1,2, . . . , 𝑛,

где числа qi , j определяются рекуррентно из соотношений:


𝑞0,𝑗 = 1, 𝑞𝑖,𝑗 = 𝜆𝑗 𝑞𝑖−1,𝑗 + 𝑝𝑖 ,  𝑖 = 2,3, . . . , 𝑛 − 1;  𝑗 = 1,2, . . . , 𝑛.
Пример. Методом Крылова построить
характеристический многочлен матрицы

6 −2 2
𝐴 = (−2 5 0).
2 0 7

Найти собственные значения и соответствующие собственные


векторы.

147
Решение. Возьмем, например, в качестве начального
(0)
вектора вектор у = (1,1,1)Т . Рассмотрим векторное уравнение

(0) (0) (0) (0)


А3 у + 𝑝1 А2 у + 𝑝2 Ау + 𝑝3 у =0

(к) (0)
и вычислим вектора у = А(к) у для к=1,2,3. Имеем:

6 −2 2 1 6
(1) (0)
у = Ау = (−2 5 0) (1) = (3);
2 0 7 1 9
6 −2 2 6 48
(2) (0) (1)
у = А2 у = 𝐴у = (−2 5 0) (3) = ( 3 );
2 0 7 9 75

6 −2 2 48 432
(3) (0) (2)
у = А3 у = 𝐴у = (−2 5 0 ) ( 3 ) = ( −81).
2 0 7 75 75

Отсюда получаем систему уравнений для коэффициентов


𝑝1 , 𝑝2 , 𝑝3 характеристического многочлена:

48𝑝1 + 6𝑝2 + 𝑝3 = 432


{ 3𝑝1 + 3𝑝2 + 𝑝3 = −81.
75𝑝1 + 9𝑝2 + 𝑝3 = 621

Решение системы вектор р = (−18,99, −162)Т , а это означает


что характеристический многочлен имеет следующий вид:

𝐷(𝜆) = 𝜆3 − 18𝜆2 + 99𝜆 − 162.

Рассмотрим уравнение 𝜆3 − 18𝜆2 + 99𝜆 − 162=0, для


которого надо найти корни. Т.к. коэффициенты уравнения
целые числа, то из алгебры следует что данное уравнение может
148
иметь целые корни, которых следует искать среди делителей
свободного члена многочлена. Непосредственной проверкой
заключаем, что среди корней имеется корень 1 =9. Найдем
остальные корни. Для этого поделим многочлен 𝐷(𝜆) на двучлен
-9 для понижения степени многочлена. В результате получаем
квадратный трехчлен

𝐷1 (𝜆) = 𝜆2 − 9𝜆 + 18б
корни которого
2 =6 и 3 =3.
Итак,

𝐷(𝜆) = 𝜆3 − 18𝜆2 + 99𝜆 − 162 = (𝜆 − 9)(𝜆 − 6)(𝜆 − 3)

и собственные значения исходной матрицы А такие:

1 =9, 2 =6 и 3 =3.

Собственные векторы матрицы определяются по


формулам, приведенным выше.

Задания к лабораторной работе “Вычисление


собственных значений и векторов матрицы”

1. Составить программу для нахождения


коэффициентов характеристического многочлена,
обратной матрицы и определителя по методу
Фаддеева.
2. Составить программу для вычисления наибольшего
по модулю собственного значения матрицы применяя
степенной метод.

149
Варианты:

1 5 0 2 1 1
1. 𝐴 = (1 1 −1), 2. 𝐴 = (−1 2 −1),
0 1 1 1 −1 2

1 4 9 3 0 −3
3. 𝐴 = (0 2 0), 4. 𝐴 = (0 3 3 ),
1 −2 1 6 3 9

1 1 3 4 −1 −2
5 . 𝐴 = (1 3 1), 6. 𝐴 = (2 1 −2),
3 1 1 1 −1 1
3 2 2 1 0 3
7. 𝐴 = ( 2 2 1 ), 8. 𝐴 = (2 1 2),
−6 −5 −4 3 0 1

−1 0 −3 −1 0 −3
9. 𝐴 = ( 3 2 3 ), 10. 𝐴 = ( 3 2 3 ),
−3 0 −1 −3 0 −1

1 −3 4 26 33 25
11. 𝐴 = (4 −7 8), 12. 𝐴 = (−31 −42 −23),
6 −7 7 11 15 4

7 −12 64 6 −5 −3
13. 𝐴 = (10 −19 10), 14 . 𝐴 = (3 −2 −2),
12 −247 13 2 −2 0

150
IX. ЧИСЛЕННЫЕ МЕТОДЫ МИНИМИЗАЦИИ ФУНКЦИИ
ОДНОЙ ПЕРЕМЕННОЙ

Рассмотрим задачу оптимизации целевой функции 𝐹(𝑥)


на допустимом множестве 𝑋 = [𝑎, 𝑏]:

𝐹(𝑥): [𝑎, 𝑏] → 𝑅
𝐹(𝑥)→ min (max).
Аналитические методы исследования функции на
экстремум можно использовать в тех случаях, когда функция
𝐹(𝑥) и ее производные имеют достаточно простой вид. Решение
этой задачи оптимизации можно свести к решению уравнения
𝐹 ′ (𝑥) = 0. Однако в практических задачах вычисление
производной 𝐹 ′ (𝑥) представляет большие трудности. Кроме
того, часто неизвестно, является ли 𝐹(𝑥) дифференцируемой
функцией или нет. Поэтому существенное значение
приобретают численные методы оптимизации, не требующие
вычисления производной и основанные на исследовании
поведения функции в некоторых специально подбираемых
точках в соответствии с определенным алгоритмом. Такие
методы называются прямыми методами минимизации. При
этом задача максимизации может быть сведена к задаче
минимизации.
Дадим определение унимодальной функции.
Определение. Функция F(x) называется унимодальной
на отрезке [ 𝑎, 𝑏], если существует единственная точка ее
минимума 𝑥0 и слева от этой точки функция 𝐹(𝑥) является
строго убывающей, а справа - строго возрастающей:

𝐹(𝑥1 ) > 𝐹(𝑥2 ),  если 𝑥1 < 𝑥2 < 𝑥0 , 


𝐹(𝑥1 ) < 𝐹(𝑥2 ),  если 𝑥0 < 𝑥1 < 𝑥2 . 

Для проверки унимодальности функции используют


теоремы:
151
Теорема 9.1. Если функция 𝐹(𝑥) дважды
′′
дифференцируема на отрезке [𝑎, 𝑏] и 𝐹 (𝑥) ≥ 0, 𝑎 ≤ 𝑥 ≤ 𝑏, то
𝐹(𝑥) унимодальная на [𝑎, 𝑏].
Для решения задачи минимизации функции 𝐹(𝑥) на
отрезке [𝑎, 𝑏] на практике, как правило, применяют
приближенные методы. Они позволяют найти решения этой
задачи с необходимой точностью в результате определения
конечного числа значений функции 𝐹(𝑥) и ее производных в
некоторых точках отрезка [𝑎, 𝑏]. Методы, использующие только
значения функции и не требующие вычисления ее производных,
называются прямыми методами минимизации.
Большим достоинством прямых методов является то, что от
целевой функции не требуется дифференцируемости и, более
того, она может быть не задана в аналитическом виде.
Единственное, на чем основаны алгоритмы прямых методов
минимизации, это возможность определения значений 𝐹(𝑥) в
заданных точках.
Самым слабым требованием на функцию 𝐹(𝑥),
позволяющим использовать эти методы, является ее
унимодальность (наличие одного минимума в области
допустимых значений). Поэтому далее будем считать функцию
𝐹(𝑥) унимодальной на отрезке [𝑎, 𝑏].

9.1 Метод перебора

Метод перебора или равномерного поиска является


простейшим из прямых методов минимизации и состоит в
следующем. Разобьем отрезок [𝑎, 𝑏] на n равных частей точками
деления:
𝑥𝑖 = 𝑎 + 𝑖 ⋅ ℎ,  𝑖 = 0,1,2, . . . , 𝑛, где ℎ = (𝑏 − 𝑎)⁄𝑛.
Вычислив значения 𝐹(𝑥) в точках 𝑥𝑖 , путем сравнения
найдем точку𝑥к , где 0 ≤ к ≤ п, такую, что 𝐹(𝑥к ) = min{𝐹(𝑥𝑖 )}.
𝑖
Погрешность определения точки минимума 𝑥к функции
𝐹(𝑥) методом перебора не превосходит величины ℎ = (𝑏 − 𝑎)⁄𝑛 .
152
9.2 Метод дихотомии

Метод применяется для нахождения экстремума


(максимума или минимума) нелинейных одномерных
унимодальных целевых функций.
Суть метода в следующем. Пусть целевая функция 𝐹(𝑥)
задана на интервале [𝑎, 𝑏]. Отрезок на каждом этапе делится
пополам. За первые две поисковые точки берутся точки

𝑎+𝑏−Δ 𝑎+𝑏+Δ
𝑥1 = , и 𝑥2 = ,
2 2

где Δ величина, меньшая половины требуемой абсолютной


погрешности решения задачи оптимизации. Вычисляя значения
целевой функции 𝐹(𝑥) в точках 𝑥1 и 𝑥2 , уточняется направление
поиска. При поиске минимума функции, если 𝐹(𝑥1 ) < 𝐹(𝑥2 ),
тогда смещается правая граница первоначального интервала
неопределенности [𝑎, 𝑏], т.е. полагается 𝑏 = 𝑥2 , если же 𝐹(𝑥1 ) >
𝐹(𝑥2 ), тогда смещается левая граница 𝑎 = 𝑥1 . При этом если
новый интервал неопределенности [𝑎1 , 𝑏1 ] больше заданной
погрешности решения ε, то деление пополам продолжается.
Пусть на k-ом шаге длина отрезка [𝑎𝑘 , 𝑏𝑘 ] ⊂ [𝑎, 𝑏] меньше
погрешности 𝜀, тогда точка

𝑥0 = (𝑎к + 𝑏к )/2
𝐹(𝑥)
считается приближением
точки глобального
минимума функции на
[𝑎, 𝑏] и 𝐹𝑚𝑖𝑛 = 𝐹(𝑥0 ).
х
Пример. Методом
дихотомии найти a x1 x2 b
a1 b1 Рис. 9.1

153
минимальное значение функции
𝑥3
𝐹(𝑥) =
2(𝑥 − 1)2
на отрезке [1.8,4] с погрешностью ε=0.0075.
Решение. Можно показать, что на рассматриваемом отрезке
𝐹 ″ (𝑥) > 0, т.е. функция унимодальная на данном промежутке.
Пусть Δ = 0.002. Так как приближенное решение будет равным
𝑥𝑘 = (𝑎к + 𝑏к )/2, число делений отрезка должно быть таким
чтобы (𝑏к − 𝑎к )/2 ≤ 0.0075 (условие прекращения
вычислений). Результаты вычислений приводятся в следующей
таблице:
N ak bk xk F(ak) F(bk) F((ak+ bk)/2)
1 1.80000 4.00000 2.90000 4.55625 3.55556 3.37798
2 2.89900 4.00000 3.44950 3.37804 3.55556 3.37798
3 2.89900 3.45050 3.17475 3.37804 3.42063 3.42045
4 2.89900 3.17575 3.03737 3.37804 3.38291 3.38283
5 2.89900 3.03837 2.96869 3.37804 3.37541 3.37539
6 2.96769 3.03837 3.00303 3.37530 3.37541 3.37528
7 2.96769 3.00403 2.98586 3.37530 3.37500 3.37500
8 2.98486 3.00403 2.99444 3.37506 3.37500 3.37506

Таким образом, точкой минимума является точка


𝑎 +𝑏
𝑥0 ≈ 8 8 = 2.9944 и 𝐹(𝑥0 ) = 𝐹𝑚𝑖𝑛 ≈ 3.3750.
2

Ниже приводится процедура численного решения


одномерной оптимизации по методу дихотомии.

void M_Dihot(float a,float b,float Eps,float delta,float *x,int *Niter)


{
float c,h=delta; int N=0;
c=(a+b)/2;
while(fabs(a-b)/2>=Eps)
{N++;
c=(a+b)/2;
154
if(F(c-h/2)<=F(c+h/2)) b=c+h/2;
else a=c-h/2;
}
*x=(a+b)/2; *Niter=N;
}

9.3. Метод золотого сечения

Одним из наиболее эффективных методов, в которых при


ограниченном количестве вычислений функции 𝐹(𝑥),
достигается наилучшая точность, является метод золотого
сечения. Он состоит в построении последовательности отрезков
[𝑎0 , 𝑏0 ], [𝑎1 , 𝑏1 ], . .., стягивающихся к точке минимума функции
𝐹(𝑥). На каждом шаге, за исключением первого, вычисление
значения функции F(x) проводится лишь один раз. Эта точка,
называемая золотым сечением, выбирается специальным
образом.
Рассмотрим алгоритм поиска экстремума в
геометрической интерпретации (рис. 9.2).
На первом шаге процесса оптимизации внутри отрез-
ка [𝑎0 , 𝑏0 ] выбираем некоторые внутренние точки x1 и x2, и
вычисляем значении целевой функции 𝐹(𝑥1 ) и 𝐹(𝑥2 ).
Поскольку в данном случае 𝐹(𝑥1 ) < 𝐹(𝑥2 ) очевидно, что
минимум расположен на одном из прилегающих к x1 отрезков:
[𝑎0 , 𝑥1 ] или [𝑥1 , 𝑥2 ]. Поэтому отрезок [𝑥2 , 𝑏0 ] можно отбросить,
сузив тем самым первоначальный интервал неопределенности.
Второй шаг проводим на отрезке [𝑎1 , 𝑏1 ] , где 𝑎1 = 𝑎0,
𝑏1 = 𝑥2 . Нужно снова выбрать, две внутренние точки, но одна
из них, 𝑥1 осталась из предыдущего шага, поэтому достаточно
выбрать лишь одну точку 𝑥3 , вычислить значение F(x3) и
провести сравнение. Поскольку здесь 𝐹(𝑥1 ) < 𝐹(𝑥3 ), ясно, что
минимум находится на отрезке [𝑥3 , 𝑏1 ]. Обозначим этот отрезок
[𝑎2 , 𝑏2 ], снова выберем одну внутреннюю точку и повторим
процедуру сужения интервала неопределенности. Процесс
155
оптимизации повторяется до тех пор, пока длина очередного
отрезка [𝑎𝑛 , 𝑏𝑛 ] не станет меньше заданной величины .

Теперь рассмотрим способ размещения внутренних точек


на каждом отрезке [𝑎𝑘 , 𝑏𝑘 ]. Пусть длина интервала
неопределенности равна l, а точка деления разбивает его на
части: 𝑙 = 𝑙1 + 𝑙2 , причем 𝑙1 < 𝑙2 . Золотое сечение интервала
неопределенности выбирается так, чтобы отношение длины
большего отрезка к длине всего интервала равнялось
отношению длины меньшего отрезка к длине большего отрезка:

𝑙1 𝑙2
= (9.1)
𝑙 𝑙1
Из этого соотношения можно найти точку деления,
определив отношение l1/l2. Преобразуем выражение (9.1) и
найдем это значение:
𝑙1 2 = 𝑙2 ⋅ 𝑙 ⇒ 𝑙1 2 = 𝑙2 ⋅ (𝑙1 + 𝑙2 ) ⇒ 𝑙2 2 + 𝑙1 ⋅ 𝑙2 − 𝑙1 2 = 0
или
𝑙 2 𝑙2 𝑙2 −1±√5
( 2) + −1=0⇒ = .
𝑙1 𝑙1 𝑙1 2
Так как нас интересует только положительное решение, то

𝑙2 𝑙1 −1+√5
= = ≈ 0.618.
𝑙1 𝑙 2

156
Таким образом, l10.618l и l20.382l. Поскольку заранее
известно, в какой последовательности (l1 и l2) или (l2 и l1) делить
интервал неопределенности, то рассмотрим внутренние точки,
соответствующие двум этим способом деления.
Пусть 𝑏0 − 𝑎0 = 𝑑0 . Тогда:
𝑥1 − 𝑎0 = 𝑏0 − 𝑥2 = 0.382 ⋅ 𝑑0 ,
𝑏0 − 𝑥1 = 𝑥2 − 𝑎0 = 0.618𝑑0 .
После первого шага оптимизации получается новый
интервал неопределенности – отрезок [a1 , b1 ] . Можно показать,
что точка x1 делит этот отрезок в требуемом отношении, при
этом
𝑏1 − 𝑥1 = 0.382𝑑1 , 𝑑1 = 𝑏1 − 𝑎1 .

Для этого проведем очевидные преобразования:

𝑏1 − 𝑥1 = 𝑥2 − 𝑥1 = (𝑏0 − 𝑎0 ) − (𝑥1 − 𝑎0 ) − (𝑏0 − 𝑥2 )


= 𝑑0 − 0.382 ⋅ 𝑑0 − 0.382 ⋅ 𝑑0 = 0.236 ⋅ 𝑑0 ,
d1 = x2 – a0= 0.618 d0,
𝑑1
𝑏1 − 𝑥1 = 0.236 ⋅ = 0.382𝑑1 .
0.618
Вторая точка деления 𝑥3 выбирается на таком же расстоянии от
левой границе отрезка, т.е. х3 - a1=0.382 d1, причем интервал
неопределенности уменьшается до размера
d2 = b2 – a0 =b2 – х3=0.618 d1=0.618² d0.
Используя полученные соотношения, можно записать
координаты точек деления y и z, (y<z) отрезка [𝑎𝑘 , 𝑏𝑘 ] на (k+1)-
м шаге оптимизации:
y=0.618𝑎𝑘 +0.382𝑏𝑘 ,
y=0.382𝑎𝑘 +0.618𝑏𝑘 .
При этом длина интервала неопределенности равна
𝑑𝑘 = 𝑏𝑘 − 𝑎𝑘 = 0.618𝑑0𝑘 .
Пример. Найти минимум функции
𝑥3
𝐹(𝑥) = на отрезке [1.8,4].
2(𝑥 −1)2
Решение. 1-я итерация. Имеем: 𝑎 = 1.8,  𝑏 = 4,
157
𝑥1 = 0.618𝑎 + 0.382𝑏 = 2.6404, 
𝑥2 = 0.618𝑏 + 0.382𝑎 = 3.1596.
2.640403
𝐹1 = 𝐹(𝑥1 ) = = 3.42625 ,
2(2.64040 −1)2
3.15963
𝐹2 = 𝐹(𝑥2 ) = = 3.38158 ⇒ 𝐹1 < 𝐹2 .
2(3.1596−1)2
2-я итерация. 𝑎 = 2.6404,  𝑏 = 4, |𝑏 − 𝑎| > 𝜀.
𝐹2 = 𝐹1 = 3.42625
𝑥1 = 0.618𝑎 + 0.382𝑏 = 3.15960
3.15960 3
𝐹1 = 𝐹(𝑥1 ) = = 3.38158 ⇒ 𝐹1 > 𝐹2 .
2(3.15960 −1)2
Продолжая итерации, получаем следующую таблицу
N x1 x2 F1 F2 b-a a b
1 2.64040 3.15960 3.42042 3.38158 2.20000 1.80000 4.00000
2 3.15960 3.48063 3.38158 3.42625 1.35960 2.64040 4.00000
3 2.96137 3.15960 3.37543 3.38158 0.84023 2.64040 3.48063
4 2.83873 2.96137 3.38303 3.37543 0.51920 2.64040 3.15960
5 2.96137 3.03703 3.37543 3.37538 0.32087 2.83873 3.15960
6 3.03703 3.08388 3.37538 3.37689 0.19823 2.96137 3.15960
7 3.00817 3.03703 3.37502 3.37538 0.12251 2.96137 3.08388

Следовательно, точкой минимума является точка


𝑥0 ≈ 3.00817
и
𝐹(𝑥0 ) = 𝐹𝑚𝑖𝑛 = 3.37502.
Особенностью метода является определение значения
лишь одной внутренней точки отрезка начиная со второго шага,
что приводит к меньшему объему вычислений.

158
Задания к лабораторной работе “Численные методы
минимизации функции одной переменной”

Методом золотого сечения и методом дихотомии найти


точку минимума 𝑥 ∗ функции F(x) на отрезке [𝑎, 𝑏] с точностью
𝜀 = 0.001 и минимальное значение функций:

1. F ( x) = x3 − 3sin x, [a, b] = [0,1] ;

2. F ( x) = x3 − 3sin x, [a, b] = [0,1] ;


3. F ( x) = x 4 + x 2 + x + 1, [a, b] = [−1,0] ;
1
F ( x) = +ex,
x [a, b] = [0.5,1.5] ;
4.
F ( x) = x 2 + x + sin x, [a, b] = [−1,0] ;
5.
F ( x) = x 2 + e − x , [a, b] = [0,1] ;
6.
F ( x) = x 2 − 3x + x ln x, [a, b] = [1,2] ;
7.
F ( x) = ln(1 + x 2 ) − sin x, [a, b] = [0,  / 4] ;
8.
F ( x) = x 4 + x 2 + x + 1, [a, b] = [−1,0] ;
9.
10. F ( x) = x + 4x − 32 x + 48, [a, b] = [0,2] ;
4 2

11. F ( x) = 0.5x − sin x, [a, b] = [0,1] ;


2

12. F ( x) = x − 2 x + e , [a, b] = [1,2] ;


2 −x

13. F ( x) = x 2 + 3x(ln x − 1), [a, b] = [0.5,1.5] .

159
Дополнительная литература

1. Richard L. Burden and J. Douglas Faires. Numerical


Analysis,. Ninth Edition. Editor-in-Chief: Michelle Julet.
Publisher: Richard Stratton, 2011.- 895 p.
https://faculty.ksu.edu.sa/sites/default/files/numerical_analysis_9th.pdf
2. Marinescu Gh., Rizzoli I. ş.a. Probleme de analiză numerică
rezolvate cu calculatorul. Editura Academiei Republicii
România, Bucureşti, 1987. - 264 p.
3. Larionescu Dan. Metode numerice. Editura Tehnică,
Bucureşti, 1989. -224 p.
4. Brătianu C, Bostan V., Cojocea L., Negreanu G. Metode
numerice. Editura tehnică, București, 1996. -212 p.
5. Iorga V., Jora B., Nicolescu Cr., Lopătan I., Fătu I.
Programare numerică. Editura Teora, București, 1996.-256p.
6. Волков Е. А. Численные методы. М. Наука, 1982.-254 p.
7. Турчак Л. И., Плотников П. В. Основы численных
методов. Учебное пособие. // М.: Физматлит, 2005.
8. Численные методы / Н. С. Бахвалов, Н. П. Жидков, Г. М.
Кобельков. — 6-е изд. — М.: БИНОМ. Лаборатория
знаний, 2008.

160
Оглавление

Введение ................................................................................................................ 3
I. ПОГРЕШНОСТИ ЧИСЛЕННОГО РЕШЕНИЯ ЗАДАЧ ................................ 6
1.1. Классификация погрешностей ................................................................. 6
1.2. Абсолютная и относительная погрешности ......................................... 7
1.3. Действия с приближенными числами ................................................... 10
II. ЧИСЛЕННОЕ РЕШЕНИЕ АЛГЕБРАИЧЕСКИХ И ТРАНСЦЕНДЕНТНЫХ
УРАВНЕНИЙ ...................................................................................................... 15
2.1. Отделение корней ................................................................................... 16
2.2. Метод половинного деления (метод дихотомии) ................................ 21
2.3. Метод последовательных приближений (метод простых итераций)
.......................................................................................................................... 22
2.4. Метод Ньютона (касательных)............................................................ 27
2.5. Метод хорд и метод секущих ................................................................ 32
III. ЧИСЛЕННОЕ РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ
УРАВНЕНИЙ ...................................................................................................... 38
3.1. Элементы матричного анализа ............................................................. 39
3.2. Метод Гаусса .......................................................................................... 44
3.3. Метод квадратного корня ..................................................................... 49
3.4. Итерационные методы решения СЛАУ. Метод Якоби и метод
Гаусса- Зейделя ............................................................................................... 53
3.5. Обращение матриц. Метод Жордана-Гаусса ...................................... 63
4.1. Метод Ньютона ..................................................................................... 70
4.2. Метод простых итераций ..................................................................... 73
V. ИНТЕРПОЛИРОВАНИЕ ФУНКЦИЙ .......................................................... 78
5.1 Постановка задачи интерполирования.................................................. 78
5.2. Алгебраическое интерполирование функций ........................................ 80
5.3. Интерполяционная формула Лагранжа ............................................... 84

161
5.4. Интерполяционные формулы Ньютона................................................ 93
VI. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ .......................................................... 99
6.1. Метод прямоугольников и метод трапеций ...................................... 100
6.2. Метод Симпсона (парабол).................................................................. 105
6.3. Формулы Ньютона-Котеса ................................................................. 107
6.4. Принцип Рунге ....................................................................................... 109
VII. ЧИСЛЕННОЕ РЕШЕНИЕ ОБЫКНОВЕННЫХ
ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ....................................................... 112
7.1. Постановка задач ................................................................................. 112
7.2. Решение ОДУ с помощью рядов........................................................... 114
7.3. Метод Эйлера ........................................................................................ 119
7.4. Метод Рунге-Кутта ............................................................................. 124
VIII. ВЫЧИСЛЕНИЕ СОБСТВЕННЫХ ЧИСЕЛ И СОБСТВЕННЫХ
ВЕКТОРОВ МАТРИЦ ...................................................................................... 129
8.1. Постановка задач ................................................................................. 129
8.2. Методы Леверье и Фаддеева решения задачи на собственные
значения......................................................................................................... 134
8.3. Степенной метод определения собственных значений и ................. 140
собственных векторов ................................................................................ 140
8.4. Метод Крылова ..................................................................................... 145
IX. ЧИСЛЕННЫЕ МЕТОДЫ МИНИМИЗАЦИИ ФУНКЦИИ ОДНОЙ
ПЕРЕМЕННОЙ ................................................................................................ 151
9.1 Метод перебора ..................................................................................... 152
9.2 Метод дихотомии.................................................................................. 153
9.3. Метод золотого сечения ...................................................................... 155
Дополнительная литература ............................................................................ 160

162
ЧИСЛЕННЫЕ МЕТОДЫ

Учебное пособие

Авторы: Степан БУЗУРНЮК,


Василе МОРАРУ

Bun de tipar 05.01.2022 Formatul hârtiei 60x84 1/16


Hârtie ofset. Tipar RISO Tirajul 50 ex.
Coli de tipar 10,25 Comanda nr. 02
MD-2004, UTM, Chişinău, bd. Ştefan cel Mare și Sfânt, 168
Editura”Tehnica-UTM”
MD-2045,Chişinău, str. Studenţilor, 9/9

Вам также может понравиться