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 главах, в которых приводятся
краткие теоретические сведения, иллюстрированные
решенными примерами. Каждый параграф заканчивается
заданиями для лабораторных работ.
𝑥 3 − 𝑎 = 0, 𝑎 ∈ 𝑅.
3
Решение уравнения очевидное: 𝑥 = √𝑎. Это аналитическое
решение уравнения. Если число 𝑎 является точным кубом, то
корень извлекается точно и, соответственно, мы имеем точное
решение задачи. Иначе мы должны располагать методом
приближенного вычисления кубического корня из заданного
вещественного числа (например, используя формулу Тейлора
или степенные ряды).
Из этого примера следует, что даже если аналитическое
решение задачи известно, может возникнуть необходимость
применения каких-то приближенных методов для того, чтобы
получить окончательное решение.
Дисциплина “Численные методы” являются одним из
основных курсов в процессе подготовки студентов инженерного
профиля так как он позволяет понять принципы и
вычислительные методы, на которых разработаны пакеты
профессиональных программ, используемые инженером, такие
как пакеты: MATLAB, MATHCAD, MATHEMATICA и другие.
В процессе решения некоторой задачи на компьютере
необходимо пройти несколько этапов:
3
• Формулировка задачи. На данном этапе
осуществляется словесное описание рассматриваемой
задачи и формулируются цели, которые преследуются.
• Построение математической модели. Под моделью
понимают некоторое изоморфное представление
объективной реальности, которое позволяет получить
некоторое интуитивное, и вместе с тем точное,
отображение исследуемого процесса или явления.
Процесс построения модели называется
моделированием. При этом различают физические
модели, математические модели, графические модели и
т.д. Моделирование исследуемого процесса позволяет
раскрыть некоторые его связи и закономерности,
которые часто невозможно обнаружить другими
способами.
Математическая модель представляет собой
описание физического процесса с помощью неких
формул, систем алгебраических или дифференциальных
уравнений (обыкновенных или с частными
производными), которые должны достаточно точно
описывать физический объект. В общем случае
математическая модель имеет непрерывный вид,
например модель содержащие дифференциальные
уравнения. Это приводит к необходимости перейти к
дискретизации модели, с тем чтобы получить численное
решение задачи.
• Построение вычислительной модели. Решение
математической модели в численную осуществляют с
помощью численных методов, которые позволяют
решить поставленную задачу с помощью компьютера.
Полученное решение после дискретизации задачи с
применением численных методов должно быть таким,
чтобы при переходе к пределу получить решение
исходной непрерывной задачи. Кроме того, выбор
4
применяемых численных методов должен обладать
свойство устойчивости к малым изменениях параметров
задачи.
• Проектирование (разработка) алгоритма. Алгоритм
решения задачи осуществляет переход от
вычислительной модели к созданию программы для
компьютера. На данном этапе разработанный алгоритм
описывается с помощью псевдокода или блок-схем.
• Программирование и тестирование. На этом этапе по
разработанному алгоритму составляется программа на
выбранном языке программирования. После отладки
программы переходят к тестированию модели, т.е. к
проверке на соответствие полученных результатов
ожидаемых.
5
I. ПОГРЕШНОСТИ ЧИСЛЕННОГО РЕШЕНИЯ
ЗАДАЧ
7
приближение числа А, то пишут 𝑥 ∗ ≈ 𝐴. Обычно в процессе
вычислений точное значение величины (которое часто
неизвестно) заменяется ее приближением. Эта процедура
приводит к ошибке в расчетах.
Выражение ∆(𝑥 ∗ ) = |𝑋 − 𝑥 ∗ | называется абсолютной
погрешностью.
Абсолютная погрешность не позволяет получить
довольно точную оценку полученных результатов решения.
Если, например, пусть 𝑋=1, а 𝑥 ∗ =2 тогда ошибка ∆(𝑥 ∗ ) = 1
указывает на слабую точность измерений. В случае, когда 𝑋 =
1010 + 1, а 𝑥 ∗ = 1010 , то абсолютная погрешность ∆(𝑥 ∗ ) = 1
указывает на отличную точность вычислений. Этот пример
приводит к выводу о необходимости ввода понятия
относительной погрешности 𝛿(𝑥 ∗ ), которая равна отношению
абсолютной погрешности к модулю точного значения числа 𝑋,
(𝑋 ≠ 0) т.е.
|𝑋−𝑥 ∗ |
𝛿(𝑥 ∗ ) = |Х| .
𝑋 = 𝑥 ∗ ± 𝜀𝑥 , 𝑌 = 𝑦 ∗ ± 𝜀𝑦 .
𝑥 ∗ − 𝜀𝑥 + 𝑦 ∗ − 𝜀𝑦 ≤ 𝑋 + 𝑌 ≤ 𝑥 ∗ + 𝜀𝑥 + 𝑦 ∗ + 𝜀𝑦 ,
𝑥 ∗ + 𝑦 ∗ − (𝜀𝑥 + 𝜀𝑦 ) ≤ 𝑋 + 𝑌 ≤ 𝑥 ∗ + 𝑦 ∗ + (𝜀𝑥 + 𝜀𝑦 )
𝑋 − 𝑌 = 𝑥 ∗ − 𝑦 ∗ ± (𝜀𝑥 + 𝜀𝑦 ).
12
Замечание. Если положительные приближенные числа
𝑥 и 𝑦 приблизительно равны и ∆(𝑥 ∗ ), ∆(𝑦 ∗ ) их абсолютные
∗ ∗
погрешности, то
Примеры.
1. Пусть
x−y = 0.0001±0.0001,
𝑥 2 + 1000.01𝑥 − 2.5245315 = 0
13
имеет один из корней равный 𝑥1 = 0.0025245. Но если
использовать формулу решения квадратного уравнения
получим корень
2 ⋅ 2.524315
= = 0.0025245.
1000.01 + √(1000.01)2 + 4 ⋅ 2.5245315
14
II. ЧИСЛЕННОЕ РЕШЕНИЕ АЛГЕБРАИЧЕСКИХ И
ТРАНСЦЕНДЕНТНЫХ УРАВНЕНИЙ
𝑓: 𝑥 → 𝑓(𝑥)
[𝑎, 𝑏] → 𝑅
𝑎0 𝑥 𝑛 + 𝑎1 𝑥 𝑛−1 + ⋯ + 𝑎𝑛−1 𝑥 + 𝑎𝑛 = 0.
𝜉1 ∈ (−2,1) и 𝜉2 ∈ (0,1),
𝑦 = 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 разбиений отрезка на
меньшие. Вычисляется длина малых отрезков
(𝑏 − 𝑎)
ℎ=
𝑛
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
𝑥 4 − 𝑥 3 − 2𝑥 2 + 3𝑥 − 3 = 0.
20
x −2 −1 0.75 1 2
f(x) 7 −6 −1.98 −2 3
lim 𝑎𝑛 = lim 𝑏𝑛 = 𝜉 .
𝑛→∞ 𝑛→∞
21
В случае практической реализации метода определения
корня по методу половинного деления отрезка при заданной
точности решения 𝜀 признаком конца вычислений является
выполнение неравенства |𝑏𝑛 − 𝑎𝑛 | < 2𝜀. При этом можно
привести оценку необходимых числа итераций п для
достижения заданной точности 𝜀:
𝑏−𝑎
𝑛 = [log 2 ]+1
𝜀
где [x] – целая часть х.
Ниже приводится рекурсивная функция вычисления
корня нелинейного уравнения 𝑓(𝑥) = 0 по методу половинного
деления.
/*Metod polovinnogo delenia c recursiei.
contor-globalinyi parametr*/
22
определяем 𝑥2 = 𝜑(𝑥1 ), 𝑥3 = 𝜑(𝑥2 ) и т.д. В итоге получаем
последовательность значений
𝑥𝑛 = 𝜑(𝑥𝑛−1 ), ( 𝑛 = 1,2, ⋯ ).
lim 𝑥𝑛 = 𝜉,
𝑛→∞
23
Однако, как можно убедиться из Рис. 2.3, 2.4 это
движение не всегда приводит к решению уравнения (точке
пересечения графиков). Для сходимости метода необходимо
указать условия, при которых оно имеет место.
𝛼 𝛼𝑘
|𝑥𝑛 − 𝜉| ≤ |𝑥𝑛 − 𝑥𝑛−1 | ≤ |𝑥1 − 𝑥0 |, n 1.
1−𝛼 1−𝛼
24
вычислений при заданной точности 𝜀 является достижение
неравенства
𝛼
⋅ |𝑥𝑛+1 − 𝑥𝑛 |<.
1−𝛼
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
абсолютная погрешность решения составляет
𝑓(𝑥𝑛 )
𝑥𝑛+1 = 𝑥𝑛 − , 𝑛 = 0,1,2, …,
𝑓′ (𝑥𝑛 )
где 𝑥0 точка отрезка [𝑎, 𝑏]. Ввиду того, что точка 𝑥𝑛+1 это
абцисса точки пересечения касательной проведенной к графику
кривой 𝑦 = 𝑓(𝑥) в точке (𝑥𝑛 , 𝑓(𝑥𝑛 )), метод называется методом
касательных. Геометрический смысл определения корня по
методу Ньютона можно проследить по рисункам 2.5-2.8.
Рис.2.5 Рис.2.6
27
Следует отметить, что, вообще говоря, метод Ньютона
является частным случаем метода последовательных
приближений, в котором функция 𝜑(𝑥) имеет вид
𝑓(𝑥)
𝜑(𝑥) = 𝑥 − ′ .
𝑓 (𝑥)
Рис.2.7 Рис.2.8
28
Недостатком метода Ньютона является то, что хотя
он имеет квадратичную скорость сходимости это
обеспечивается при удачном подборе начального
приближенного решения 𝑥0 , близкого к корню уравнения.
Если такое приближение плохо подобрано, тогда скорость
сходимость метода невысокая или даже имеет место его
расходимость.
При сделанных предположениях относительно функции
, метод Ньютона сходится к точному решению уравнения,
если только начальное приближение 𝑥0 , вообще говоря,
достаточно близко к этому решению.
√5 √5 √5
является интервал (− , ) (рис 2.9). Если х0 = ± , тогда
5 5 5
получим следующую последовательность приближений:
29
Рис. 2.9 Рис. 2.10
𝑓(𝑥𝑛 )
𝑥𝑛+1 = 𝑥𝑛 − , 𝑛 = 0,1,2, …
𝑓 ′ (𝑥0 )
30
𝑓(𝑥0 )
𝑥1 = 𝑥0 − = 1.30652;
𝑓′ (𝑥0 )
𝑓(𝑥1 )
𝑥2 = 𝑥1 − = 1.27506;
𝑓′ (𝑥1 )
𝑓(𝑥2 )
𝑥3 = 𝑥2 − = 1.27424.
𝑓′ (𝑥2 )
𝑥6 = 1.4142135623730950488016887242097.
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 */
𝑥 − 𝑎 𝑓(𝑥) − 𝑓(𝑎)
= .
𝑏 − 𝑎 𝑓(𝑏) − 𝑓(𝑎)
𝑓(𝑥𝑛 )
𝑥𝑛 − (𝑥 − 𝑎), 𝑛 = 0,1,2, … ; 𝑥0 = 𝑏;
𝑓(𝑥𝑛 ) − 𝑓(𝑎) 𝑛
𝑥𝑛+1 =
𝑓(𝑥𝑛 )
𝑥𝑛 − (𝑏 − 𝑥𝑛 ), 𝑛 = 0,1,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.571429 < 1.873612 < 1.924087 < 1.929842 < 1.930462 < 𝜉,
38
(𝑥1 (𝑘) , 𝑥2 (𝑘) , … , 𝑥𝑛 (𝑘) ), 𝑘 = 1,2,3, . . . . , которые сходятся к
решению системы. Приближенные методы применяются для
решения систем ЛАУ больших размерностей.
𝑥 + 𝑦 = (𝑥1 + 𝑦1 , 𝑥2 + 𝑦2 , … , 𝑥𝑛 + 𝑦2 ),
𝜆 ⋅ 𝑥 = (𝜆 ⋅ 𝑥1 , 𝜆 ⋅ 𝑥2 , … , 𝜆 ⋅ 𝑥𝑛 ) .
𝑥 ⋅ 𝑦 = (𝑥1 ⋅ 𝑦1 + 𝑥2 ⋅ 𝑦2 + ⋯ + 𝑥𝑛 ⋅ 𝑦2 ).
39
Для векторов из 𝑅𝑛 можно вычислить их модули (длины),
а также угол между двумя векторами по формулам:
≠ 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
называется единичной.
Транспонированием матрицы называется операция
замены строк матрицы ее столбцами с сохранением их порядка:
Т
𝐴Т = [(𝑎𝑖𝑗 )𝑚𝑛 ] = (𝑎𝑗𝑖 )𝑛𝑚 .
𝐴−1 × 𝐴 = 𝐴 × 𝐴−1 = 𝐼.
‖𝑥‖1 = ∑ |𝑥𝑖 |
𝑖=1
2. Евклидова, или сферическая, норма
3. Кубическая норма
‖𝑥‖∞ = max|𝑥𝑖 |.
𝑖
42
Норма матрицы. Если А квадратная матрица
размерности 𝑛 × 𝑛, то ее нормой называют число ‖А‖,
удовлетворяющее условиям:
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
𝐴𝑥 = 𝑏,
(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, . . . , 𝑛.
𝐴(𝑛) х = 𝑏 (𝑛) ,
где
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 и т.д. Расчетные
формулы для значений неизвестных следующие:
2𝑥1 + 𝑥2 + 𝑥3 = 1,
{ −𝑥2 − 2𝑥3 = −4,
3𝑥2 + 2𝑥3 = 8.
2𝑥1 + 𝑥2 + 𝑥3 = 1,
{ −𝑥2 − 2𝑥3 = −4,
−4𝑥3 = −4.
(𝑘) (𝑘)
|𝑎𝑟𝑘 | = max |𝑎𝑖𝑘 |.
𝑘≤𝑖≤𝑛
47
В результате этой операции уравнения с номером k и r
меняются местами.
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
решении совместно определенных систем даже с относительно
небольшим числом уравнений, имеет место накопление ошибок
округления и таким образом полученное решение на самом деле
является приближенным.
𝐿𝑦 = 𝑏 и 𝐿𝑇 𝑥 = 𝑦.
𝑗−1
(𝑎𝑖𝑗 −∑𝑘=1 𝑙𝑖𝑘 ⋅𝑙𝑗𝑘 )
𝑙𝑖𝑗 = , 𝑖 > 𝑗, 𝑖 = 𝑗 + 1, . . . , 𝑛;.
𝑙𝑗𝑗
𝑙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
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
52
3.4. Итерационные методы решения СЛАУ. Метод Якоби и
метод Гаусса- Зейделя
𝑆𝑥 = 𝑇𝑥 + 𝑏 или 𝑥 = 𝑄𝑥 + 𝑑,
где
𝑄 = 𝑆 −1 𝑇, 𝑑 = 𝑆 −1 𝑏.
(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, …,
𝑎𝑖𝑖
lim 𝑥 (𝑘) = 𝑥 ∗ .
𝑘→∞
54
∗ 𝛼 (𝑘+1) (𝑘)
‖𝑥 (𝑘+1) − 𝑥 ‖∞ ≤ ‖𝑥 −𝑥 ‖ ≤
1−𝛼 ∞
𝛼𝑘 (1) (0)
≤ ‖𝑥 − 𝑥 ‖ ,
1−𝛼 ∞
∗ 𝛽 (𝑘+1) (𝑘)
‖𝑥 (𝑘+1) − 𝑥 ‖1 ≤ ‖𝑥 −𝑥 ‖ ≤
1−𝛽 1
𝛽𝑘 (1) (0)
≤ ‖𝑥 − 𝑥 ‖ .
1−𝛽 1
55
или
𝑛
|х𝑖 (к+1) − 𝑥𝑖 (к) |
max ∑ <𝜀,
𝑖 |𝑥𝑖 (к+1) |
𝑖=1
или
2
√∑𝑖 (𝑥(𝑘+1) − 𝑥(𝑘) )
𝑖 𝑖
,
2
√∑𝑖 (𝑥(𝑘+1) )
𝑖
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
𝑛
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 > 𝜀,
𝑖
то вычисления должны продолжаться.
Второе приближение:
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
59
Теорема 3.4 (Reich). Пусть матрица 𝐴 симметрическая и ее
диагональные элементы удовлетворяет неравенство а𝑖𝑖 > 0, ∀ 𝑖.
Метод Гаусса-Зейделя сходится тогда и только тогда, когда
матрица А положительно определенная.
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
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);
}
𝐴𝑥𝑖 = 𝑒𝑖 ,
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 0 1 1/2 -1/2
2 0 1 0 -3 0 2
3 0 0 1 -2 -1/2 3/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");
}
}
Результаты вычислений:
67
Варианты заданий.
69
IV. ЧИСЛЕННОЕ РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ
УРАВНЕНИЙ
𝑓(𝑥, 𝑦) = 0
{ .
𝑔(𝑥, 𝑦) = 0
𝜕𝑓(𝑥0 , 𝑦0 ) 𝜕𝑓(𝑥0 , 𝑦0 )
𝑓(𝑥0 , 𝑦0 ) = − Δ𝑥 − Δ𝑦
𝜕𝑥 𝜕𝑦
𝜕𝑔(𝑥0 , 𝑦0 ) 𝜕𝑔(𝑥0 , 𝑦0 )
𝑔(𝑥0 , 𝑦0 ) = − Δ𝑥 − Δ𝑦
𝜕𝑥 𝜕𝑦
𝜕𝑓 𝜕𝑓
Δ𝑥 + Δ𝑦 = −𝑓(𝑥0 , 𝑦0 )
𝜕𝑥 𝜕𝑦
𝜕𝑔 𝜕𝑔
𝛥𝑥 + Δ𝑦 = −𝑔(𝑥0 , 𝑦0 )
{𝜕𝑥 𝜕𝑦
При этом частные производные 𝑓𝑥′ , 𝑔𝑥′ , 𝑓𝑦′ , 𝑔𝑦′ вычислены в точке
(𝑥0 , 𝑦0 ).
Если рассмотрим матрицу Якоби системы функций
𝑓(𝑥, 𝑦) и 𝑔(𝑥, 𝑦)
𝜕𝑓(𝑥, 𝑦) 𝜕𝑓(𝑥, 𝑦)
𝜕𝑥 𝜕𝑦
𝐽(𝑥, 𝑦) = ,
𝜕𝑔(𝑥, 𝑦) 𝜕𝑔(𝑥, 𝑦)
( 𝜕𝑥 𝜕𝑦 )
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 )
𝑥 = 𝜑1 (𝑥, 𝑦)
{ . (4.1)
𝑦 = 𝜑2 (𝑥, 𝑦)
𝑥 = 𝜑1 (𝑥𝑛 , 𝑦𝑛 )
{ 𝑛+1 , 𝑛 = 0,1,2, . ..,
𝑦𝑛+1 = 𝜑2 (𝑥𝑛 , 𝑦𝑛 )
74
тогда последовательные приближения
𝑥 = 𝜑1 (𝑥𝑛 , 𝑦𝑛 )
{ 𝑛+1 , 𝑛 = 0,1,2, . ..
𝑦𝑛+1 = 𝜑2 (𝑥𝑛 , 𝑦𝑛 )
lim 𝑥𝑛 = 𝜉, lim 𝑦𝑛 = 𝜂.
𝑛→∞ 𝑛→∞
𝑀
|𝜉 − 𝑥𝑛 | + |𝜂 − 𝑦𝑛 | ≤ (|𝑥 − 𝑥𝑛−1 | + |𝑦𝑛 − 𝑦𝑛−1 |) ,
1−𝑀 𝑛
где 𝑀 = max{𝑞1 , 𝑞2 } .
𝑥 3 − 𝑦 3 + 15𝑥 − 12 = 0
{ .
𝑥 3 + 𝑦 3 − 15𝑦 + 18 = 0
х = (−𝑥 3 + 𝑦 3 + 12)/15
{ ,
𝑦 = (𝑥 3 + 𝑦 3 + 18)/15
𝑎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. ИНТЕРПОЛИРОВАНИЕ ФУНКЦИЙ
𝑥 𝑥0 𝑥1 ... 𝑥𝑛
𝑦 𝑦0 𝑦1 ... 𝑦𝑛
78
Если при этом не уточняется класс функций, которому
должна принадлежать F(x), то таким образом поставленная
задача имеет бесчисленное множество решений, т.к. через
систему точек (𝑥𝑖 , 𝑦𝑖 ), 𝑖 = 0,1, … , 𝑛 можно провести
бесконечно много кривых.
Существуют очень много способов приближения
функции 𝑓(𝑥) некоторой функцией для того, чтобы вычислить
ее значения в некоторых промежуточных точках 𝑥 ≠ 𝑥𝑖 , 𝑖 =
0,1, ⋯ , 𝑛 . Такая процедура называется интерполированием
функции 𝑓(𝑥).
Если при этом точка 𝑥 ∈ [𝑎, 𝑏], то имеет место
интерполяция в узком смысле, а если 𝑥 ∉ [𝑎, 𝑏], то значит
решается задача экстрополирования (интерполяция в широком
смысле). Интерполирование функций имеет большое значение в
вычислительной математике при решении задач других классов,
например, при численном интегрировании и численном
дифференцировании функций.
Наиболее часто для аппроксимации функций с помощью
интерполяции используются алгебраические многочлены
степени n вида
𝐷 ∗ (𝑥, 𝑥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
1 𝑥𝑖 𝑦𝑖 𝑥𝑖 𝑦𝑖+1 − 𝑥𝑖+1 𝑦𝑖
𝑏𝑖 = ⋅ |𝑥 𝑦𝑖+1 | = .
𝑥𝑖 − 𝑥𝑖+1 𝑖+1 𝑥𝑖 − 𝑥𝑖+1
𝑥 − 3.5 𝑥 − 2.5
𝑃1 (𝑥) = ⋅ 13 + ⋅ 25 = 12𝑥 − 17.
2.5 − 3.5 3.5 − 2.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
84
(𝑖) 1, 𝑖 = 𝑗
𝑝𝑛 (𝑥𝑗 ) = { (рис. 5.5):
0, 𝑖 ≠ 𝑗
Легко заметить, что этот
многочлен должен иметь вид:
(𝑖)
𝑝𝑛 (𝑥) = 𝐶𝑖 ⋅ (𝑥 − 𝑥0 ) ⋯ (𝑥 −
−𝑥𝑖−1 )(𝑥 − 𝑥𝑖+1 ) ⋯ (𝑥 − 𝑥𝑛 ),
1
𝐶𝑖 = .
(𝑥𝑖 − 𝑥0 ) ⋯ (𝑥𝑖 − 𝑥𝑖−1 )(𝑥𝑖 − 𝑥𝑖+1 ) ⋯ (𝑥𝑖 − 𝑥𝑛 )
Следовательно
85
𝑛 𝑛
𝑥 − 𝑥𝑗
𝐿𝑛 (𝑥) = ∑ 𝑦𝑖 ∏ .
𝑥𝑖 − 𝑥𝑗
𝑖=0 𝑗=0
𝑗≠𝑖
Многочлен 𝐿𝑛 (𝑥) называется интерполяционным
(𝑖)
многочленом Лагранжа, а функции 𝑝𝑛 - лагранжевы
коэффициенты. Следуя теореме 5.1 это представление
единственно.
В узлах интерполирования значения многочлена
Лагранжа совпадают со значениями функции f(x) в этих точках,
а в точках отличных от узлов погрешность интерполяции равна
x -1 0 2
y -8 -1 1
87
то можно убедиться, что это квадратный трехчлен является
многочленом Лагранжа, который принимает в узлах 𝑥0 , 𝑥1 , х2
значения 𝑦0 , 𝑦1 , 𝑦3 , соответственно.
Обобщая сказанное, можно показать, что функция
𝐿 (𝑥) 𝑥0 − 𝑥
| 01...𝑛−1 |
𝐿12...𝑛 (𝑥) 𝑥𝑛 − 𝑥
𝐿012...𝑛 (𝑥) =
𝑥𝑛 − 𝑥0
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
90
𝑏𝑛 = 𝑎𝑛
𝑏𝑛−1 = 𝑎𝑛−1 + 𝑥 ⋅ 𝑏𝑛 = 𝑎𝑛−1 + 𝑥 ⋅ 𝑎𝑛
𝑏𝑛−2 = 𝑎𝑛−2 + 𝑥 ⋅ 𝑏𝑛−1 = 𝑎𝑛−2 + 𝑥 ⋅ (𝑎𝑛−1 + 𝑥 ⋅ 𝑎𝑛 )
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
𝑏 = 𝑎0 + 𝑥 ⋅ 𝑏1 = 𝑎0 + 𝑥 ⋅ (𝑎1 + (⋯ + 𝑥(𝑎𝑛−1 + 𝑥 ⋅ 𝑎𝑛 ) ⋯ ) = 𝑃𝑛 (𝑥)
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 𝑦1 − Δ𝑘−1 𝑦0 = Δ𝑘 𝑦0 ,
𝑦1 = 𝑦0 +𝑦0 ,
𝑦2 = 𝑦0 + 2𝑦0 + 2 𝑦0 ,
𝑦3 = 𝑦0 + 3𝑦0 + 32 𝑦0 + 3 𝑦0 ,
𝑦𝑛 = (1 + )𝑛 𝑦0 = 𝑦0 + 𝑛𝑦0 + ⋯ + 𝑛 𝑦0 .
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
𝑞(𝑞 − 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 + qyn −1 + yn − 2 + + y0 ,
2! n!
𝑥−𝑥
𝑛
где 𝑞 =
ℎ
Как правило, вторая интерполяционная формула Ньютона
применяется в случаях, когда необходимо вычислить значение
многочлена в точке, лежащей ближе к точке хn.
f(1.51234)=0.51183-0.617(0.01129)-0.617(0.617-1)0.0005/2=0.50487.
96
приводят к значительным осцилляциям при полиномиальной
интерполяции.
На рисунках 5.8 и 5.9 сплошная кривая является
графиком функции Рунге
1
𝑓(𝑥) =
1 + 25𝑥 2
Варианты:
1. =6.135
2. =6.00+0.15 N,
3. =1.50+0.005 N,
Здесь N = 1,2,,23 .
98
VI. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ
𝐼𝑛 = ∑ 𝐴𝑖 𝑓(𝑥𝑖 )
𝑖=0
99
В зависимости от способа образования этих сумм,
разработаны различные методы численного вычисления
интегралов. Эти методы сходятся в том смысле, что
lim |𝐼 − 𝐼𝑛 | = 0.
𝑛→∞
100
𝑛−1
y y
y=f(x)
y=f(x A B
)
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).
102
Геометрически это означает, что криволинейная
трапеция, ограниченная кривой 𝑦 = 𝑓(𝑥), осью абсцисс и
прямыми х = 𝑥𝑖 и х = 𝑥𝑖+1 , на этом промежутке заменяется
прямоугольной трапецией (рис. 6.2).
Если таким же образом поступить со всеми
элементарными отрезками из [a, b] (по начальным
предположениям они имеют одинаковую длину h), то формула
трапеций имеет следующий вид:
𝑏 𝑛−1
ℎ
∫ 𝑓(𝑥)𝑑𝑥 ≈ [𝑓(𝑥0 ) + 2 ∑ 𝑓(𝑥𝑖 ) + 𝑓(𝑥𝑛 )] .
𝑎 2
𝑖=1
(𝑏 − 𝑎)3 ″
𝑅𝑛 = − 𝑓 (𝜉̃), где 𝑎 < 𝜉̃ < 𝑏 .
12𝑛2
(𝑏−𝑎)3 𝑏−𝑎
− 𝑓 ″ (𝜉̃) и 𝑓 ″ (𝜉) .
12𝑛2 24𝑛2
103
Пусть 𝐼𝑛𝑝 и 𝐼𝑚𝑝 приближенные значения интеграла на
отрезке, полученные по методу прямоугольников и по методу
трапеций, соответственно. Тогда выражение
𝑏
𝐼 = ∫𝑎 𝑓(𝑥)𝑑𝑥 ≈ (2𝐼𝑛𝑝 + 𝐼𝑚𝑝 )/3
(𝑏−𝑎)3
𝑅1 ≤ max|𝑓"(𝑥)|
12𝑛2
1.23
Т.к. на [0,1] max|𝑓"(𝑥)| ≤ 2, то 𝑅1 ≤ ⋅ 2 < 0.002 и для
12⋅122
уменьшения ошибок округления вычисления должны
ограничиваться четырьмя знаками после запятой. Шаг
𝑏−𝑎
дискретизации ℎ= = 0.1. При этом значения
𝑛
подинтегральной функции, следующие:
104
1.2 11
𝑑𝑥 𝑓(𝑥0 ) + 𝑓(𝑥12 )
𝐼=∫ ≈ 0.1 ( + ∑ 𝑓(𝑥𝑘 )) = 1.0157 .
0 √𝑥 2 + 1 2
𝑘=1
105
𝑏
ℎ
∫ 𝑓(𝑥)𝑑𝑥 ≈ (𝑓(𝑥0 ) + 4𝑓(𝑥1 ) + 2𝑓(𝑥2 ) + ⋯ + 2𝑓(𝑥𝑛−2 )
𝑎 3
+ 4𝑓(𝑥𝑛−1 ) + 𝑓(𝑥𝑛 ))
(𝑏 − 𝑎)5 (𝐼𝑉)
𝑅𝑛 = − 𝑓 (𝜉), 𝑎<𝜉
180𝑛4
<𝑏.
106
6.3. Формулы Ньютона-Котеса
𝐼 = ∫ 𝑓(𝑥)𝑑𝑥 ≈ ∑ 𝐴𝑖 𝑦𝑖 .
𝑎 𝑖=0
Здесь Аi - неизвестные постоянные. Определим эти
коэффициенты, используя формулу
𝑥−𝑥𝑗
𝐿𝑛 (𝑥) = ∑𝑛𝑖=0 (𝑦𝑖 ∏𝑛𝑗=0 ) .
𝑥𝑖 −𝑥𝑗
𝑗≠𝑖
𝑥−𝑥
Пусть 𝑞 = 0
и 𝑞 [𝑛+1] = 𝑞 ⋅ (𝑞 − 1) ⋯ (𝑞 − 𝑛) обобщенная
ℎ
степень 𝑞. Тогда несложно убедиться, что в новых
обозначениях многочлен Лагранжа принимает вид:
𝑛
(−1)𝑛−𝑖 𝑞 [𝑛+1]
𝐿𝑛 (х) = ∑ ⋅ 𝑦
𝑖! (𝑛 − 𝑖)! 𝑞 − 𝑖 𝑖
𝑖=0
107
𝑑𝑥
Т.к. 𝑑𝑞 = , подставив многочлен в интеграл, следует, что
ℎ
искомые коэффициенты 𝐴𝑖 должны быть равными
𝑛
(−1)𝑛−𝑖 𝑞 [𝑛+1]
𝐴𝑖 = ℎ ∫ ⋅ 𝑑𝑞
0 𝑖! (𝑛 − 𝑖)! 𝑞 − 𝑖
𝑛 [𝑛+1]
(−1)𝑛−𝑖 𝑞
𝐻𝑖 = ∫ 𝑑𝑞 , 𝑖 = 1,2, . . . , 𝑛
𝑛 ⋅ 𝑖! (𝑛 − 𝑖)! 0 𝑞 − 𝑖
𝑎) ∑ 𝐻𝑖 = 1; 𝑏) 𝐻𝑖 = 𝐻𝑛−𝑖 .
𝑖=0
𝑏 𝑛
𝐼 = ∫ 𝑓(𝑥)𝑑𝑥 ≈ (𝑏 − 𝑎) ∑ 𝐻𝑖 𝑦𝑖 .
𝑎 𝑖=0
3 ⋅ 0.1
𝐼= (𝑓(𝑥0 ) + 2(𝑓(𝑥3 ) + 𝑓(𝑥6 ) + 𝑓(𝑥9 )) +
8
+3(𝑓(𝑥1 ) + 𝑓(𝑥2 ) + 𝑓(𝑥4 ) + 𝑓(𝑥5 ) + 𝑓(𝑥7 ) + 𝑓(𝑥8 ) + 𝑓(𝑥10 ) +
+𝑓(𝑥11 )) + 𝑓(𝑥12 )) = 1.015973.
𝑏
∫𝑎 𝑓(𝑥)𝑑𝑥 ≈ 𝐼ℎ/2 + (𝐼ℎ/2 − 𝐼ℎ )⁄3 . (6.2)
110
Задания к лабораторной работе “Численное
интегрирование”
f ( x)dx
a
Варианты:
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. ЧИСЛЕННОЕ РЕШЕНИЕ ОБЫКНОВЕННЫХ
ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
𝐹(𝑥, 𝑦, 𝑦 ′ , … , 𝑦 (𝑛) ) = 0.
Если данное уравнение может быть разрешено относительно
старшей производной, тогда общий вид такого уравнения,
следующий:
𝑦 (𝑛) = 𝑓(𝑥, 𝑦, 𝑦 ′ , … , 𝑦 (𝑛−1) ).
112
Частное решение получается из общего решения при
определенном наборе произвольных постоянных.
ОДУ первого порядка имеет вид: 𝑦 ′ = 𝑓(𝑥, 𝑦), а его
общее решение – 𝑦 = 𝜑(𝑥, 𝐶). При определенном значении
постоянной 𝐶 = 𝐶0 получаем частное решение 𝑦 = 𝜑(𝑥, 𝐶0 ).
Геометрически функция 𝑦 = 𝜑(𝑥, 𝐶) на плоскости
описывает бесконечное семейство интегральных кривых,
зависящие от параметра 𝐶. Частное решение 𝑦 = 𝜑(𝑥, 𝐶0 ) одна
из них.
В связи с ОДУ могут быть поставлены две задачи: 1)
определить все решения уравнения; 2) найти решение, которое
проходит через заданную точку (𝑥0 , 𝑦0 ).
При решении второй из отмеченных задач, возникает
вопрос о существовании и единственности решения, ответ на
который дается следующей теоремой:
Теорема 7.1 (Коши). Если функция 𝑓(𝑥, 𝑦) и ее частная
производная 𝑓у (𝑥, 𝑦) непрерывная и ограниченная в области D
плоскости, тогда для любой внутренней точки (𝑥0 , 𝑦0 )
уравнение 𝑦 ′ = 𝑓(𝑥, 𝑦) имеет единственное решение, причем
у(𝑥0 ) = 𝑦0 .
Для ОДУ более высокого порядка через одну точку могут
проходить более одной интегральной кривой, поэтому в этом
случае необходимы дополнительные условия для определения
частного решения. Этих условий, которые называются
начальными условиями, должны быть столько, каков порядок
уравнения. Задача Коши для таких уравнений формулируется
следующим образом: найти решение уравнения
удовлетворяющая условиям
113
В математических моделях могут присутствовать и
системы ОДУ вида
𝑑𝑦1
= 𝑓1 (𝑡, 𝑦1 , 𝑦2 , … , 𝑦𝑛 )
𝑑𝑡
𝑑𝑦2
= 𝑓2 (𝑡, 𝑦1 , 𝑦2 , … , 𝑦𝑛 ) .
𝑑𝑡
………………………………
𝑑𝑦𝑛
{ = 𝑓𝑛 (𝑡, 𝑦1 , 𝑦2 , … , 𝑦𝑛 )
𝑑𝑡
114
𝑦 ′ (𝑥0 ) 𝑦 ′′ (𝑥0 )
𝑦(𝑥) = 𝑦(𝑥0 ) + (𝑥 − 𝑥0 ) + (𝑥 − 𝑥0 )2 + ⋯ +
1! 2!
𝑦 (𝑛) (𝑥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 𝑥 + 𝑝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 + 𝐴1 𝑥 + 𝐴2 𝑥 2 + ⋯ + 𝐴𝑛 𝑥 𝑛 + ⋯.
Отсюда
𝑦 ′ (𝑥) = 𝐴1 + 2𝐴2 𝑥 + 3𝐴3 𝑥 2 + ⋯ + 𝑛𝐴𝑛 𝑥 𝑛−1 + ⋯,
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
119
Пусть h выбранный шаг дискретизации промежутка, на
котором строится решение задачи Коши, и рассмотрим систему
равноотстоящих узлов 𝑥𝑖 = 𝑥0 + 𝑖ℎ, 𝑖 = 0,1,2, ⋯. Тогда
разложение функции в точке xi+1 имеет вид
120
Пример. Найти приближенное решение задачи Коши на
отрезке [0,1] методом Эйлера:
𝑦 ′ = 𝑦 2 + 2𝑥 − 2𝑥 2 − 𝑥 4 − 1, у(0) = 1.
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 | ≤ 𝑏}
122
условия:
|𝑓(𝑥1 , 𝑦1 ) − 𝑓(𝑥1 , 𝑦2 )| ≤ 𝑁|𝑦1 − 𝑦2 |,
𝜕𝑓(𝑥, 𝑦) 𝜕𝑓(𝑥, 𝑦)
| + 𝑓(𝑥, 𝑦) | ≤ 𝑀, ∀(𝑥, 𝑦) ∈ 𝐷, (𝑁, 𝑀 − const),
𝜕𝑥 𝜕𝑦
𝑦̂𝑖+1 = 𝑦𝑖 + ℎ𝑓(𝑥𝑖 , 𝑦𝑖 ),
123
после чего модифицированная формула записывается в
следующей форме:
ℎ
𝑦𝑖+1 = 𝑦𝑖 + [𝑓(𝑥𝑖 , 𝑦𝑖 ) + 𝑓(𝑥𝑖+1 , 𝑦̂𝑖+1 )].
2
𝑦𝑖+1 = 𝑦𝑖 + ℎ𝜑(𝑥𝑖 , 𝑦𝑖 , ℎ)
𝜕𝑓(𝑥𝑖 , 𝑦𝑖 ) 𝜕𝑓(𝑥𝑖 , 𝑦𝑖 )
𝜑(𝑥, 𝑦, ℎ) = 𝐴𝑓 (𝑥𝑖 , 𝑦𝑖 ) + ℎ𝛼 + ℎ𝛽𝑓(𝑥𝑖 , 𝑦𝑖 ) + 𝑂(ℎ2 )
𝜕𝑥 𝜕𝑥
124
С другой стороны, ряд Тейлора для решения y(x) задачи в точке
𝑥𝑖 с точностью О(h2), имеет вид:
ℎ
𝑦𝑖+1 = 𝑦𝑖 + ℎ ⋅ [𝑓(𝑥𝑖 , 𝑦𝑖 ) + (𝑓𝑥′ (𝑥𝑖 , 𝑦𝑖 ) + 𝑓𝑦′ (𝑥𝑖 , 𝑦𝑖 )𝑓(𝑥𝑖 , 𝑦𝑖 ))] + О(ℎ2 ).
2
ℎ
𝑦𝑖+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 𝑛
Варианты.
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. ВЫЧИСЛЕНИЕ СОБСТВЕННЫХ ЧИСЕЛ И
СОБСТВЕННЫХ ВЕКТОРОВ МАТРИЦ
то
Ах = 𝜆х ((А − 𝜆𝐼)х = 0)
Системы ЛАУ данного вида называются однородные.
Ясно, что такая система имеет, по крайней мере, одно очевидное
тривиальное решение х = 0 . Однако больший интерес
представляет наличие у системы ненулевых решений. Т.к.
система зависит от параметра R, то можно предположить, что
для одних значений СЛАУ будет совместной определенной, а
для других - совместной неопределенной. Необходимое и
достаточное условие чтобы система имела ненулевые решения
состоит в том, чтобы ранг ее матрицы был меньше n, а это
означает что система (А − 𝜆𝐼)х = 0 будет обладать ненулевыми
129
решениями, если ее определитель будет равным нулю, т.е.
det( А − 𝜆𝐼) = 0, или
𝑎11 − 𝜆 𝑎12 𝑎13 … 𝑎1𝑛
𝑎21 𝑎22 − 𝜆 𝑎23 ⋯ 𝑎2𝑛
| | = 0.
⋮ ⋮ ⋮ ⋮
𝑎𝑛1 𝑎𝑛2 𝑎𝑛3 ⋯ 𝑎𝑛𝑛 − 𝜆
i =1
i = det A и = a
i =1
i
i =1
ii =tr(А) ,
132
𝜆1 0 0 … 0
0 𝜆2 0 ⋯ 0
𝛬=( ).
⋮ ⋮ ⋮ ⋮
0 0 0 ⋯ 𝜆𝑛
Из теоремы 8.1 следуют два важных следствия:
Следствие 8.1. Если все собственные значения матрицы
различны, то она подобна диагональной матрице.
Следствие 8.2. Если у матрицы А все элементы 𝑎𝑖𝑗
действительные и она симметрическая, т.е. 𝐴 = 𝐴Т = (𝑎𝑖𝑗 )𝑛𝑛 ,
тогда она подобна некоторой диагональной матрице.
Другим способом, упрощающий процесс вычисления
собственных значений, является приведение квадратной к
треугольному виду, например, применив метод Гаусса.
Пример. Найти собственные значения и собственные
векторы матрицы
3 4
𝐴=( ).
5 2
Решение. Так как матрица имеет размерность 22, то
вычисление характеристического многочлена не представляет
проблем. Составляем характеристический многочлен:
3−𝜆 4
det( 𝐴 − 𝜆𝐼) = | |=(3− )(2− )−20= 2−5 −14.
5 2−𝜆
(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
134
Для этих сумм при kn имеют место рекуррентные соотношения
Ньютона:
𝑝1 = −𝑆1
1
𝑝2 = − (𝑆2 + 𝑝1 𝑆1 )
2 .
⋯⋯⋯⋯⋯⋯⋯⋯
1
𝑝𝑛 = − (𝑆𝑛 + 𝑝1 𝑆𝑛−1 + ⋯ + 𝑝𝑛−1 𝑆1 )
{ 𝑛
n n
Sk =
i =1
ik a
=
i =1
k
ii =tr( А k ), k = 1,2,..., n .
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 , … , 𝑞𝑛−1 , 𝑞𝑛
следующим образом:
А1 = А, 𝑞1 = −𝑡𝑟(А1 ), 𝐵1 = А1 + 𝑞1 𝐼;
136
1
А2 = 𝐵1 А, 𝑞2 = − 𝑡𝑟(А2 ), 𝐵2 = А2 + 𝑞2 𝐼;
2
............................................................................
1
А𝑛 = 𝐵𝑛−1 А, 𝑞𝑛 = − 𝑡𝑟(А𝑛 ), 𝐵𝑛 = А𝑛 + 𝑞𝑛 𝐼 = 0.
𝑛
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 .
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)𝑛 𝑞𝑛 = 𝑝𝑛 .
Решение.
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.
(𝑘)
Отсюда, т.к. 𝑥 собственный вектор матрицы А, а значит А ⋅
(𝑘) (𝑘)
𝑥 = 𝜆𝑘 𝑥 ,
имеем
𝑛
(0) (𝑘)
Ау = ∑ 𝜆 𝑘 𝛼𝑘 𝑥 .
𝑘=1
141
Аналогичным образом, умножая последовательно полученные
равенства на матрицу А, получим итерационный набор векторов
(1) (0) (2) (0) (𝑟) (0)
у = Ау , у = А2 у , … , у = А𝑟 у , …,
где
𝑛
(𝑚) 𝑚 (0) (𝑚)
𝑦 =А у = ∑ 𝜆𝑚
𝑘 ⋅ 𝛼𝑘 ⋅ 𝑥 .
𝑘=1
Покомпонентно, отсюда следует, что
где
𝛽т𝑖 𝜆т
𝛾т𝑖 = , 𝜇т = .
𝛽1𝑖 𝜆1
С учетом того, что |𝜇𝑠 | < 1, ∀𝑠 > 1 при неограниченном
возрастании числа итераций r, получаем
𝑦𝑖 (𝑟+1)
lim = 𝜆1 .
𝑟→∞ 𝑦𝑖 (𝑟)
𝑦𝑖 (𝑟+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
Отсюда получаем
254934216
(0)
А8 у = (-122408577).
264992229
144
2 2 2
√[у(8) ] + [у(8) ] + [у(8) ] ,
1 2 3
(0) (к)
Если ввести обозначение А(к) у =у , тогда векторное
уравнение принимает вид
146
𝑛
(1) (0)
у𝑖 = ∑ 𝑎𝑖𝑗 ⋅ у𝑗
𝑗=1
𝑛
(2) (1)
у𝑖 = ∑ 𝑎𝑖𝑗 ⋅ у𝑗
𝑗=1
⋯⋯⋯⋯⋯⋯
𝑛
(𝑛) (𝑛−1)
у𝑖 = ∑ 𝑎𝑖𝑗 ⋅ у𝑗
{ 𝑗=1
6 −2 2
𝐴 = (−2 5 0).
2 0 7
147
Решение. Возьмем, например, в качестве начального
(0)
вектора вектор у = (1,1,1)Т . Рассмотрим векторное уравнение
(к) (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 − 9𝜆 + 18б
корни которого
2 =6 и 3 =3.
Итак,
1 =9, 2 =6 и 3 =3.
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 = ,
2 2
𝑥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
𝑙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
Таким образом, l10.618l и l20.382l. Поскольку заранее
известно, в какой последовательности (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 .
158
Задания к лабораторной работе “Численные методы
минимизации функции одной переменной”
159
Дополнительная литература
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
ЧИСЛЕННЫЕ МЕТОДЫ
Учебное пособие