Академический Документы
Профессиональный Документы
Культура Документы
ВВЕДЕНИЕ .................................................................................................... 5
4
Введение
6
нелинейных или дифференциальных уравнений, системы неравенств,
определенный интеграл, многочлен с неизвестными коэффициентами и т.д.
После того, как разработана математическая модель, переходят к
постановке вычислительной задачи. При этом устанавливают, какие
характеристики математической модели являются исходными
(входными) данными, какие – параметрами модели, какие – выходными
данными. Проводят анализ полученной задачи с точки зрения
существования и единственности решения.
На следующем этапе выбирают метод решения поставленной
задачи. Во многих конкретных случаях найти решение задачи в явном
виде не представляется возможным, так как оно не может быть
выражено через элементарные функции. Такие задачи можно решить
лишь приближенно, вычислительными (численными) методами,
подразумевающими приближенные процедуры, позволяющие получать
решение в виде конкретных числовых значений. Вычислительные
методы, как правило, реализуют на ЭВМ. Для решения одной и той же
задачи могут быть использованы различные вычислительные методы,
поэтому необходимо уметь оценивать качество различных методов и
эффективность их применения для данной задачи.
Для реализации выбранного вычислительного метода составляют
алгоритм и реализующую его программу для ЭВМ. Современному
исследователю важно уметь построить алгоритм решения такой задачи
и преобразовать задачу к виду, удобному для реализации на ЭВМ.
В настоящее время на рынке программного обеспечения широко
представлены как пакеты, реализующие наиболее общие методы
решения широкого круга задач (Maple, Mathcad, MatLAB и др.), так и
пакеты, реализующие методы решения специальных задач.
Когда результаты расчетов получены, их анализируют и
интерпретируют. При необходимости корректируют параметры
выбранного метода или вносят коррективы в математическую модель, и
начинают новый цикл решения задачи.
В зависимости от конкретной ситуации исследователю
необходимо выбрать тот или иной численный метод из числа
имеющихся или разрабатывать новый, учитывающий особую
специфику поставленной задачи. Пи этом необходимо знать
преимуществах и недостатках метода по сравнению с другими,
убедиться в его сходимости и устойчивости, определить число
необходимых операций и размеры требующейся памяти ЭВМ.
К основным проблемам выбора численного метода относят:
проблему обеспечения надѐжности вычислений при ограничении
7
точности исходных данных; изучение корректных, некорректных и
промежуточных задач, изменения корректности при преобразованиях;
устойчивость полученных решений; общую проблему надѐжности
вычислений и корректности математических моделей; методы
избегания ошибок при применении стандартных прикладных программ
Mathcad, MatLAB и др.; тандем «жѐстких» и «мягких» математических
моделей; интервальные числа и их свойства; алгебраические системы
интервальных чисел; задачи анализа и линейной алгебры в
интервальной математике; интервальные методы решения
дифференциальных уравнений; проблемы реализации интервальных
методов на ЭВМ.
Таким образом, численный анализ математических моделей,
включающий выбор метода, разработку алгоритма его программной
реализации, вычислительный эксперимент, является в настоящее время
эффективным аппаратом исследования прикладных проблем.
Вычислительная математика – раздел математики, в котором
производится разработка, обоснование и реализация на базе ЭВМ,
методов решения разнообразных задач на уровне математических
моделей. Основное содержание данного раздела составляют численные
методы, представляющие собой упорядоченные схемы, итерационные
процедуры, расчетные формулы, алгоритмы, переработки информации
с целью нахождения приближенного решения поставленной задачи.
Учебное пособие содержит краткое описание наиболее широко
используемых на практике прямых и итерационных методов решения
систем линейных алгебраических уравнений, методов решения
нелинейных уравнений, элементы теории интерполирования и
численного интегрирования, разностных методов решения
обыкновенных дифференциальных уравнений.
В первой главе пособия рассмотрены численные методы
интегрирования, позволяющие вычислить значение определенного
интеграла непосредственно по значениям подынтегральной функции,
независимо от способа ее задания или вида аналитического выражения.
Описаны методы численного интегрирования: методы
прямоугольников, трапеций и метод Симпсона. Показано применение
методов численного интегрирования для приближенного вычисления
интеграла.
Вторая глава пособия посвящена методам решения нелинейных
уравнений, необходимость использования которых возникает при
математическом моделировании различных гидрофизических и
биологических и многих других процессов. Рассмотрены методы
8
(половинного деления, хорд, секущих, метод Ньютона) приближенного
нахождения корней уравнения и оценки точности, найденных корней.
К одной из важных проблем прикладной математики относят
улучшение точности и сокращение времени решения систем линейных
алгебраических уравнений большой размерности с самосопряженными
и несамосопряженными операторами, а также плохо обусловленными
матрицами. Значительная часть численных методов решения
различных, в том числе нелинейных, задач включает в себя решение
систем линейных алгебраических уравнений как элементарный шаг
советующего алгоритма.
Прямые методы решения систем линейных алгебраических
уравнений представлены в третьей главе. Рассмотрены метод Гаусса и
его модификации: алгоритм LU-разложения и метод прогонки.
Показана реализация данных методов на ЭВМ.
В четвертой главе обсуждаются наиболее распространенные
итерационные методы решения систем линейных алгебраических
уравнений, являющиеся в ряде случаев весьма эффективными.
Представлены итерационные методы Якоби и Зейделя. Затронуты
вопросы исследования сходимости итерационных методов.
Рассмотрены вариационно-итерационные методы решения СЛАУ.
Представлены алгоритмы решения СЛАУ указанными методами.
Математическое моделирование многих задач механики, физики,
химии и других областей науки приводит к обыкновенным
дифференциальным уравнениям или к дифференциальным уравнениям
в частных производных. В пятой главе рассмотрена задача Коши для
обыкновенных дифференциальных уравнений. Показано применений
методов Эйлера, Рунге – Кутта второго и четвертого порядков точности
для ее решения.
Шестая глава посвящена методам приближения функций, к
которым весьма часто прибегают в задачах математического
моделирования, например, при статистической обработке результатов
натурных измерений, при прогнозировании состояния моделируемых
процессов или явлений. В главе рассмотрены интерполяция функций
полином Лагранжа, тригонометрическим полином, кубическим
сплайном, представлен метод наименьших квадратов, показано
применение данных методов.
Цель книги – помочь студентам овладеть основами раздела
«Численные методы» в такой степени, чтобы они могли не только
осознанно применять полученные знания в процессе обучения и в
профессиональной деятельности, но и, по мере необходимости,
9
углублять и расширять их путем дальнейшего самообразования.
В настоящее время существует большое число прекрасных
образцов учебной литературы по указанному разделу математики,
неполный перечень которых представлен в конце настоящего учебного
пособия. Среди существующей учебной литературы достаточно
подробное описание содержится в стандартных учебниках [3-7, 11-13,
16-17, 21, 32, 66-67]. С отдельными вопросами курса можно более
детально ознакомиться по специализированным книгам [9-10, 19, 27-28,
30-31, 33-34, 36, 68-69].
Тем не менее, авторы считают целесообразным дать студентам
сжатое, но системное и цельное изложение материала, которое, с одной
стороны, по своему объему было бы достаточным для усвоения основ
указанного раздела математики, а с другой стороны, ориентировало бы
студентов в выборе книг для самостоятельного расширения знаний, для
последующего более глубокого изучения численных методов и их
применения в различных прикладных задачах.
10
1. Численное интегрирование
Необходимость вычисления значений определенных интегралов
при моделировании возникает достаточно часто. Определенный
интеграл от функции f (x) на отрезке [a,b]
b
I f (x)dx, (1.1)
a
вычисляют по формуле Ньютона-Лейбница. Если же нахождение
первообразной невозможно или представляет сложную задачу, то
точное вычисление определенного интеграла по формуле Ньютона-
Лейбница затруднительно. Поэтому большое значение имеют
приближенные и, в первую очередь, численные методы вычисления
определенных интегралов.
Численные методы интегрирования универсальны – они
позволяют вычислить значение определенного интеграла
непосредственно по значениям подынтегральной функции f (x) ,
независимо от способа ее задания или вида аналитического выражения.
В самой общей постановке задачу численного интегрирования
формулируют следующим образом: вычислить приближенное значение
определенного интеграла на основании ряда значений подынтегральной
функции.
Методы численного интегрирования делят в зависимости от
способа аппроксимации подынтегральной функции. (методы
прямоугольников, трапеций и метод Симпсона) основаны на
полиномиальной аппроксимации подынтегральной функции. Методы
данного класса отличаются друг от друга степенью используемого
полинома, от которой зависит количество узлов, где необходимо найти
функцию f (x) .
Эффективным методом вычисления интегралов является
представление подынтегральной функции в виде ряда Тейлора, что
позволяет свести вычисление интеграла от сложной функции к
интегрированию многочлена, представляющего собой первые
несколько членов ряда Тейлора. Методы приближения сплайнами
основаны на аппроксимации подынтегральной функции сплайнами,
представляющими собой кусочный полином. Методы различают по
типу выбранных сплайнов. В методах Монте-Крало узлы выбирают с
помощью датчика случайных чисел, при этом найденное значение
интеграла носит вероятностный характер.
11
В данной главе описаны основные методы численного
интегрирования: метод прямоугольников, трапеций и метод Симпсона.
Геометрический смысл определенного интеграла – площадь
криволинейной трапеции, ограниченной осью Oх, графиком функции
f (x) и прямыми x=a и x=b. Численные методы интегрирования
основаны на различных способах оценки этой площади, поэтому
полученные формулы численного интегрирования называют
квадратурными (формулами вычисления площади). Квадратурные
формулы отличаются друг от друга способом оценки значения площади
элементарной криволинейной трапеции.
Рассмотрим различные способы приближенного вычисления
определенного интеграла вида (1.1) основанные на замене данного
интеграла конечной суммой
n
In ck f x k , (1.2)
k 0
где c k – числовые коэффициенты и x k – точки отрезка [a,b] ,
k 0,1,2,...,n . Приближенное равенство:
b n
f (x)dx c f x
a k 0
k k
f (x)dx f x dx.
a i 1 x i 1
12
Для построения формулы численного интегрирования на всем
отрезке [a,b] достаточно построить квадратурную формулу для
интеграла
xi
f x dx
x i 1
(1.3)
f x i 1 h , где x i 1 x i 0,5h , получим формулу:
2 2
f x dx f x h,
xi
i 1
(1.4)
2
x i 1
f x dx f x h,
xi
i i 1
2
x i 1
f x f x dx ,
xi
i i 1
(1.5)
2
x i 1
воспользуемся разложением
13
xx
2
f x f x i 1 x x i 1 f ' x i 1
2 2
2
2
i 1
f '' , 2
i
x x f '' dx.
2
xi
i 1
i
2
i
x i 1
2
Обозначая M 2,i max f ''(x) , оценим i следующим образом:
x[x i 1 ,x i ]
x x dx M x x
2 3 xi
xi
i 1 i 1 h3
i M 2,i M 2,i .
2 2
2,i
x i 1
2 6 24
x i 1
f x i1/2 0 и
xi
h3 h3
x f x dx f x i 12 h 24 M 2,i 12 .
i 1
f (x)dx f x h.
a i 1
i 1/2 (1.7)
14
x x f '' dx.
2
N N xi
i 1
i
2
i
i 1 i 1 x i 1 2
Отсюда, обозначая M 2 max f ''(x) , получим:
x[a,b]
M 2 Nh h (b a)
3 2
M2 , (1.8)
24 24
то есть погрешность формулы прямоугольников на всем отрезке есть
величина O h 2 . В этом случае говорят, что квадратурная формула
имеет второй порядок точности.
Замечание. Можно использовать формулы прямоугольников при
ином расположении узлов, например, формулы левых и правых
прямоугольников соответственно:
b N b N
f (x)dx hf x ,
a i 1
i 1 f (x)dx hf x .
a i 1
i
x i 1
f (x)dx
2
h (1.9)
(x x i1 )(x x i )
xi
x 2
f ''( i (x))dx
i 1
и, следовательно,
M 2,i h 3
i . (1.10)
12
Оценка (1.10) не улучшаема, так как в ней достигается равенство,
например, для f (x) x x i .
2
a f (x)dx i 1 2
h h(0,5f 0 f1 f N1 0,5f N ), (1.11)
16
где L2,i (x) – интерполяционный многочлен Лагранжа второй степени,
2
L2,i (x) 2 (x x i1/2)(x x i )f i1
h (1.12)
2(x x i1)(x x i )f i1/2 (x x i )(x x i1/2)fi .
Проводя интегрирование, получим:
xi
h
x 2,i L (x)dx
6
(fi1 4f i1/2 fi ), h x i x i1.
i 1
h
[f 0 f N 2(f1 f 2 f N1 ) 4(f1/2 f 3/2 f N1/2 )].
6
Чтобы не использовать дробных индексов, можно обозначить
x i a 0,5hi , fi f (x i ) , i 0,1,...,2N , hN b a
и представить формулу Симпсона в следующем виде:
ba
b
a f (x)dx
6N
[f 0 f 2N
(1.14)
2(f 2 f 4 f 2N2 ) 4(f1 f 3 f 2N1 )].
Прежде чем переходить к оценке погрешности формулы (1.13),
заметим, что она является точной для любого многочлена третьей
степени, то есть имеет место точное равенство:
xi
h
x f (x)dx
6
(f i1 4f i1/2 f i ) .
i 1
тогда
f IV ( i )
ri (x) (x x i )(x x i1/2 ) 2 (x x i1 ).
24
Оценим погрешность i :
xi
M 4,i
i
24
x i 1
(x x i )(x x i1/2 ) 2 (x x i1 )dx,
18
1.4. Применение методов численного интегрирования для
приближенного вычисления интегралов
Применим методы численного интегрирования для приближенного
1
4dx
вычисления интеграла .
0
1 x 2
19
Рассчитываем значение интеграла и погрешности методом
центральных прямоугольников
n
I3: h f[a h (i 0,5)]
i 1
I3 3,142425985
I3 I 8,333 104 .
Рассчитываем значение интеграла и погрешности методом
трапеций
f (a) f (b) n 1
I4 : h f (a h i)
2 i 1
I4 3,1399259889
I4 I 1,667 103 .
Рассчитываем значение интеграла и погрешности методом
Симпсона
h n 1 n
I5 : f (a) f (b) 2 f (a h i) 4 f a h i 0,5
6 i 1 i 1
I5 3,141592653
I5 I 6,2 1010 .
1 4
x 2 dx
1)
0 4 x2
; 2) x 2 16 x 2 dx
2
6
4 x 2 dx
2
dx
3) ; 4) ;
2 x x 9
2
3 1
x
2 8
x 3dx dx
5)
0 16 x 2
; 6) x x 16
2
;
4 2
3
4 3
dx x 2 dx
7) ; 8) 36 x
;
x x 16
2 2
4 0
10 6
x 2dx dx
9) x 25
2
; 10) x x 9
2
.
10/ 3 3 2
20
Содержание отчета
Отчет должен содержать:
− титульный лист;
− постановку задачи (согласно варианту);
− краткое описание методов численного интегрирования;
− программную реализацию данных методов;
− выводы о проделанной работе.
21
2. Методы решения нелинейных уравнений
Задача нахождения корней нелинейных уравнений вида f (x) 0
достаточно часто встречается в различных областях научных
исследований (здесь f (x) – некоторая непрерывная функция).
Нелинейные уравнения делят на два класса – алгебраические и
трансцендентные. Алгебраическими называют уравнения, содержащие
только алгебраические функции (целые, рациональные,
иррациональные). В частности, если f (x) является полиномом.
Всякое неалгебраическое уравнение называют трансцендентным.
Трансцендентные уравнения содержат другие функции
(тригонометрические, показательные, логарифмические и др.).
Для алгебраических уравнений, степень которых выше четырех,
не существует формул, которые выражали бы величины корней через
коэффициенты уравнений. Сравнительно редко удается найти точное
значение корней и трансцендентных уравнений. То есть, если
алгебраическое или трансцендентное уравнение достаточно сложно, то
его корни сравнительно редко удается найти точно. Кроме того,
уравнение может содержать коэффициенты, известные лишь
приблизительно, и, следовательно, задача о точном определении корней
теряет смысл. В общем случае можно говорить лишь о приближенном
вычислении корней данного уравнения. Поэтому важное значение
приобретают методы приближенного нахождения корней уравнения и
оценки точности, найденных корней.
Пусть дано уравнение
f (x) 0 , (2.1)
где функция f (x) определена и непрерывна на некотором интервале
a, b . Напомним, что всякое значение х 0 , обращающее функцию f (x)
в ноль, то есть значение х 0 , для которого справедливо равенство
f (x 0 ) 0 , называют корнем уравнения или нулем функции f (x) .
Рассмотрим задачу приближенного нахождения нулей функции
одного переменного, иначе, задачу нахождения корней уравнения (2.1).
Будем полагать, что уравнение (2.1) имеет только изолированные
корни, то есть, что для каждого корня уравнения (2.1) существует
окрестность, не содержащая других корней данного уравнения.
Процесс вычисления корней состоит из отделения корней, то есть
установления возможно тесных промежутков [a,b] , в которых
содержится один и только один корень уравнения (2.1) и уточнения
22
приближенных корней уравнения (2.1), то есть доведение их до
заданной степени точности. Для отделения корней часто используют
теорему Больцано – Коши.
Теорема Больцано – Коши. Если непрерывная на отрезке [a,b]
функция f (x) на концах отрезка имеет противоположные знаки, то есть
f (a)f (b) 0 ,
то на интервале (a,b) она хотя бы один раз обращается в ноль.
Корень уравнения f (x) 0 будет единственным, если производная
функции f (x) существует и сохраняет знак внутри интервала (a,b) .
23
Рис. 2.1. Последовательное деление отрезка
пополам и приближение к корню x
24
следующего приближения x i1 абсциссу точки пересечения данной
прямой с осью Ox .
Определение. Линейной интерполяцией функции f (x) называют
такую линейную функцию l(x) , значения которой совпадают со
значениями f (x) в двух фиксированных точках, в данном случае – в
точках x i1 и x i .
Иными словами, идея метода хорд состоит в приближѐнной
замене на этом шаге функции f (x) еѐ линейной интерполяцией,
найденной по двум значениям x i1 и x i . На рисунке 2.2 представлено
построение последовательного приближения по методу хорд.
25
x i1f (x i ) x i f (x i1 ) f (x i )
x i1 xi , то есть
f (x i ) f (x i1 ) f (x i ) f (x i1 )
x i x i1
f (x i )
x i1 x i .
ki
Заметим, что величина k i может рассматриваться как разностное
приближение для производной f (x) в точке x i . Полученная формула –
это разностный аналог итерационной формулы метода Ньютона.
Вычисления ведут непосредственно по данной формуле при
i 1, 2, 3,..., N , начиная с двух приближений x 0 и x1 , взятых, по
возможности, поближе к корню x . При этом не предполагают, что x
лежит между x 0 и x1 (и что значения функции f в точках x 0 и x1 ,
имеют разные знаки). При этом не гарантируется, что корень попадѐт на
отрезок между x 0 и x1 на каком-либо следующем шаге, хотя это и не
исключено. В таком случае затруднительно дать оценку погрешности, с
которой x i1 приближает истинное значение корня x , и поэтому
довольствуются эмпирическим правилом: вычисления прекращают,
когда будет выполнено неравенство
f(x i1 ) ,
где – желаемая точность нахождения корня. При этом полагают
приближѐнное значение корня равным x x i1 .
27
2.4. Метод Ньютона
Рассмотрим эффективный метод решения нелинейных уравнений
– метод Ньютона. Вначале приведем некоторые наводящие
рассуждения. Пусть функция
y F(x) , (2.2)
корень которой необходимо найти, имеет производные до 2-го порядка
в окрестности корня – точки x . Пусть уже найдено n -е приближение к
корню (на n -ой итерации) и требуется найти n 1 -е приближение. По
формуле Тейлора имеем:
F(x n1 ) F(x n ) F(x n )(x n1 x n ) O(x n 1 x n ) 2 .
Пренебрегаем остаточным членом порядка O(x n 1 x n )2 в правой
части формулы, будем считать, что x n 1 x* , то есть приближение
номера n 1, найдено столь точно, что F(x n 1 ) 0 .
Тогда имеем приближенное равенство:
0 F(x n ) F(x n )(x n1 x n ) .
Выражая отсюда x n 1 при условии F(x n ) 0 и переходя от
приближенного равенства к точному, получим:
F(x n )
x n 1 x n , n 1,2,...
F'(x n )
Данные рассуждения не претендуют на роль строгого вывода и не
могут служить обоснованием метода Ньютона. Перейдем к
обоснованию метода Ньютона. Будем рассматривать лишь случай
поиска вещественных корней.
Предположим, что уравнение (2.2) имеет простой вещественный
корень x * , то есть
F(x* ) 0 , F x* 0.
Будем предполагать, что F(x) дважды дифференцируема в
некоторой окрестности точки x * , то есть для всех x , принадлежащих
некоторому интервалу (x* r1;x* r1 ) , где r1 0 , причем F(x)
непрерывна на отрезке [x* r;x* r] , 0 r r1 .
Исследуем сходимость метода Ньютона
F(x n )
x n 1 x n , n 0,1,... (2.3)
F'(x n )
Теорема 1. Пусть x * – простой вещественный корень уравнения
(2.2) и пусть F(x) 0 в окрестности точки x *
28
Or1 (x ) x : x x* r .
Пусть F(x) непрерывна на отрезке [x* r;x* r] Or1 (x ) , причем
m 1 min F '(x) , M 2 max F ''(x) . (2.4)
x x* r x x* r
0.5
F ( x)
0.46 0.5
0 0.2 0.4 0.6 0.8
0 x 1
Рис. 2.4. График данной функции
29
График демонстрирует, что корень находится на интервале (0,1) .
Вводим концы интервала:
a : 0 b : 1.
Задаем погрешность решения уравнения:
eps : 0,000000001.
Метод половинного деления.
Вводим функцию расчета нелинейных уравнений методом
половинного деления
Bisekciya( a b eps) num 0
w hile b a eps
ab
c
2
a c if F ( c) F ( a) 0
b c if F ( c) F ( b) 0
num num 1
ab
2
num
Вызываем данную функцию
X : Bisekciya(a,b,eps) .
Выводим, найденное при помощи метода половинного деления,
приближенное значение корня и количество итераций
0,7390851337
X .
30
Считаем значение функции в данной точке (оно должно быть
близким к нулю)
x0 : X0
F(x0) 7,33 1010 .
На графике функции отмечаем значение корня уравнения (Рис.
2.5).
30
1
1
0.5
F ( x)
0
0.46 0.5
0 0.2 0.4 0.6 0.8
0 x x0 1
Рис. 2.5. Значение корня уравнения
Метод хорд.
Вводим функцию расчета нелинейных уравнений методом хорд
M_hord( a b eps) num 0
w hile b a eps
F ( b) a F ( a) b
c
F ( b) F ( a)
a c if F ( c) F ( a) 0
b c if F ( c) F ( b) 0
num num 1
ab
2
num
Вызываем данную функцию
X : M _ hord(a,b,eps) .
Выводим найденное при помощи метода хорд приближенное
значение корня и количество итераций
0,567
X .
10
Считаем значение функции в данной точке
x0 : X0
F(x0) 5,2446980092 1010 .
31
Метод секущих. Вводим функцию расчета нелинейных уравнений
методом секущих
M_sekushih( a b eps) num 0
ba
k
F ( b) F ( a)
w hile F ( a) eps
a a k F ( a)
num num 1
a
num
Вызываем данную функцию
X : M _ sekushih(a,b,eps) .
Выводим найденное при помощи метода секущих приближенное
значение корня и количество итераций
0,739
X .
11
Считаем значение функции в данной точке
x0 : X0 ;
F(x0) 3,778194424 1010 .
Метод Ньютона. Считаем производную функции F(x)
f (x) : sin(x) 1.
Вводим функцию расчета нелинейных уравнений методом
Ньютона
M_Nuton ( a eps) num 0
while F ( a) eps
F ( a)
aa
f ( a)
num num 1
a
num
Вызываем данную функцию
X : M _ Nuton(a,eps) .
Выводим найденное при помощи метода Ньютона приближенное
значение корня и количество итераций
32
0,739
X .
4
Считаем значение функции в данной точке
x0 : X0 ; F(x0) 2,8472058045 1010 .
a n1 a n 2 a nn b n
размерами n (n 1) , которая содержит всю известную информацию о
системе (3.1).
Опишем вначале прямой ход, первый шаг которого состоит в
обнулении всех элементов первого столбца матрицы A(0) , кроме того,
что находится в первой строке.
Введем обозначение:
a i a i1 ,a i2 ,...,a in ,bi .
C матрицей A(0) можно обращаться так же, как с исходной
системой (3.1), например, осуществлять элементарные преобразования.
В качестве последних будем использовать перестановки строк,
прибавление к элементам данной строки элементов какой-либо другой
строки, умноженных на одно и то же число.
Найдем ненулевой элемент в первом столбце матрицы A(0) . Такой
элемент найдется всегда, так как, в противном случае, весь первый
столбец состоит из нулей и матрица A – вырожденная. Пусть a r1 0 ,
тогда поменяем местами строки номера r и 1. Если r 1, то,
естественно, перестановка не требуется. Затем вычтем из каждой строки
номера i, i 2,...,n первую строку, умноженную на число f i , где
a
f i i1 .
a r1
35
В результате все элементы i -й строки изменят свои значения и
станут равными:
a ij(1) a ij fi a rj , i 1,2,3,...,n; i r, j 1,2,3,...,n;
(3.2)
bi bi f i b r .
(1)
3 2 6 3 2
Количество арифметических операций, необходимое для
реализации p обратных ходов (для p систем) методом Гаусса, равно
37
QIIp p n 2 n .
Следовательно, общее количество арифметических операций,
необходимое для реализации p систем с разными правыми частями, равно
2 3 n2 n 2
Q QIp QIIp n pn 2 pn 2 pn n 3 2pn 2 .
3 2 6 3
a n1 a n 2 a nn
A L U, (3.10)
где L и U – соответственно нижняя и верхняя треугольные матрицы
следующего вида:
11 0 0 0 1 U12 U13 U1n
0 0 0 1 U 23 U 2n
L 21 22 , U .
n1 n2 n3 nn 0 0 0 1
Известно, что если все угловые миноры матрицы A отличны от
нуля, то есть
a11 a12 a1n
a11 a12 a 21 a 22 a 2n
a11 0, 0, , 0,
a 21 a 22
a n1 a n 2 a nn
то разложение вида (3.10) существует и единственно. Для того чтобы
получить расчѐтные формулы, поступим следующим образом.
Обозначим через a ij произведение i -ой строки матрицы L на j -й
столбец матрицы U , причѐм будем считать вначале, что i j .
38
i i 1
Тогда a ij ik u kj ik u kj ii u ij .
k 1 k 1
Выразим из последней формулы u ij , имеем:
i 1
a ij ik u kj
(3.11)
u ij k 1
.
ii
Как это принято, будем считать в формуле (3.11) и далее, что
i 1
сумма вида
k 1
ik u kj равна нулю, если значение верхней границы
индекса суммирования меньше нижней границы.
В случае i j , имеем:
i i 1
a ii ik u kj ik u ki ii u ii .
k 1 k 1
Учитывая, что u ii 1, и выражая из последнего соотношения lii ,
получаем:
i 1
ii a ii ik u ki . (3.12)
k 1
Наконец, при i j получаем:
j j1
a ij ik u kj ik u kj ij u jj ,
k 1 k 1
откуда, с учетом того, что u ii 1, приходим к формуле:
j1
ij a ij ik u kj . (3.13)
k 1
Итак, расчетные формулы (3.11) – (3.13) получены. Для того
чтобы при их применении не использовались неизвестные (не
вычисленные) величины, необходимо выбрать соответствующий
порядок вычисления элементов матриц L и U .
Например, можно рекомендовать порядок расчета элементов
матриц L и U , схематически представленный на рисунке 3.1. На нем
цифры слева для матрицы L и сверху – для матрицы U означают, что
на первом шаге рассчитывают l11 по формуле (3.12), затем вычисляют
элемент u12 по формуле (3.11).
Далее (3 шаг) определяют элементы второй строки матрицы L в
порядке, указанном стрелкой: l 21 и l 22 (по формулам (3.13) и (3.12)
соответственно). На 4 шаге выполняют расчет элементов 3 столбца
39
матрицы U в порядке, обозначенном стрелкой: u13 ,u 23 (формулы
(3.11)) и т.д.
Рассмотрим применение метода LU-разложения для решения
СЛАУ вида:
Ax b , где
A LU .
Введем вспомогательный вектор y :
y Ux . (3.14)
Тогда исходную систему можно представить следующим образом:
L Ux b Ly b . (3.15)
2 4 6 2n
1 1
L~ 3 U~ 1
5
1
2n-1
1
(N 1) (N 1) матрица:
40
c0 b0 0 0 0 0 0 0
a c1 b1 0 0 0 0 0
1
0 a 2 c2 b 2 0 0 0 0
A .
0 0 0 0 a N 2 c N 2 b N 2 0
0 0 0 0 0 a N1 c N1 b N1
0 0 0 0 0 0 a N c N
Системы вида (3.16) возникают при конечно-разностной
аппроксимации краевых задач математической физики, описываемых
обыкновенными дифференциальными уравнениями второго порядка с
постоянными и переменными коэффициентами, а также уравнениями в
частных производных. Ставится задача разработать экономичные
методы решения задач вида (3.16), число арифметических операций,
для которых пропорционально числу неизвестных. Таким методом для
системы (3.16) является метод прогонки. Специфика матрицы A
состоит в расположении ненулевых элементов, матрица A –
разреженная матрица, из (N 1)2 элементов которой ненулевыми
являются не более 3N 1 элементов. Это позволяет получить для
решения СЛАУ достаточно простые расчетные формулы.
Будем искать решение (3.16) в виде:
yi i1yi1 i1 , i N 1, N 2, ..., 0 (3.17)
с неопределенными коэффициентами i , i . Выражение yi1 i yi i
подставим в (3.16), имеем:
ci a i i yi bi yi1 fi a ii ,
c учетом (3.17) имеем:
ci a i i i1 bi yi1 ci a i i i1 a ii fi .
Это равенство имеет место для любых y i , если
ci a ii i1 bi 0 , ci a ii i1 a ii fi .
Отсюда получаем рекуррентные формулы для определения
коэффициентов i1 , i1 :
bi
i1 , i 1,2, ..., N 1; (3.18)
ci a i i
a f
i1 i i i , i 1,2, ..., N 1 . (3.19)
ci a i i
Коэффициенты i , i , i 1,2,..., N называют прогоночными.
41
Если коэффициенты i и i известны, а также известно y N , то,
двигаясь справа налево (от i 1 к i ), последовательно определяем все
y i . Задачу нахождения прогоночных коэффициентов i , i по формулам
(3.18), (3.19) решают слева направо (от i к i 1). Начальные значения
прогоночных коэффициентов i , i определяют следующим образом.
Полагаем в формуле (3.17) i 0 , имеем y0 1 y1 1 , из первого
уравнения (3.16) c0 y0 b0 y1 f0 , откуда находим
b f
1 0 , 1 0 . (3.20)
c0 c0
Значение y N определяем следующим образом. Полагаем в
формуле (3.17) i N 1, имеем y N1 N y N N , из последнего
уравнения (3.18)
– a N y N1 c N y N f N ,
откуда, с учетом (3.19), имеем:
a f
y N N1 N N N . (3.21)
cN Na N
Расчетные формулы (3.17) – (3.21) можно получить из (3.16), если
применить метод исключения Гаусса.
Прямой ход метода заключается в том, что на первом шаге из всех
уравнений системы (3.16) при помощи первого уравнения исключаем
y 0 , затем из преобразованных уравнений для i 2,..., N , при помощи
уравнения, соответствующего i 1 , исключаем y i и т.д. В результате
получим одно уравнение относительно y N . На этом прямой ход метода
прогонки заканчивается.
На обратном ходе, для i N 1, N 2,...,0 , находим y i .
Порядок счета в методе прогонки следующий:
− исходя из значений 1 , 1 , вычисленных по формулам (3.20),
все остальные коэффициенты i , i для i 2,3,..., N 1 определяют
последовательно по формулам (3.18) и (3.19);
− исходя из значения y N , рассчитанного по формуле (3.21), все
остальные неизвестные yi , i N 1, N 2,...,0 определяют
последовательно по формуле (3.17).
Изложенный метод называют правой прогонкой.
Аналогично выводят формулы левой прогонки:
42
ai a
i , i N 1, N 2,...,1; N N ; (3.22)
ci bi i 1 cN
f bi i1 f
i i , i N 1, N 2,...,0; N N ; (3.23)
ci bi i 1 cN
yi1 i1yi i1 , i N 1, N 2, , 0; y0 0 . (3.24)
Здесь y i находят последовательно для значений i 1,2,..., N , ход
вычислений – слева направо.
В случае, если необходимо найти только одно неизвестное,
например, y m ( 0 m N ) или группу идущих подряд неизвестных,
целесообразно комбинировать правую и левую прогонки. При этом
получаем метод встречных прогонок.
Произведем подсчет числа арифметических действий для метода
правой прогонки. Анализ формул (3.17) – (3.21) показывает, что общее
число арифметических операций есть Q 8N 1.
Коэффициенты i не зависят от правой части СЛАУ (3.16) и
определяются только элементами a i ,bi ,ci матрицы A . Поэтому, если
необходимо решить серию задач (3.16) с различными правыми частями,
то прогоночные коэффициенты i вычисляют только для первой серии.
Для каждой последующей серии задач определяют только
коэффициенты i и решение y i , причем используют ранее найденные i .
Для решения первой из серии задач необходимо провести 8N 1
операций, а на решение каждой следующей задачи необходимо
провести 5N 3 операций.
Число арифметических операций, необходимое для решения
СЛАУ (3.16) методом левой прогонки и методом встречных прогонок,
такое же, то есть Q 8N . Метод правой прогонки называют
корректным, если ci a i i 0 , при i 1,2,..., N .
Решение y i находим по рекуррентной формуле (3.17). Эта
формула может порождать накопление ошибок округления результатов
арифметических операций.
Пусть прогоночные коэффициенты i и i найдены точно, а при
вычислении y N допущена ошибка y N , то есть y N y N y N . При
вычислениях с помощью формулы (3.17) получаем
yi i1yi1 i1 . (3.25)
Вычитая из (3.25) значение yi по формуле (3.17), имеем для
погрешности yi yi yi , yi i1 yi1 , i N 1, N 2, ..., 0 с
43
заданным y N . Отсюда ясно, что если i по модулю больше единицы и
если N достаточно велико, то вычисленное значение y i будет
значительно отличаться от искомого решения y i . В этом случае
говорят, что алгоритм прогонки неустойчив.
Определение. Алгоритм прогонки называют устойчивым, если
i 1, i 1,2,..., N .
Условия корректности и устойчивости алгоритма правой прогонки
определяют следующей теоремой.
Теорема 2. Пусть коэффициенты системы (3.16) действительны и
удовлетворяют условиям:
b0 0 , a N 0 , c0 0 , c N 0 , a i 0 , bi 0 , i 1,2,..., N 1;
ci a i bi , i 1,2,..., N 1; (3.26)
c0 b 0 , c N a N . (3.27)
Причем, хотя бы в одном из неравенств (3.26) и (3.27) выполняется
строгое неравенство, то есть матрица А имеет диагональное
преобладание. Тогда для алгоритма (3.17) – (3.21) имеют место
неравенства: ci a i i 0 , i 1, i 1,2,..., N , то есть алгоритм метода
правой прогонки корректен и устойчив.
Условия (3.26) и (3.27) теоремы 2 обеспечивают также
корректность и устойчивость алгоритмов левой и встречных прогонок.
Эти условия сохраняются и для случая системы (3.16) с комплексными
коэффициентами a i ,bi ,ci .
Легко показать, что при выполнении условий (3.26) – (3.27)
теоремы 2 система (3.16) имеет единственное решение при любой
правой части.
44
2x1 x 2 0,
x 3x 2x 1,
1 2 3
2x 2 5x 3 3x 4 1,
7x 3 8x 4 11.
Метод Гаусса для решения СЛАУ.
Задаем матрицу коэффициентов и столбец свободных членов
1 2 3 14
A 9 1 4
B 19
7 2 5 18
Проверяем невырожденность матрицы коэффициентов
A 64 .
Определитель отличен от нуля, следовательно, матрица не
вырождена.
Вводим функцию выбора главного элемента с последующим
установлением его на главную диагональ
vibor_gl_el( A B i) gl i
max Ai i
for j i 1 rows ( A) 1
if Aj i max
max Aj i
gl j
for j i rows ( A) 1
buf Ai j
Ai j Agl j
Agl j buf
buf Bi
Bi Bgl
Bgl buf
A
B
45
Вызываем функцию выбора главного элемента
C : vibor _ gl _ el(A,B,0) .
A
B
Вызываем данную функцию
C : Gauss _ pr(A,B) .
46
Вводим функцию, реализующую алгоритм обратного хода метода
Гаусса
Gauss_obr( A B) n rows ( A) 1
Bn
xn
An n
for i n 1 0
n
Bi Ai j xj
j i 1
xi
Ai i
x
47
LU ( A) for i 0 row s( A) 1
li 0 Ai 0
A0 i
u0 i
l0 0
for j 1 row s( A) 1
for i j row s( A) 1
j1
li j Ai j
li k uk j
k0
j1
Aj i
lj k uk i
k0
uj i
lj j
l
u
Выводим матрицы L и U
L : rez0 , U : rez1 ,
1 0 0 1 2 3
L 9 19 0 , U 0 1 1,211 .
7 16 3,368 0 0 1
Делаем проверку
1 2 3
L U 9 1 4 .
7 2 5
Вводим функцию, реализующую алгоритм обратного хода метода
Гаусса с нижнетреугольной матрицей L
48
B0
L_obr( L B) y0
L0 0
for i 1 row s( L) 1
i1
Bi Li j y j
j 0
yi
Li i
y
ai1 i1 fi
i
ci i1 ai1
an1 n1 fn
yn
cn n1 an1
for i n 1 0
yi i yi 1 i
y
5x1 2x 2 x 3 10, x1 3x 2 x 3 2,
7) 4x1 3x 2 2x 3 7, 8) 5x1 2x 3 18,
x 6x 5x 2. 3x x 6x 7.
1 2 3 1 2 3
4x1 2x 2 6, 2x1 x 2 3,
x 5x 2x 10, 2x 5x 3x 6,
1 2 3 1 2 3
1) 2)
3x 2 4x 3 x 4 10, x 2 6x 3 4x 4 3,
2x 3 7x 4 3. 3x 3 4x 4 1.
51
x1 x 2 3, x1 x 2 0,
2x 3x x 7, 2x 5x 2x 4,
1 2 3 1 2 3
3) 4)
x 2 4x 3 2x 4 3, x 2 4x 3 3x 4 1,
x 3 2x 4 2. 3x 3 4x 4 1.
x1 x 2 3, 4x1 3x 2 5,
x 3x 2x 11, x 5x 2x 5,
1 2 3 1 2 3
5) 6)
x 2 4x 3 3x 4 8, 2x 2 6x 3 x 4 10,
2x 3 3x 4 3. 3x 3 7x 4 17.
3x1 x 2 1, x1 x 2 1,
x 4x 2x 6, 2x 3x x 3,
1 2 3 1 2 3
7) 8)
x 2 3x 3 x 4 2, 2x 2 3x 3 x 4 1,
x 3 4x 4 1. x 3 2x 4 5.
Содержание отчета
Отчет должен содержать:
− титульный лист;
− постановку задачи (согласно варианту);
− краткое описание прямых методов расчета СЛАУ;
− программную реализацию данных методов;
− выводы о проделанной работе.
52
4. Какой из алгоритмов: прямой или обратный ход метода
Гаусса наиболее трудоемкий с точки зрения количества
арифметических операций?
5. Получите оценки числа арифметических операций для
решения СЛАУ методом Гаусса.
6. Получите оценки числа арифметических операций для
решения СЛАУ методом LU-разложения.
7. Сформулируйте условие применимости метода прогонки.
8. Получите оценки числа арифметических операций для
метода прогонки.
9*. В каком случае метод LU-разложения требует меньшего
количества арифметических операций для решения СЛАУ, чем метод
Гаусса?
10*. Как изменяется условие применимости метода Гаусса для
решения СЛАУ, если не используется алгоритм выбора главного
элемента?
53
4. Итерационные методы решения СЛАУ
Напомним, что методы решения систем линейных алгебраических
уравнений (СЛАУ) делят на прямые и итерационные.
Итерационные методы называют методами последовательных
приближений, так как при решении СЛАУ итерационными методами
задают некоторое приближенное решение (начальное приближение),
после чего с помощью некоторого алгоритма проводят один цикл
вычислений, называемый итерацией. В результате итерации находят
новое приближение. Итерации проводят до получения решения с
необходимой степенью точности.
Алгоритмы решения СЛАУ с использованием итерационных
методов более сложны по сравнению с прямыми методами, объем
вычислений заранее определить сложнее. Тем не менее, итерационные
методы в ряде случаев весьма эффективны. Погрешности
окончательных результатов не накапливаются, так как точность
вычислений в каждой итерации определяют исходя из результатов
предыдущей итерации и не так значительно зависит от ранее
выполненных вычислений. Итерационные методы результативны в
случаях СЛАУ больших размерностей, а также для плохо
обусловленных систем.
Итерационный метод позволяет найти последовательность
приближений x (n) , сходящуюся к точному решению при n , то
есть lim x (n) x . Поскольку бесконечные процессы нереализуемы на
n
практике, то обычно выполняют конечное число итераций, то есть
строят конечное множество векторов x (1) , x (2) ,..., x (k) , причем, задавая
некоторое малое число > 0 (погрешностью решения), добиваются,
чтобы x (k) x , где – некоторая норма вектора.
54
Решим систему (4.1) методом Якоби. Будем считать, что все
a ii 0 , i 1,2,...,n , где a ii – элементы матрицы А, лежащие на главной
диагонали. Преобразуем систему (4.1) к виду:
1 i1 n f
x i a ij x j a ij x j i , i 1,2,...,n. (4.3)
a ii j1 ji 1 ii
a
В равенстве (4.3) значение суммы считаем, как это принято,
равным нулю, если значение верхнего предела суммирования меньше
значения нижнего предела суммирования.
Далее верхний индекс будет указывать номер итерации
(приближения), например,
x k (x1k , x 2k ,..., x nk )T .
Зададим произвольным образом начальное приближение номера
k 0 , например, так
f
x i0 0, или x i0 i , i 1,2,...,n.
a ii
Исходя из равенства (4.3), итерационное равенство (формулу)
метода Якоби представим в виде:
1 i1 n f
x i a ij x j a ij x kj i , k 0,1,2,...
k 1 k
(4.4)
a ii j1 ji 1 iia
Окончание итераций определяют одним из способов:
1) по числу итераций, заданному заранее (максимальному числу
итераций);
2) по величине, так называемой, стабилизации:
max x ik 1 x ik , где 0 – заданное число, близкое к нулю;
1in
k 0, 1, 2, ...
55
С вычислительной точки зрения третий способ хотя и более
громоздкий по сравнению с первым и вторым способами, однако, он
дает наиболее объективную информацию о погрешности полученного
решения.
Идея метода Зейделя состоит в том, чтобы найденные значения
x1 , x k21 , ..., x ik11 использовать для вычисления x ik 1 , усовершенствовав
k 1
0 0 0 ... 0
a ... 0
21 0 0
A a 31 0 0 ... 0 – строго нижняя треугольная часть
... ... ... ... ...
a ... 0
n1 a n 2 a n3
матрицы А ,
56
a11 0 0 0
0 a 0 0
22
D 0 0 a 33 0 –д
0 a nn
0 0
диагональная часть матрицы А.
Очевидно, метод Якоби, с использованием введенных
обозначений в векторной форме, принимает вид:
x k1 D1 A A x k D1f ,
где D1 – матрица, обратная к матрице D :
D1 D Е,
Е единичная матрица.
1
а 0 0 0
11
1
0 0 0
а 22
1
D 1 .
0 0
а
0
33
0 1
0 0
а nn
Метод Якоби представим следующим образом:
D x k1 x k Ax k f . (4.7)
Аналогичным образом из соотношений (4.6) можно получить
представление метода Зейделя в векторной форме:
D A x k1 x k Ax k f . (4.8)
Далее мы увидим, что векторные равенства (4.7) и (4.8) являются
частными случаями, так называемой, канонической формы
одношаговых (двухслойных) итерационных схем вида:
x k 1 x k
B Ax k f , (4.9)
k 1
57
где B – квадратная невырожденная матрица размера n n , ее называют
стабилизатором, k 1 – число, называют итерационным параметром.
Напомним, что матрицу A называют положительно
определенной, если скалярное произведение Ax, x 0 для всех
ненулевых векторов x , или, что то же самое, x T Ax 0 .
Сформулируем теорему, принадлежащую А.А. Самарскому.
Теорема 3. Пусть A – симметричная положительно определенная
матрица, k 1 0 , и пусть выполнено неравенство для любого
ненулевого вектора x из n -мерного пространства:
B 0,5A x, x 0 .
Тогда итерационный метод (4.9) сходится, то есть
lim x k x 0.
k
Покажем, как использовать данную теорему для доказательства
сходимости, например, метода Зейделя.
Сравнивая (4.8) и (4.9), приходим к равенствам:
B D A , 1.
Таким образом, если A AT и A – положительно определенная
матрица, то при условии выполнения неравенства B 0,5A 0 , что
является краткой формой записи неравенства относительно скалярных
произведений:
B 0,5A x, x 0 , x R n ,
метод Зейделя сходится.
Заметим, что
B 0,5A B 0,5A D A 0,5 A D A
(4.10)
0,5D 0,5 A A .
Нетрудно проверить, что для любого n -мерного вектора
x (x R n ) справедливо:
A
A x, x 0 . (4.11)
C другой стороны, из неравенства Ax, x 0 , x R n вытекает
неравенство
(Dx, x) 0 . (4.12)
В самом деле, выберем x 0,...,0, i ,0,...,0 , где i 0 . Тогда
58
0
a 1i i 0
a 21 i
(Ax, x) , a ii i 0, следовательно, а ii 0.
2
i
a ni i
0
Поскольку i – любое, то все a ii 0 , i 1,2,...,n . Значит,
справедливо неравенство (4.12). В силу (4.11) и (4.12) из (4.10) имеем:
B 0,5A 0 .
59
2 2
rk 2k 1 (Ar k ,r k ) (k 1 ) 2 Ar k .
Дифференцируя k 1 по k 1 , получим:
2 Ar k ,r k 2k 1 Ar k
2
0,
k 1
Ar ,r Ar ,r .
k k k k
Ar ,Ar
k 2 k k (4.14)
Ar
Метод скорейшего спуска получают из условия минимума
энергетической нормы погрешности z k 1 (Az k 1 ,z k 1 ), где
A
k 1
z z x, k
2
Дифференцируя z k 1 по k 1 , получим
A
n1
An j xj
fn
j 0
yn
An n
x y
num num 1
x
num
61
1
X 2 , num 58 .
3
Выводим значение вектора невязки
3,751 107
f A x 4,913 107 .
6,421 107
n1
An j xj
fn
j 0
xn
An n
num num 1
x
num
Вызываем данную функцию
rez : Zejdel(A,f , x,eps) .
Выводим решение СЛАУ и количество итераций
62
X : rez 0 , num : rez1
1
X 2 , num 12 .
3
Выводим значение вектора невязки
3,128 107
f A x 5,52 107 .
0
63
2,662 107
f A x 3,337 107 .
2,25 107
64
4.5. Варианты заданий к лабораторной работе №4
Задание 1. Решите системы уравнений, представленных ниже,
итерационными методами, рассмотренными в данной главе.
6x1 3x 2 x 3 6, 5x1 2x 2 x 3 5,
1) 3x1 5x 2 x 3 5, 2) 2x1 6x 2 2x 3 0,
x x 3x 1. x 2x 7x 7.
1 2 3 1 2 3
66
5. Методы решения задачи Коши
Математическое моделирование многих задач механики, физики,
химии и других областей науки приводит к обыкновенным
дифференциальным уравнениям (ОДУ), или к дифференциальным
уравнениям в частных производных. Выделяют три метода решения
обыкновенных дифференциальных уравнений: точные, приближенные
и численные.
Точные методы предусматривают получение решения в виде
комбинации элементарных функций или в виде квадратур от последних.
Возможности точных методов весьма ограничены.
Приближенные методы сводятся к построению
последовательности функций w n (x) , имеющих пределом искомую
функцию v(x) . Обрывая эту последовательность на каком-то k ,
получают приближенное решение.
Наиболее универсальными методами решения являются
численные. К основному недостатку численных методов относят
возможность получения только частного решения в виде сеточной
функции. Несмотря на этот недостаток, методы применимы к очень
широкому классу задач, поэтому при современном уровне развития
вычислительной техники численные методы стали одним из основных
методов решения практических задач, математические модели которых
описывают дифференциальными уравнениями.
Следует отметить, что успех от применения численного метода
зависит и от обусловленности задачи, то есть задача должна быть
хорошо обусловлена, а именно, малые изменения начальных условий
должны приводить к малому изменению решения. В противном случае
(слабой устойчивости) малые погрешности в начальных данных или
погрешности численного метода могут приводить к большим
погрешностям в решении.
Рассмотрим задачу Коши для системы обыкновенных
дифференциальных уравнений:
du
=f(t, u) , (5.1)
dt
где u – искомая вектор-функция; t – независимая переменная;
u(t)= u1 (t), ..., u n (t) ; f(t) = (f 1,..., f n) , n – порядок системы; u1 (t),...,u n (t)
– координаты; t 0; u(0) = u0 .
Представим систему (6.1) в развернутом виде:
67
dui
=f i(t, u1,..., u n ) , (5.2)
dt
где i = 1,...,n ; u i (0) = u i0 .
В случае i=1 – это будет ОДУ 1-го порядка, при i=2 – система из
двух уравнений первого порядка. В случае i=1 решение задачи Коши
предполагает нахождение интегральной кривой, проходящей через
заданную точку и удовлетворяющую заданному начальному условию.
Задача состоит в том, чтобы найти искомую вектор-функцию u,
удовлетворяющую (5.1) и заданным начальным условиям.
Известны условия, гарантирующие существование и
единственность решения (5.1) или (5.2).
Предположим, что функции f i ( i = 1,...,n ) непрерывны по всем
аргументам в некоторой замкнутой области D={t a, u i u 0i b }, где a, b
– известные константы.
Из непрерывности функций следует их ограниченность, то есть
функции f i сверху ограничены некоторой константой М: | f i |<M (где
М 0) всюду в области D и пусть в D функции f i удовлетворяют
условию Липшица по аргументам u1 ,...,u n . Это значит, что
| f i(t,u1 ,...,un ) f i(t,u1,...,un ) | L(| u1 u1 | +....+ | un un |).
для любых двух точек (t,u1 ,...,un ) и (t,u1,...,un ) из области D. Тогда
существует единственное решение задачи (5.1)
u1 = u1 (t),... ,u n = u n (t) ,
определенное при t T = min a, b/ M (5.3)
и принимающее при t=0 заданное начальное значение.
Для решения задачи (5.1) существует два класса методов
одношаговые и многошаговые методы. Ниже рассмотрены
одношаговые методы.
5.1. Метод Эйлера
Пусть требуется решить задачу Коши: найти функцию u(t) ,
непрерывную при 0 t T, удовлетворяющую при t 0
дифференциальному уравнению и начальному условию при t 0 :
du
f t, u , 0 t T , u 0 u 0 (5.4)
dt
Решение задачи (5.4) существует и единственно, если функции f и
df
непрерывны в области D , содержащей точку M0 t 0 ,u 0 .
du
68
Ставится задача нахождения приближенных значений функции
u(t) – y0 , y1 ,..., yn в точках t 0 , t1 ,..., t n соответственно отрезка 0,T .
Совокупность точек {t i i,i 0,n} называют сеткой; точки t i –
узлами сетки, i t i t i1 – шагом сетки.
Одним из простейших методов численного решения задачи Коши
(5.4) является метод Эйлера, основанный на использовании разностной
схемы Эйлера:
yi1 yi
f (t i , yi ) , i 0,1,...,n , y0 u 0 . (5.5)
Разностную схему (5.5) называют явной, так как значения
y t i yi находят последовательно, начиная с y0 u 0 по явной
формуле:
yi1 yi f (t i , yi ) , i 0,1,...,n , y0 u 0 .
В результате получаем приближенные значения функции u(t) в
узлах t i сетки , то есть сеточную функцию y(t i ) yi , i 0,1,...,n .
Оценим величину аппроксимации разностной схемой Эйлера (5.5)
исходной задачи (5.7). Сеточную функцию
zi yi u(t i ) (5.6)
называют погрешностью разностной схемы.
Подставляя yi zi u(t i ) из (5.6) в уравнение (5.5), имеем:
zi1 zi
Li zi i , i 0,1,...,n, z 0 0 , где
(5.7)
Li f (t i ,u i zi ) , 0 1.
u ui
Невязку i f (t i ,u i ) i1 , которую имеет разностная схема
(5.5) на решении задачи (5.4), называют погрешностью аппроксимации
разностной схемы (5.5).
Оценим величину i . Разлагая по формуле Тейлора функцию
u(t i1 ) в окрестности точки t i , имеем:
2
u i1 u i u(t i ) u(t i ) 0(3 ) .
2
Учитывая, что u(t i ) f (t i ,u i ) , имеем i O() или
i c max i 0 .
0in
Таким образом, разностная схема (5.5) имеет первый порядок
69
аппроксимации.
Докажем сходимость разностной схемы Эйлера (5.5), то есть
докажем что zi c yi u i c 0 при 0 . Действительно,
определяя величину z i1 из (5.4) и оценивая ее, имеем:
n n
zi1 zi i z 0 s s ,
s 0 s 0
z c 0 0 при 0.
В этом случае разностную схему (5.5) называют сходящейся и
имеющей первый порядок точности. Таким образом, метод Эйлера
достаточно прост, но обеспечивает низкую точность.
71
F(t) : e t (t 1)
i : 0..n
yi : F(i ) .
0.8
0.6
y1i
yi
0.4
0.2
0
0 2 4 6 8 10
i
Рис. 5.1. Графики точного решения и приближенного,
рассчитанного методом Эйлера
72
Ruhge_Kutt_2( n y0) y0 y0
for i 0 n 1
y1 yi
2
f i yi
0.8
0.6
y2i
yi
0.4
0.2
0
0 2 4 6 8 10
i
y y2 точного
Рис. 5.2. Графики 0.146 решения и приближенного, рассчитанного
методом Рунге – Кутта второго порядка точности
yi 1 yi ( k1 2 k2 2 k3 k4)
6
y
Вызываем данную функцию
y3: Ruhge _ Kutt _ 4(n, y0) .
Строим графики точного решения и приближенного,
рассчитанного методом Рунге – Кутта четвертого порядка точности
(Рис. 5.3).
0.8
0.6
y3i
yi
0.4
0.2
0
0 2 4 6 8 10
i
Рис. 5.3. Графики
y y3 точного решения
5.468 10
3 и приближенного, рассчитанного
методом Рунге – Кутта четвертого порядка точности
Выводим значение погрешности
y y3 5,468 103 .
74
5.4. Варианты заданий к лабораторной работе №5
Решите задачу Коши, используя методы Эйлера, Рунге – Кутта
второго и четвертого порядков точности.
Содержание отчета
Отчет должен содержать:
− титульный лист;
− постановку задачи (согласно варианту);
− точное решение задачи;
− краткое описание методов решения задачи Коши;
− программную реализацию данных методов;
− выводы о проделанной работе.
75
7. Определите погрешность решения задачи Коши методом
Эйлера на конкретном примере.
8. Определите погрешность решения задачи Коши методом
Рунге – Кутта 2 порядка на конкретном примере.
9. От чего зависит погрешность численного решения задачи
Коши?
10*. Приведите пример решения системы дифференциальных
уравнений.
76
6. Методы приближения функций
В задачах математического моделирования довольно часто
возникает необходимость заменить используемую в расчетах функцию
y(x) приближенной функцией (x) , по которой вычисляют значения
исходной функции и которая в определенном смысле близка к y(x) .
Интерполяция в общем понимании – это нахождение
промежуточных значений величины по некоторым известным ее
значениям. В первоначальном понимании – восстановление функции
(точное или приближенное) по известным ее значениям или значениям
ее производных в заданных точках. Задача интерполяции состоит в
построении такой функции, чтобы в узлах сетки эта интерполирующая
функция принимала заданные значения, а в других точках – по
возможности приемлемые значения.
Интерполяцию применяют во многих задачах, связанных с
вычислениями, например:
− восстановить функцию y(x) для всех значений x на отрезке
a,b , если известны ее значения в некотором конечном числе точек
этого отрезка;
− заменить функцию близким выражением, удобным для
проведения вычислений, если исходная функция представлена
выражением, трудным для вычислений;
− выполнить субтабулирование, то есть сгущение таблицы
значений;
− решить задачу обратного интерполирования, то есть по
заданной таблице yi y(x i ) значений функции найти x как функцию от y .
В результате возникает следующая математическая задача: пусть
на отрезке a,b задана сетка {x 0 a x1 x 2 ... x n b}, в ее
узлах заданы значения функций y(x) , равные y(x 0 ) y0 , y(x1 ) y1 , …,
y(x i ) yi , …, y(x n ) yn . Требуется построить интерполянту, то есть
функцию (x) , совпадающую с функцией y(x) в узлах сетки
(x i ) yi , i 0,1,...,n . (6.1)
Интерполянту строят, как правило, в виде линейной комбинации
некоторых линейно независимых на отрезке a,b элементарных
функций
k (x),k 0,1,...,n ;
77
n
x c k k (x), (6.2)
k 0
где c k – неизвестные коэффициенты. Из условия (6.1) для определения
данных коэффициентов получим систему (n 1) уравнений:
n
c (x ) y ,
k 0
k k i i i 0, 1, ...,n. (6.3)
78
6.1. Интерполяционный полином Лагранжа и Ньютона
Интерполяционный полином Лагранжа.
Поставим следующую задачу: построить многочлен Pn (x) степени
n , который в (n 1) данных точках x 0 , x1 ,..., x n , называемых узлами
интерполяции, принимает данные значения y0 , y1 ,..., yn .
В данном случае речь идет о построении многочлена Pn (x)
степени n , который в определенном смысле «близок» к исходной
функции y(x) . Известно, что любая непрерывная на отрезке [a,b]
функция y(x) может быть хорошо приближена полиномом Pn (x) .
Имеет место следующий результат, гарантирующий существование
полинома, отклоняющегося от непрерывной функции не более чем на
заданную величину.
Теорема 4. Для любого 0 существует полином Pn (x) степени
n n() , такой, что
max | y(x) Pn (x) | .
x[a,b]
...
c c x ... c x n y .
0 1 n n n n
Определителем данной системы является отличный от нуля
определитель Вандермонда:
1 x 0 x 02 ... x 0n
1 x1 x12 ... x1n
0.
... ... ... ... ...
1 x n x n2 ... x nn
Отсюда следует единственность представления (6.4).
79
Более удобным для вычислений является базис полиномов
Лагранжа lk (x) степени n относительно x , удовлетворяющий
следующим условиям:
0, если i k;
x
1, если i k.
k i
80
интерполяции x 0 , x1 , ..., x n . В остальных точках отрезка [a,b] разность
R(x) y Pn (x) называют остаточным членом интерполяции,
представляющим погрешность метода, определяемую следующей
теоремой.
Теорема 5. Если функция y(x) имеет на отрезке [a,b]
непрерывные производные до (n 1) -го порядка включительно, то
остаточный член интерполяции R(x) определяют по формуле:
y(n 1) ()(x)
R(x) , a b.
n 1!
Число арифметических операций для вычисления значений
функции y(x) по формуле (6.7) равно Q 4n(n 1) 4n 2 .
Рассмотрим случай равноотстоящих узлов интерполяции, то есть
когда x i x i1 h , i 1, 2,..., n . Сделав замену x x 0 ht , имеем при
t 0 0, t1 1, ..., t n n :
x x k h(t k) ,
(x) h n1t(t 1)...(t n) , (x k ) (1) nk k!(n k)!h k .
Тогда выражение (6.9) для интерполяционного многочлена
Лагранжа принимает вид:
n
(1) n k y k
P n (x) Pn (x 0 ht) t(t 1)...(t n) .
k 0 (t k)k!(n k)!
k 0
Введем так называемые разделенные разности.
Разделенные разности первого порядка определяют по формуле:
yi y j
y(x i , x j ) .
xi x j
Например,
y y0 y
y(x1 , x 0 ) 1 0 , где h1 x1 x 0 ,
x1 x 0 h1
y y1 y
y(x 2 , x1 ) 2 1 , где h 2 x 2 x1 , и т.д.
x 2 x1 h 2
Разделенные разности второго порядка определяют по формуле:
y(x i , x j ) y(x j , x k )
y(x i , x j , x k ) .
xi x k
Разделенные разности k -го порядка определяют по формуле:
y(x k , x k 1 ,..., x1 ) y(x k 1 ,..., x 0 )
y(x k , x k 1 ,..., x1 , x 0 ) .
xk x0
В случае равностоящих узлов с шагом h для разделенных
разностей имеем формулы:
y y y
y(x1 , x 0 ) 0 , y(x 2 , x1 ) 1 , ..., y(x n , x n 1 ) n 1 ;
h h h
2 2 k
y0 y1 y0
y(x 2 , x1 , x 0 ) , y(x 3 , x 2 , x1 ) , ..., y(x k , x k 1, x 0 ) .
2!h 2!h k!h
Если y(x) Pn (x) – полином степени n , то для него первая
P(x) P(x 0 )
разделенная разность P(x, x 0 ) есть полином степени
x x0
(n 1) , вторая разделенная разность P(x, x 0 , x1 ) – полином степени
(n 2) , так что разделенная разность n 1 -го порядка равна нулю.
82
Схема расположения разделенных разностей представлена на
рисунке 6.1.
x0 y0
x1 y1 y(x1,x0) y(x2,x1,x0)
y(x2,x1) y(x3,x2,x1,x0) y(x4,x3,x2,x1,x0)
x2 y2 y(x3,x2,x1)
y(x3,x2) y(x4,x3,x2,x1)
x3 y3 y(x4,x3,x2)
x4 y4 y(x4,x3)
83
n
Pn (x) y0 (x x 0 )(x x1 ) ... (x x k 1 ) y(x 0 , x1 ,..., x k ) .
k 1
В данном случае базис состоит из функций вида:
k
84
Сплайном (сплайн-функцией) называют кусочно-полиномиальную
функцию, определенную на отрезке a,b и имеющую на этом отрезке
некоторое число непрерывных производных.
Слово «сплайн» означает гибкую линейку, которую используют
для проведения гладких кривых через определенное число точек на
плоскости. Преимущество применения сплайнов – сходимость и
устойчивость процесса вычисления. Рассмотрим частный случай, часто
используемый на практике, когда сплайн определяют многочленом
третьей степени.
Пусть любыми соседними узлами сетки функция y(x)
интерполируется кубическим полиномом S3 (x) . Его коэффициенты на
каждом интервале определяют из условий: i 1, 2,..., n
S3 (x i ) yi ,
S 3(x i 0) S 3(x i 0), S 3 (x i 0) S 3 (x i 0), i 1, 2,..., n 1,
S 3 (x 0 ) S 3 (x n ) 0. 6.11
Ищем кубический сплайн S3 (x) в виде:
S3 (x) a i bi (x x i1 ) ci (x x i1 ) 2 d i (x x i1 )3 , (6.12)
x i1 x x i .
Требуя, чтобы S3 (x) из (6.12) удовлетворял условиям (6.11), получим
для коэффициентов ci , i 1, 2,..., n трехдиагональную систему:
c1 0,
yi1 yi yi yi1
i i
h c 2(h i h i 1 )c i 1 h c
i 1 i 2 3 , i 1, 2,...,n,
h i 1 h i
c 0,
n 1
которую решаем методом прогонки.
Для a i справедливо требование a i yi1 , коэффициенты bi ,d i
находят по формулам:
1
bi yi yi1 / h i h i c i1 2c i , i 1, 2,..., n 1 ,
3
2
bn y n y n 1 / h n h nc n ,
3
1
di ci1 ci / h i , i 1, 2,..., n 1.
3
Для погрешности интерполяции справедлива оценка:
max S(x) y(x) O(h 2 ), где h max h i , i 1, 2,..., n .
a x b
85
6.3. Понятие о методе наименьших квадратов
Пусть проводится серия из n опытов. Результатами наблюдений
являются численные значения y(x i ) некоторой величины. Поставим
задачу: представить приближенным способом измеряемую величину
y(x) в виде линейной комбинации известных (базисных) функций –
g k (x) , k 1,2,...,m , m n , так, чтобы полученная зависимость
согласовывалась с результатами наблюдений «наилучшим образом».
Итак, будем искать зависимость y(x) в виде:
m
c g
k 1
k k (x), (6.13)
86
удобнее будет использовать квадрат длины, который в соответствии с
равенствами (6.15) и (6.16) может быть представлен в виде:
2
m
r r r ... r y x1 c k g k x1
2 2 2 2
1 2 n
k 1
2 2
(6.17)
m
m
y x 2 ck g k x 2 y x n ck g k x n .
k 1 k 1
2
Ясно, что если r минимален, то и выбор коэффициентов c k ,
k 1,2,...,m наилучший в указанном выше смысле. Будем
рассматривать правую часть равенства (6.17) как функцию m
переменных, в роли которых выступают коэффициенты c k ,
k 1,2,...,m . Тогда необходимое условие экстремума функции r
2
0. (6.18)
c1 c2 cm
Дифференцируя правую часть формулы (6.17) по переменным c k ,
k 1,2,...,m , как сложную функцию и приравнивая полученные
частные производные нулю, приходим к равенствам:
m m
2 (y(x 1) c k g k (x 1))(g 1(x 1)) 2 (y(x 2) c k g k (x 2 ))( g1 (x 2 ))
k 1 k 1
m
(y(x n ) ck g k (x n ))(g1 (x n )) 0 ,
k 1
m m
2 (y(x1 ) c k g k (x1 ))(g 2(x 1)) 2 (y(x 2 ) c k g k (x 2 ))( g 2 (x 2 ))
k 1 k 1
m
(y(x n ) ck g k (x n ))(g 2 (x n )) 0 ,
k 1
m m
2 (y(x1 ) c k g k (x 1))( g m(x 1)) 2 (y(x 2) c k g k (x 2))( g m (x 2 ))
k 1 k 1
m
(y(x n ) c k g k (x n ))(g m (x n )) 0.
k 1
Сокращая на 2 обе части полученных равенств и записывая их в
компактной форме, получим систему:
87
n
m
y(x i ) c k g k (x i ) g1 (x i ) 0,
i 1 k 1
n
m
y(x i ) c k g k (x i ) g 2 (x i ) 0,
i 1 k 1
n
m
i 1
y(x i )
k 1
c k g k (x i g m (x i ) 0.
)
Раскрывая скобки и перенося известные величины в правые части,
в итоге получаем систему, которую называют системой нормальных
уравнений:
m
n n
m
n n
g k (x i )g m (x i ) c k g m (x i )y(x i ).
k 1 i 1 i 1
Заметим, что система (6.19) получена из необходимых условий
экстремума функции m переменных. Можно доказать, что в точке m -
мерного пространства, которая является решением системы (6.19),
2
выполняются достаточные условия наличия минимума функции r ,
однако, ввиду громоздкости выкладок, мы этот вопрос здесь не
рассматриваем.
Рассмотренный метод нахождения наилучшего, в указанном
смысле, приближения к неизвестной функциональной зависимости
y y(x) , если задана система базисных функций g k (x), k 1,2,...,m ,
основанный на нахождении решения системы уравнений (6.19), и
называют методом наименьших (минимальных) квадратов.
88
линейно независимых функций k (t) взять систему функций
1,cos t,sin t,cos 2t,sin 2t,...,cos nt,sin nt ,
то интерполяционный тригонометрический полином имеет вид:
a0 n
t Tn t a k cos kt b k sin kt .
2 k 1
Для нахождения a k ,b k используют дискретное преобразование
Фурье.
Дискретное преобразование Фурье – это одно из преобразований
Фурье, широко применяемых в алгоритмах цифровой обработки
сигналов (его гомоморфизмы применяют в сжатии звука в .mp3, сжатие
изображений в .jpg и др.), а также в других областях, связанных с
анализом частот в дискретном (к примеру, оцифрованном аналоговом)
сигнале. Дискретные преобразования Фурье помогают решать частные
дифференциальные уравнения и выполнять такие операции, как
свѐртки. Преобразования бывают одномерные, двумерные и даже
трехмерные.
Последовательность N действительных чисел x 0 , ... , x N 1
преобразуют в последовательность из N комплексных чисел
X0 , ... , X N 1 с помощью дискретного преобразования Фурье по
формуле:
N 1 2 i
X k x ne
kn
N
, k 0,..., N 1,
n 0
где i – это мнимая единица. Обратное дискретное преобразование
Фурье задают формулой:
2 i
1 N 1 * N kn
x n X ke , n 0,..., N 1.
N k 0
Поскольку напрямую вычисления дискретного преобразования
требует O N 2 операций, то на практике используют более быстрый
алгоритм преобразования Фурье, которое требует O N log N операций.
Дискретное преобразование Фурье является линейным
преобразованием, которое переводит вектор временных отсчетов x в
вектор спектральных отсчетов той же длины. Таким образом,
преобразование может быть реализовано как умножение квадратной
матрицы на вектор:
X Ax.
Матрица А имеет вид:
89
1 1 1 1
2 i
4 i
2 i
( N 1)
1 e N e N e N
4 i 8 i 2 i
A 1 e N
e N
e N
2( N 1) .
2 i 2 i 2 i
2
( N 1) 2( N 1) ( N 1)
1 e
N
e N e N
Ниже представлены некоторые свойства:
1) линейность ax(n) by(n) aX(k) bY(k);
2 i
2) сдвиг по времени x n m X(k)e
knm
N
;
3) периодичность X(k rN) X(k), r Z;
4) выполняется теорема Парсеваля;
5) симметрии X(k) X* (N k).
Таким образом, информацию несут первые N / 2 гармоник;
6) обладает спектральной плотностью S(k) x(k) ;
2
N k 0 N k 1
N/21
2 i
1 N/21
2 i
0 k
kn kn
*
Xe
k
N
X X *
e N
X N/2 e in
k n/21 N k 1
N/21
1
2 i
N/21 * 2Ni kn
Xke k
kn
in
N
0
X 2Re X e X N/2 e .
k 1 N k 1
Переходим от дискретных значений n к непрерывному аргументу
t , таким образом, чтобы выполнялось равенство t n nh , при
n 0, 1, ..., N 1 , где h – шаг дискретизации. Формула в случае четного
числа узлов для интерполяционного тригонометрического полинома
имеет вид:
1 N/21
2kt 2kt
x(t) X0 X N/2 cos t 2 ReX k cos ImX k sin .
N k 1 N N
90
Аналогичным образом можно получить формулу для
интерполяционного тригонометрического полинома в случае нечетного
числа узлов, которая может быть представлена следующим образом:
1 ( N 1)/2
2kt 2kt
x(t) X 0 2 Re X k cos Im X k sin .
N k 1 N N
X 1 3 4 5 6 7 9 11
Y –1 2 3 9 4 7 2 7
X 0 1 2 3 4 5 6 7
Y 2 –4 3 9 –2 1 7 5
91
Lagrang( x A) sum 0
for i 0 row s( A) 1
pr Ai 1
for j 0 row s( A) 1
x Aj 0
pr pr if i j
Ai 0 Aj 0
sum sum pr
sum
Выводим минимальное и максимальное значение аргумента
a : min A 0
b : max A
0
a 1 b 11
Вводим количество точек и шаг
n : 100
ba
h : .
n
Устанавливаем счетчики
i : 0..n j: 0..rows(A) 1.
Табулируем функцию
fi : Lagrang(a i h,A) .
Строим график функции интерполяционного полинома Лагранжа
(Рис.6.2).
100
51.97
50
fi
0
Aj 1
50
98.832 100
2 4 6 8 10
a a ih
Aj 0 b
Рис. 6.2. График функции интерполяционного полинома Лагранжа
92
Интерполяционный полином Ньютона.
Задаем таблицу значений функции
1 1
3 2
4 3
5 9 .
A :
6 4
7 7
9 2
11 7
Вводим функцию расчета коэффициентов интерполяционного
полинома Ньютона
0
Nuton ( A) x A
1
yA
k0 y 0
n rows ( A) 1
for i 1 n
for j 0 n i
y j 1 y j
y1 j
xj i xj
y y1
k i y0
k
Вызываем данную функцию
k : Nuton(A) .
Строим функцию интерполяционного полинома Ньютона
rows(k)1 i 1
F(x) : k 0 k i x A j,0 .
i 1 j0
a 1 b 11
Вводим количество точек и шаг табуляции
93
n : 100
ba
h : .
n
Устанавливаем счетчики
i : 0..n j: 0..rows(A) 1.
Табулируем функцию
fi : F(a i h) .
Строим график функции интерполяционного полинома Ньютона
(Рис. 6.3).
100
51.97
50
fi
0
Aj 1
50
98.832 100
2 4 6 8 10
a a ih
Aj 0 b
Рис. 6.3. График функции интерполяционного полинома Ньютона
ai1 i1 fi
i
ci i1 ai1
an1 n1 fn
yn
cn n1 an1
for i n 1 0
yi i yi 1 i
y
При помощи функции прогонки считаем значения коэффициентов ci
C : progonka(a,b,c,f ) .
Переопределяем значения коэффициентов ci
i : rows(C) 1..0
Ci1 : Ci C0 : 0 Crows(A)1 : 0 .
Cчитаем значения коэффициентов b i и d i
i : 1..rows(C) 2
A Ai,1 Ci1,0 2 Ci,0 C Ci,0
Bi : i1,1 h i Di : i1,0
hi 3 3 hi
95
A rows(C)1,1 A rows(C)2,1
Brows(C)1 : .
h rows(C)2
Вводим функцию интерполяционного кубического сплайна
F ( x A) for i 0 rows ( A) 2
if x Ai 0 x Ai 1 0
x0 x Ai 0
2 3
f Ai 1 Bi 1 x0 Ci 1 x0 Di 1 x0
f
Вводим количество точек
n : 1000 .
Определяем минимальное и максимальное значение аргумента
a : A0,0 b : A rows(A)1,0
Вводим шаг табуляции
ba
h : .
n
Табулируем функцию интерполяционного кубического сплайна
i : 0..n 1 j: 0..rows(A)
Poli : F(a i h,A) .
Строим график функции (Рис. 6.4).
96
Метод наименьших квадратов.
Задаем таблицу значений функции
1 1
3 2
4 3
5 9
A :
6 4
7 7
9 2
11 7
Устанавливаем счетчики
n : rows(A) 1 .
Считаем значения x, y
x : A y : A .
0 1
Решаем СЛАУ
k : C1 D .
Устанавливаем счетчики
i : 0..n .
97
10
5
yi
f( t)
0
5
0 2 4 6 8 10
xi t
Рис. 6.5. График линейной регрессионной функции
i 0
Квадрат невязки
r 54,833 .
Задаем СЛАУ согласно методу минимальных квадратов в случае
квадратичной регрессии:
n n n
2 n
1 x i x i y i
i 0 i 0 i 0
i 0
n n n
3 n
C : x i xi xi ; D : yi x i .
2
i 0 i 0 i 0
i 0
n n n
4 n
2
i i
2 3
x x i x i y x i
i 0 i 0 i 0 i 0
Решаем СЛАУ
k : C1 D .
Строим квадратичную регрессионную функцию
f (t) : k 2 t 2 k1 t k 0 .
Строим график квадратичной регрессионной функции (Рис. 6.6).
98
10
5
yi
f( t)
0
5
0 2 4 6 8 10
xi t
Рис. 6.6. График квадратичной регрессионной функции
Считаем квадрат невязки
n
r : k 2 x i k1 x i k 0 yi .
2 2
i 0
Считаем квадрат невязки
r 42,187 .
Задаем СЛАУ согласно методу минимальных квадратов, в случае
кубической регрессии
n n n n
3 n
2
1 x i x i x i y i
i 0 i 0 i 0 i 0
i 0
n n n n
4 n
i i i
2 3
x x i x i x i y x
C : n ; D : i0 .
i 0 i 0 i 0 i 0
n n n
5 n
2
2 3 4
x i x i x i x i y i x i
i 0 i 0 i 0 i 0
i 0
n n n n
6 n
3
xi xi xi xi yi x i
3 4 5
i 0 i 0 i 0 i 0 i 0
Решаем СЛАУ
k : C1 D .
Строим кубическую регрессионную функцию
f (t) : k 3 t 3 k 2 t 2 k1 t k 0 .
Строим график кубической регрессионной функции (Рис. 6.7).
99
10
yi
0
f( t)
10
0 2 4 6 8 10
xi t
Рис. 6.7. График кубической регрессионной функции
Считаем квадрат невязки
n
r : k 3 x i k 2 x i k1 x i k 0 yi .
3 2 2
i 0
Считаем квадрат невязки
r 33,851.
Интерполяционный тригонометрический полином.
Задаем таблицу значений функции
2
4
3
9
x : .
2
1
7
5
Считаем число значений таблицы и задаем мнимую единицу
N : rows(x) i : 1 .
Устанавливаем счетчики
k : 0..N 1.
Считаем значение спектра
100
N 1 2ikn
X k : x n e N
n 0
a k : Re(X k ) bk : Im(X k ) .
Устанавливаем счетчики
t : 0,0.01..N .
Строим функцию интерполяционного тригонометрического
полинома (Рис. 6.8).
10
5
F ( t)
xk
0
5
0 1 2 3 4 5 6 7 8
tk
Рис. 6.8. График функции интерполяционного
тригонометрического полинома
101
Вариант Значения функции
x 1 3 4 6 7 8 10 12 15
1
y 3 4 6 2 8 4 5 8 0
x 1 2 5 6 7 9 11 12 16
2
y 2 6 3 2 4 5 5 9 3
x 1 2 3 5 7 8 11 14 15
3
y –3 3 5 4 1 –5 6 3 2
Вариант Значения функции
x 1 2 4 6 7 10 12 14 17
4
y 3 4 6 3 8 1 2 3 7
x 1 3 5 6 7 9 10 12 13
5
y 3 7 1 3 –2 5 –6 4 3
x 1 3 5 6 7 9 11 13 18
6
y 3 5 9 2 –1 –4 3 4 8
x 1 3 5 6 7 9 12 14 17
7
y 4 8 2 0 7 8 –1 2 3
x 1 3 4 6 7 8 11 15 18
8
y 3 5 8 3 7 1 9 3 2
x 1 2 3 6 7 9 10 13 15
9
y 4 8 2 7 –1 2 4 8 3
x 1 3 5 6 7 8 10 12 17
10
y 3 5 –1 7 3 6 9 0 4
102
Содержание отчета
Отчет должен содержать:
− титульный лист;
− постановку задачи (согласно варианту);
− краткое описание методов решения задачи Коши;
− программную реализацию данных методов;
− выводы о проделанной работе.
103