Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ Кафедра автоматизированных систем управления (АСУ) А. А. Мицель, В. В. Романенко ВЫЧИСЛИТЕЛЬНАЯ МАТЕМАТИКА Методические указания по выполнению контрольной и лабораторных работ Томск 2018 Корректор: А. Н. Миронова Мицель А. А., Романенко В. В. Вычислительная математика : методические указания по выполнению контрольной и лабораторных работ / А. А. Мицель, В. В. Романенко. – Томск : ФДО, ТУСУР, 2018. – 129 с. © Мицель А. А., Романенко В. В., 2018 © Оформление. ФДО, ТУСУР, 2018 3 СОДЕРЖАНИЕ Введение ............................................................................................................... 6 1 Решение уравнений с одной переменной ...................................................... 8 1.1 Отделение корней ...................................................................................... 8 1.2 Интервальные методы поиска корней ................................................... 10 1.2.1 Метод перебора................................................................................... 10 1.2.2 Метод дихотомии (метод половинного деления) ........................... 11 1.2.3 Метод хорд .......................................................................................... 14 1.2.4 Метод золотого сечения..................................................................... 17 1.3 Итерационные методы поиска корней................................................... 20 1.3.1 Метод Ньютона ................................................................................... 20 1.3.2 Метод итераций .................................................................................. 23 1.4 Комбинированный метод ........................................................................ 27 1.5 Задачи для самостоятельного решения ................................................. 29 2 Решение задач линейной алгебры ................................................................ 31 2.1 Методы решения систем линейных уравнений .................................... 31 2.1.1 Метод Гаусса ....................................................................................... 31 2.1.2 Метод ортогонализации ..................................................................... 33 2.1.3 Метод декомпозиции (схема Халецкого)......................................... 36 2.1.4 Метод простой итерации ................................................................... 38 2.1.5 Метод Зейделя .................................................................................... 41 2.2 Решение переопределенной системы .................................................... 43 2.3 Вычисление определителей .................................................................... 45 2.4 Вычисление обратной матрицы ............................................................. 49 2.5 Задачи для самостоятельного решения ................................................. 51 3 Приближение функций .................................................................................. 54 3.1 Постановка задачи ................................................................................... 54 3.2 Алгебраическое интерполирование ....................................................... 56 4 3.2.1 Формула Ньютона для равномерной сетки ..................................... 56 3.2.2 Формула Ньютона для неравномерной сетки.................................. 60 3.2.3 Формула Лагранжа для неравномерной сетки ................................ 61 3.2.4 Формула Лагранжа для равномерной сетки .................................... 63 3.3 Аппроксимация тригонометрическими функциями ............................ 63 3.4 Приближение функций полиномами Лежандра ................................... 67 3.5 Полиномы Чебышева .............................................................................. 69 3.6 Задачи для самостоятельного решения ................................................. 72 4 Численное дифференцирование ................................................................... 75 4.1 Формулы Ньютона ................................................................................... 75 4.2 Формула Лагранжа .................................................................................. 78 4.3 Задачи для самостоятельного решения ................................................. 82 5 Численное интегрирование ........................................................................... 84 5.1 Формулы трапеции и Симпсона ............................................................. 84 5.2 Формулы прямоугольников .................................................................... 88 5.3 Правило Рунге оценки остаточного члена ............................................ 90 5.4 Формула Гаусса ........................................................................................ 91 5.5 Задачи для самостоятельного решения ................................................. 94 6 Задание на контрольную работу ................................................................... 96 6.1 Решение уравнений с одной переменной .............................................. 96 6.2 Решение задач линейной алгебры .......................................................... 98 6.2.1 Решение систем линейных уравнений ............................................. 98 6.2.2 Вычисление определителей матриц ............................................... 102 6.2.3 Вычисление обратной матрицы ...................................................... 102 6.3 Приближение функций.......................................................................... 103 6.4 Численное дифференцирование ........................................................... 105 6.5 Численное интегрирование ................................................................... 106 7 Задание на лабораторную работу № 1 ....................................................... 109 7.1 Решение задач линейной алгебры ........................................................ 109 5 7.1.1 Решение систем линейных уравнений ........................................... 109 7.1.2 Вычисление определителей матриц ............................................... 113 7.1.3 Вычисление обратной матрицы ...................................................... 113 8 Задание на лабораторную работу № 2 ....................................................... 115 8.1 Приближение функций.......................................................................... 115 8.2 Численное дифференцирование ........................................................... 117 8.3 Численное интегрирование ................................................................... 118 Ответы к задачам для самостоятельного решения ...................................... 120 Литература ....................................................................................................... 127 Приложение А Шаблон отчета по контрольной и лабораторным работам ............................................................................ 128 6 ВВЕДЕНИЕ При использовании ЭВМ численные методы выступают как мощное математическое средство решения практических задач. Современные успехи в решении важных проблем в таких значимых областях, как атомная энергетика, космическая отрасль, экономика не были бы возможны без применения ЭВМ и численных методов. По оценкам ученых, эффект, достигаемый за счет совершенствования численных методов, составляет 40% от общего эффекта, достигаемого за счет повышения производительности ЭВМ [1]. Численные методы – это методы, позволяющие при помощи алгоритмов, имеющих конечное число итераций, решать различные математические задачи (заданные в аналитическом виде). Проведение сложных математических расчетов требуется во многих отраслях науки и техники. При этом объем этих расчетов таков, что вручную за разумное время их выполнить невозможно. Примеры – распределение нагрузки между подключенными к электростанции объектами (оно должно происходить практически мгновенно при изменении потребляемой мощности), вычисление траектории космических тел, расчет движений земной коры в геоинформационных системах (а это задачи нефтяной, газовой и других отраслей) и многое другое. Для этого и внедряются в промышленность и науку вычислительные системы, создаются специализированные пакеты для проведения численных расчетов. Распространение же ЭВМ ставит, в свою очередь, новые математические задачи, не существовавшие ранее – распределение интернет-трафика, обсчет трехмерных моделей в графических редакторах и играх и т. п. Таким образом, знание численных методов необходимо инженеру, область деятельности которого связана с программным обеспечением вычислительной техники и, в особенности, автоматизированных систем. 7 В предлагаемом пособии рассмотрены в примерах и задачах основные численные методы решения задач из следующих разделов вычислительной математики: решение уравнений с одной переменной, решение задач линейной алгебры (решение систем линейных алгебраических уравнений, вычисление определителей, обратной матрицы), приближение функций, численное дифференцирование и интегрирование функций. В каждом разделе приведены краткие сведения из теории [2], описаны алгоритмы вычислений и разобраны примеры по каждому из описываемых алгоритмов. В конце каждого раздела даны задачи и примеры для самостоятельного решения. В главах 6–8 приведены задания на контрольную и лабораторные работы с индивидуальными вариантами заданий. Выбор варианта задания осуществляется по общим правилам с использованием следующей формулы: V = (N K) div 100, где V – искомый номер варианта, N – общее количество вариантов, div – целочисленное деление, при V = 0 выбирается максимальный вариант, K – код варианта. В приложении представлен шаблон отчета по контрольной и лабораторным работам. Отчеты должны быть оформлены согласно ОС ТУСУР 01–2013. Работы студенческие по направлениям подготовки и специальностям технического профиля. Общие требования и правила оформления. Приказ ректора от 03.12.2013 https://regulations.tusur.ru/documents/70 № 14103. Режим доступа: 8 1 РЕШЕНИЕ УРАВНЕНИЙ С ОДНОЙ ПЕРЕМЕННОЙ 1.1 Отделение корней Решение нелинейных уравнений с одной переменной представляет одну из важнейших задач прикладного анализа. В общем случае нелинейное уравнение можно записать в виде: f x 0, (1.1) где f x определена и непрерывна на [a, b] . Всякое число [a, b] , обращающее функцию f x в нуль, т. е. f 0 , называется корнем уравнения (1.1). Число называется корнем k-й кратности, если при x вместе с функцией f x обращаются в ноль её производные до (k 1) порядка включительно: k 1 f f x ... f 0. Однократный корень называется простым. Первый этап численного решения уравнения (1.1) состоит в отделении корней, т. е. в установлении тесных промежутков, содержащих только один корень. Фактически этот этап состоит в нахождении грубого значения корня. Рассмотрим графический способ отделения корня. Для этого строится график функции f x . Точка пересечения с осью абсцисс и есть искомый корень. Построение графика часто удаётся упростить, если уравнение (1.1) удаётся заменить равносильным ему уравнением f1 x f 2 x . Например, на рисунке 1.1 показан графический способ решения уравнения f ( x) ln x sin x . Здесь f1 ( x ) ln x , f 2 ( x) sin( x) . 9 f 2 ( x) ln( x) 1 1 12 π 2 ξ 3 π 4 3 2 π 5 –1 6 f1 ( x) sin( x) Рис. 1.1 – Графический метод решения уравнения f ( x) ln x sin x Для нахождения приближённого значения корней с использованием ЭВМ поступают следующим образом. Задают сетку {xi }: a x1 x2 ... xn b и вычисляют значения функции f xi fi . Если для двух соседних точек выполняется неравенство f xi f xi1 0 , то в интервале xi , xi1 расположен по крайней мере один корень m xi , xi 1 . Далее, если положить m 1 2 xi xi 1 , то точность опреде- ления корня m равна m 1 2 xi 1 xi . Примечание. Вообще говоря, выполнение данного условия означает, что на интервале xi , xi 1 может быть произвольное количество корней. Более того, даже если f xi f xi 1 0 , на интервале могут быть корни. Поэтому успешность решения данной задачи зависит от удачного выбора шага сетки. На рисунке 1.2 приведена схема алгоритма отделения корней для равномерной сетки. На втором этапе уточняют значение найденного корня. Для этой цели можно использовать различные методы. Рассмотрим некоторые из них. 10 Отделение корней Ввод a, b, h x1 := a x2 := x1 + h y1 := f(x1) д а x2 < b н ет y2 := f(x2) д а y1*y2 ≤ 0 н ет Вывод x1, x2 x1 := x2 x2 := x1 + h y1 := y2 Конец Рис. 1.2 – Схема алгоритма отделения корней 1.2 Интервальные методы поиска корней 1.2.1 Метод перебора Пусть на интервале a, b расположен один корень. Требуется найти с точностью . Разобьём a, b на n равных частей: xi a i h, h b a n , i 0,..., n, где n b a , и вычислим значение функции fi f xi . Здесь h – шаг сетки. 11 Если для двух соседних точек выполняется неравенство fi fi 1 0 , то полагают 1 2 xi xi 1 . Погрешность составит h 2 2 . Схема алгоритма приведена на рисунке 1.3. Метод перебора Ввод a,b, x1=a x2=x1+ y1=f(x1) а дx2 b н ет y2=f(x2) а дy1*y2>0 x1=x2 н ет =(a+b)/2 Вывод , f() Конец Рис. 1.3 – Схема алгоритма метода перебора 1.2.2 Метод дихотомии (метод половинного деления) Пусть на a, b f x имеется один корень . Зададим точность . Вычисляем среднюю точку c 1 2 a b и значение функции f c . Если f c , то c – корень. Если f c , то рассматриваем два случая: 1) если f a f c 0 , то b c и повторяем процесс деления, либо 2) если f c f b 0 , то a c и повторяем процесс деления. 12 Так как за каждую итерацию интервал, где расположен корень, уменьшается в два раза, то через n итераций интервал будет равен bn an 1 b a , при этом an bn . 2n В качестве корня возьмем 1 bn an . Тогда погрешность опреде2 ления корня будет равна bn an / 2 . Если выполняется условие bn an / 2 , то процесс поиска заканчивается и (1.2) 1 bn an . 2 Метод дихотомии иллюстрирует рисунок 1.4. Сходимость метода линейная с коэффициентом 0.5 . Рис. 1.4 – Графическая интерпретация метода дихотомии 13 Пример 1. Методом половинного деления уточнить корень уравнения f x x 4 2 x3 x 1 0 до 2 верных знаков, лежащий на отрезке [0,1] . Решение. Последовательно имеем f 0 1; f 1 1; f 0 f 1 0; c 0.5; f 0.5 0.062 0.25 0.5 1 1.19; f 0.5 f 1 0; С учетом того, что корень лежит в интервале 0.5,1 , заданная точность до 2 верных знаков означает, что погрешность корня должна быть не более 0.01 (в широком смысле), т. е. 0.01 . Проверяем условие (1.2) 1 2 1 0.5 0.25 , следовательно, продолжаем процесс поиска корня: f 0.75 0.316 0.844 0.75 1 0.59; f 0.75 f 1 0; 1 2 1 0.75 0.125 ; c 0.875; f 0.875 0.59 1.34 0.88 1 0.05; f 0.75 f 0.875 0; 1 2 0.875 0.75 0.063 ; c 0.812; f 0.812 0.435 1.071 0.812 1 0.306; f 0.812 f 0.875 0; 1 2 0.875 0.812 0.031 ; c 0.8435 0.844; f 0.844 0.507 1.202 0.844 1 0.135; f 0.844 f 0.875 0; 1 2 0.875 0.844 0.016 ; c 0.859; f 0.859 0.544 1.268 0.859 1 0.047; f 0.859 f 0.875 0; 1 2 0.875 0.859 0.008 . 14 Таким образом, в качестве корня можно принять 1 2 0.859 0.875 0.867 0.87. 1.2.3 Метод хорд Метод хорд является более быстрым методом поиска корня. Суть его иллюстрируется на рисунках 1.5 и 1.6. f x 0 f x 0 а б Рис. 1.5 – Графическая иллюстрация метода хорд (конец b неподвижен) Пусть на интервале a, b имеется корень, т. е. f a f b 0 . Находим точку x1 по формуле: x1 a f a b a . f b f a Если выполняется условие f xn f b 0; n 1,2,..., (1.3) 15 то итерационный процесс строится по формуле: xn xn1 f xn1 b xn1 ; x0 a . f b f xn1 (1.4) Здесь b – неподвижный конец (см. рис. 1.5). f x 0 f x 0 а б Рис. 1.6 – Графическая иллюстрация метода хорд (конец a неподвижен) Если выполняется условие f xn f a 0; n 1,2,..., (1.5) то итерационный процесс строится по формуле: xn a f a xn1 a ; x0 b . f xn1 f a (1.6) Здесь a – неподвижный конец (см. рис. 1.6). На практике может встретиться ситуация, когда первая или вторая производная функции на интервале [a, b] меняют знак. В такой ситуации попеременно будут выполняться (1.3) и (1.5). Рассмотрим этот случай более подробно. Пусть сначала было выполнено условие (1.3). Итерационный процесс строим по формуле (1.4). Предположим, что при некотором n p условие (1.3) 16 не выполнено. В этом случае переходим к формуле (1.6), в которой a x p 1 , x0 x p . Далее, если при некотором n m будет нарушено условие (1.5) (в котором теперь a x p 1 ), то переходим опять к формуле (1.4), где полагаем b xm , x0 xm1 . Условие окончания процесса xn xn1 , где – заданная точность. Значение корня равно xn . Сходимость 1 метода хорд суперлинейная с коэффициентом m1 , где m1 min f ( x) , M1 max f ( x) . M1 Пример 2. Найти методом хорд положительный корень с точностью до 0.002 уравнения f x x3 0.2 x 2 0.2 x 1.2 на интервале 1,2 . Решение. Вычисляем значения функции f 1 0.6 0, f 2 5.6 0. Таким образом, [1,2] . Вычисляем x1 a f a 0.6 2 1.194; b a 1 f b f a 5.6 (0.6) f (1.194) 0.022. Так как f (1.194) f (2) 0 , то для вычисления приближений корня используем формулу (1.4): x2 1.194 0.022 2 1.194 1.197. 5.6 (0.022) Проверяем условие 1.197 1.194 0.003 . Продолжаем процесс. f (1.197) 0.011; x2 1.197 0.011 2 1.197 1.199; 5.6 (0.011) 17 1.199 1.197 0.002 . Процесс можно закончить. Ответ: 1.199 . 1.2.4 Метод золотого сечения Метод золотого сечения (см. рис. 1.7), так же как и метод дихотомии, относится к интервальным методам (или методам исключения интервалов). Рис. 1.7 – Графическая иллюстрация метода золотого сечения Точки деления интервала выбираются таким образом, чтобы выполнялось соотношение между интервалами: 1 2 ... k k 1 , 2 3 k 1 k 2 где 5 1 1.618 – золотое сечение, k bk ak – длина отрезка. 2 Представим алгоритм поиска нулей в форме последовательного выполнения итераций. Задаем точки a1 a , b1 b , номер итерации k 1 . 18 Шаг 1. Определяем координаты золотого сечения: k ; ck ak k 2 ak 2k ; d k ak k 1 ak 1 1; 1 ( 1)2 . 2 1 Вычисляем точку xk (ak bk ) . 2 Шаг 2. Вычисляем значения функции f (ak ) , f (ck ) , f ( d k ) , f (bk ) и проверяем условия: а) если f (ak ) f (d k ) 0 , то ak 1 ak ; bk 1 d k ; б) если f (сk ) f (bk ) 0 , то ak 1 сk ; bk 1 bk ; 1 Вычисляем новое приближение корня xk 1 (ak 1 bk 1 ) . Если 2 1 (bk 1 ak 1 ) , то конец, иначе k k 1 и переход на шаг 1. 2 Скорость сходимости линейная с коэффициентом 1 . Пример 3. Найти нуль функции f ( x) e x 1 на интервале [0.1,0.9] x с точностью 0.05 методом золотого сечения. Решение. 2 Вычисляем интервалы 1 b1 a1 0.9 0.1 0.8; 1 0.4944 ; 3 1 ( 1)2 0.3055. Задаем координаты золотого се чения: c1 a1 3 0.1 0.3056 0.4056; d1 a1 2 0.1 0.4944 0.5944. Вычисляем значения функции в точках золотого сечения: f (a1 ) 8.8948; f (c1 ) 0.9655; f (d1 ) 0.1297; f (b1 ) 1.3485. 19 Определяем интервал, в котором расположен корень: f (a1 ) f (d1 ) 0 , поэтому a2 a1 0.1; b2 d1 0.5944. Проверяем условие останова: 2 / 2 0.2472 , т. е. точность не достигнута. Вычисляем новые точки золотого сечения 3 0.3056; 4 2 ( 1)2 0.1889; c2 a2 4 0.1 0.1889 0.2889; d 2 a2 3 0.1 0.3056 0.4056. Вычисляем значения функции в точках: f (a2 ) 8.8948; f (c2 ) 2.1271; f (d 2 ) 0.9655; f (b2 ) 0.1297. Определяем интервал, в котором расположен корень: f (c2 ) f (b2 ) 0 , поэтому a3 c2 0.2889; b3 b2 0.5944. Проверяем условие останова: 3 / 2 0.1528 . Не выполнено. Продолжаем вычисления. 4 0.1889; 5 3 ( 1)2 0.1167; c3 a3 5 0.2889 0.1167 0.4056; d3 a3 4 0.2889 0.1889 0.4777. f (a3 ) 2.1271; f (c3 ) 0.9655; f (d3 ) 0.4809; f (b3 ) 0.1297. Определяем интервал, в котором расположен корень: f (c3 ) f (b3 ) 0 , поэтому a4 c3 0.4056; b4 b3 0.5944. Проверяем условие останова: 4 / 2 0.0944 . Не выполнено. Продолжаем вычисления. 5 0.1167; 6 4 ( 1)2 0.0721; c4 a4 6 0.4056 0.0721 0.4777; d 4 a4 5 0.4056 0.1167 0.5223. f (a4 ) 0.9655; f (c4 ) 0.4809; f (d 4 ) 0.2288; f (b4 ) 0.1297. Определяем интервал, в котором расположен корень: f (c4 ) f (b4 ) 0 , поэтому a5 c4 0.4777; b5 b4 0.5944. 20 Проверяем условие останова: 5 / 2 0.0584 . Не выполнено. Продолжаем вычисления. 6 0.0721; 7 4 ( 1)2 0.0446; c5 a5 7 0.4777 0.0446 0.5223; d5 a5 6 0.4777 0.0721 0.5498. f (a5 ) 0.4809; f (c5 ) 0.2288; f (d5 ) 0.0857; f (b5 ) 0.1297. Определяем интервал, в котором расположен корень: f (c5 ) f (b5 ) 0 , поэтому a6 c5 0.5223; b6 b5 0.5944. Проверяем условие останова: 6 / 2 0.0361 ; (b6 a6 ) / 2 0.5584 0.56 . 1.3 Итерационные методы поиска корней 1.3.1 Метод Ньютона Итерационный процесс выполняется по следующей схеме: xn xn1 f xn1 ; n 1,2,... , f xn1 (1.7) при этом в качестве x0 берется либо точка a , либо точка b . Если известна вторая производная f ( x ), то точка x0 выбирается в соответствии со следующим условием: а) если f a f a 0 , то x0 a ; б) если f b f b 0 , то x0 b . Если f ( x ) неизвестна, то поступают следующим образом. Задают x0 a и проводят вычисления x1 по формуле (1.7). Если x1 удовлетворяет условию с) a x1 b , то продолжают вычислять приближения x2 , x3 , x4 ,...xn . 21 Если условие (с) не выполняется, то задают x0 b и далее по формуле (1.7) проводят вычисления xi , i 1, 2,... Вычисления заканчивают при выполнении двух условий: xn xn1 , f ( xn ) 1, где , 1 – заданные числа. В качестве корня берут xn . Геометрическая интерпретация метода Ньютона показана на рисунке 1.8. Рис. 1.8 – Геометрическая интерпретация метода Ньютона Отметим, что приведенный алгоритм поиска корня может расходиться. Например, для функции f ( x) sin x на интервале [ / 6,11 / 6] 22 корень (см. рис. 1.9). Однако алгоритм метода Ньютона для этой функции не пригоден. Действительно, пусть x0 a / 6 . Тогда первое приближение равно: x1 sin( / 6) 0.054, 6 cos( / 6) т. е. мы вышли за границы интервала [ / 6,11 / 6]. Аналогичная ситуация будет, если за x0 взять правую границу x0 b 11 / 6 . a a π π ; b 11 6 6 b Рис. 1.9 – Пример расходимости алгоритма Ньютона Скорость сходимости метода Ньютона квадратичная с коэффициентом M2 , где M 2 max f ( x) ; m1 min f ( x) . 2m1 Пример 4. Найти методом Ньютона нуль функции f ( x) x sin x 1 на интервале [0, / 2] с точностью 0.01 . Решение. f ( x) sin x x cos x . Возьмем x0 / 2 и вычислим первое приближение: x1 x0 f ( / 2) 1.571 ( / 2) 0.571 . f ( / 2) 1.571 Значение x1 не выходит за границы интервала [0, / 2] , поэтому продолжаем вычислять приближения корня по формуле (1.7). Сначала проверим 23 условие завершения процесса 0.571 1.571 1 . Так как условие не выполнено, то продолжаем процесс вычислений корня. f (0.571) 0.691 0.571 1.248 ; f (0.571) 1.021 x2 0.571 1.248 0.571 0.677 ; f (1.248) 0.184 1.248 1.111; f (1.248) 1.344 x3 1.248 1.111 1.248 0.137 ; x4 1.111 f (1.111) 0.004 1.111 1.114 ; f (1.111) 1.389 1.114 1.111 0.003 ; Проверяем также условие f (1.114) 0.0002 . Ответ: 1.11. 1.3.2 Метод итераций Одним из наиболее эффективных способов численного решения уравнений является метод итерации. Сущность этого метода заключается в замене исходного уравнения f x 0 на эквивалентное x x . (1.8) Итерационный процесс имеет вид: xn xn1 , n 1,2,... (1.9) Останов процесса осуществляется по критерию xn xn1 1 q , q где – заданная точность; q max ( x) 1 . Сходимость сходимости q . метода итерации линейная с коэффициентом 24 Геометрически способ итерации может быть пояснен следующим образом (см. рис. 1.10). Построим на плоскости XOY графики функции y x и y ( x) . Каждый действительный корень уравнения (1.8) явля- ется абсциссой точки пересечения М кривой y ( x) с прямой y x . Рис. 1.10 – Сходящийся итерационный процесс ( ( x) 1 ) Отправляясь от некоторой точки A0 ( x0 , ( x0 )) , строим ломаную линию A0 B1 A1 B2 A2 ... («лестница»), звенья которой попеременно параллельны оси OX и оси OY , вершины A0 , A1 , A2 ,... лежат на кривой y ( x) , а вершины B1 , B2 , B3 ,... лежат на прямой y x . Общие абсциссы точек A1 и B1 , A2 и B2 , и т. д., очевидно, представляют собой соответственно последовательные приближения x1 , x2 ,... корня . Возможен также другой вид ломаной A0 B1 A1 B2 A2 ... («спираль»). Легко сообразить, что решение в виде «лестницы» получается, если производная ( x) положительна, а решение в виде «спирали», если ( x) отрицательна. На рисунке 1.10 кривая y ( x) в окрестности корня – пологая, т. е. ( x) 1 , и процесс итерации сходится. Однако если рассмотреть 25 случай ( x) 1 , то процесс итерации будет расходиться (рис. 1.11). Поэтому для практического применения метода итерации нужно выяснить достаточные условия сходимости итерационного процесса. Рис. 1.11 – Расходящийся итерационный процесс ( ( x) 1 ) Теорема. Пусть функция x определена и дифференцируема на отрезке [a, b] , причем все ее значения x [a, b] , и пусть | x | q 1 при x [a, b] . Тогда процесс итерации xn xn1 сходится независимо от начального значения x0 [a, b] и предельное значение lim xn является единственным корнем уравнения x x на отрезке k [ a , b] . Рассмотрим способ задания функции ( x) . Перепишем (1.8) в форме x x f x , (1.10) где 1 / M 1 , M 1 max f ( x) . a x b Таким образом, из (1.10) имеем ( x) x f ( x) . Если f ( x) 0 , то ( x) x f ( x) . Пример 5. Найти методом итерации нуль функции f ( x) x ln x на интервале [0.1,0.7] с точностью 0.01 . 26 ( x) x ( x ln x); 1 / M 1; Решение. M1 max f ( x) max 1 1 11 . x В результате получим ( x) x x ln x x 0.0909( x ln x). 11 Проверим условие сходимости 1 ( x) 1 0.0909 1 ; max ( x) 0.78 1 , x следовательно, процесс будет сходиться. Вычислим параметр точности 1 q 0.003 . q Возьмем x0 0.7 и вычислим x1 и x2 . x1 0.7 0.0909(0.7 0.3567) 0.6688; x2 0.6688 0.0909(0.6688 0.4023) 0.6446 . Проверим условие останова x2 x1 0.024 . Продолжаем вычисления дальше x3 0.6446 0.0909(0.6446 0.4391) 0.6259; x3 x2 0.019 ; x4 0.6259 0.0909(0.6259 0.4686) 0.6116; x4 x3 0.014 ; x5 0.6116 0.0909(0.6116 0.4917) 0.6001; x5 x4 0.011 ; x6 0.6001 0.0909(0.6001 0.5106) 0.5920 ; x6 x5 0.008 ; … x10 0.5777 0.0909(0.5777 0.5487) 0.5751; 27 x10 x9 0.003 . Ответ: x10 0.575 . 1.4 Комбинированный метод Этот метод является композицией двух методов – метода хорд и метода Ньютона и позволяет значительно ускорить процесс поиска корня уравнения (1.1). Пусть на отрезке [a, b] расположен один корень, т. е. f (a) f (b) 0 . Предположим, что f ( x) и f ( x ) существуют и сохраняют свои знаки. Итерационный процесс выполняется по следующим формулам: а) если f (b) f (b) 0 , то xn1 xn b b n n1 Критерий останова: f xn bn xn ; x0 a0 a; b0 b; f bn f xn f bn1 f bn1 либо bn bn1 . f bn1 f b0 (1.11) 1 1 (bn xn ) ; ( xn bn ) ; 2 2 б) если f (a ) f ( a ) 0 , то xn1 an a a n 1 n Критерий останова: f an xn an , x0 b0 b; a0 a; f xn f an f an1 f an1 либо an an1 . f an1 f a0 (1.12) 1 1 ( xn an ) ; (an xn ) . 2 2 В формулах (1.11) для метода хорд конец b неподвижен и для ускорения процесса поиска корня конец b двигаем влево по методу Ньютона. В формулах (1.12) ситуация обратная – двигаем конец a вправо по формуле Ньютона. 28 Геометрическая схема комбинированного метода дана на рисунке 1.12. f ( x1 ) x0=a x1 x2 a0 a1 b2 b1 b0=b x0=b x1 f ( x1 ) Рис. 1.12 – Геометрическая интерпретация комбинированного метода Пример 6. Найти комбинированным методом корень уравнения f ( x) x5 x 0.2 0 на интервале [1,1.1] с точностью 0.0005 . Решение. Проверим наличие корня: f (1) f (1.1) 0 , следовательно, корень f (1) 0.2 ; f (1.1) 0.3105 ; существует. Вычислим производные f ( x) 5 x 4 1 , f ( x) 20 x3 . Итак, на интервале [1,1.1] f ( x) и f ( x ) сохраняют знаки, причем f ( x) 0 и f ( x ) 0 . Далее, так как f (1.1) f (1.1) 0 , то вычисления проводим по формулам (1.11): x0 a 1; b0 b 1.1; f (b0 ) 6.3205 ; x1 x0 f x0 b0 x0 0.2(1.1 1) 1 1.03917; f b0 f x0 6.3205 b1 b0 f b0 0.3105 1.1 1.05087. f b0 6.3205 Проверяем условие останова: (b1 x1 ) / 2 (1.05087 1.03917) / 2 0.00585 . Точность не достигнута, продолжаем вычисления. f ( x1 ) f (1.03917) 0.02736 ; f (b1 ) f (1.05087) 0.0307 ; f (b1 ) f (1.05087) 5.0977 ; 29 x2 x1 f x1 b1 x1 0.02736 1 (1.05087 f b1 f x1 0.0307 (0.02736) 1.03917) 1.04468; b2 b1 f b1 0.0307 1.05087 1.04485. f b1 5.0977 (b2 x2 ) / 2 (1.04485 1.04468) / 2 0.000085 . 1 Ответ: ( x2 b2 ) 1.0448 . 2 1.5 Задачи для самостоятельного решения 1. Найти корень методом половинного деления с точностью 1% уравнения f ( x) 2 x cos x на интервале 0, 2 . 2. Определить максимальное количество итераций метода перебора поиска корня с точностью на интервале [a, b] . 3. Определить количество итераций метода половинного деления поиска корня с точностью на интервале [a, b] . 4. Найти корень методом хорд с точностью до 0.001 функции f ( x) x 4 2 x3 x 1 на интервале [0,1] . 5. Найти нуль функции f ( x) x ln x с тремя верными знаками на интервале (0.2, 0.9) методом хорд. 6. Найти методом Ньютона корень с четырьмя верными знаками уравнения f ( x) x 10sin x 0 на интервале [ / 2,11 /12] . 7. Найти нуль функции f ( x) x ln x комбинированным методом с тремя верными знаками на интервале [0.2,0.9] . 8. Методом золотого сечения найти корень уравнения 2 x cos x 0 на интервале [0, / 2] с точностью 0.001 . 9. Определить максимальное количество итераций метода золотого сечения поиска корня с точностью на интервале [a, b] . 30 10. Найти нуль функции f ( x) sin x 0.2 x на интервале [ / 2, ] с точностью 0.001 методом итераций. 11. Найти максимальное количество итераций n метода итераций поиска корня на интервале [a, b] с точностью . 31 2 РЕШЕНИЕ ЗАДАЧ ЛИНЕЙНОЙ АЛГЕБРЫ 2.1 Методы решения систем линейных уравнений Пусть дана система a11 x1 a12 x2 .. a1n xn b1; a x a x .. a x b ; 21 1 22 2 2n n 2 an1 x1 an 2 x2 .. ann xn bn , (2.1) или, в матричном виде, Ax b. Введем обозначение ai ,n1 bi . 2.1.1 Метод Гаусса Метод Гаусса – это метод последовательного исключения неизвестных. Суть его состоит в преобразовании (2.1) к системе с треугольной матрицей, из которой затем последовательно (обратным ходом) получаются значения всех неизвестных. Рассмотрим одну из вычислительных схем. Эта схема называется схемой единственного деления. Пусть a11 0 (ведущий элемент). Этап 1 Приводим систему к треугольному виду: mi ,1 ai ,1 / a1,1 , Шаг 1: ai(1) , j ai , j mi ,1a1, j , bi(1) bi mi ,1b1 , i, j 2,3,..., n. i 2,3,..., n 32 (1) mi ,2 ai(1) ,2 / a2,2 , Шаг 2: i 3,4,..., n (1) (1) ai(2) , j ai , j mi ,2 a2, j , bi(2) bi(1) mi ,2b2(1) , i, j 3,4,..., n. mn ,n1 an( n,n2)1 / an( n1,2)n1 , Шаг (n 1) : an( n,n1) an( n,n2) mn ,n 1an( n1,2)n , bn( n1) bn( n2) mn ,n1bn( n12) . Этап 1 можно представить в следующем виде: mi ,k ai(,kk1) / ak( k,k1) , k 1,2,3,4,..., n 1 ai(,kj) ai(,kj1) mi ,k ak( k, j1) , bi( k ) bi( k 1) mi ,k bk( k 1) , i, j k 1, k 2,..., n. где k – номер шага; a1,(0)j a1, j , b1(0) b1 . Этап 2 Вычисляем неизвестные: ( n 1) xn bn( n1) / ann , ( ni 1) i ( ni 1) xni ( ni 1) bni ani ,n j xn j , ani ,ni j 0 i 1,2,..., n 1. 1 Этап 3 n Для проверки вычисляем невязку e , где ei aik xk bi , i 1,..., n. k 1 Если решение верное, то невязка будет равна нулю или очень малой величиной. 33 Пример 1. Решить систему методом Гаусса. 7 x1 2 x2 3x3 15; 5 x1 3x2 2 x3 15; 10 x 11x 5 x 36. 2 3 1 Решение. Результаты прямого хода выпишем в таблицу. A A1 A2 x1 x2 x3 b 7 2 3 15 5 –3 2 15 10 –11 5 36 7 2 3 15 0 –31/7 –1/7 30/7 0 –97/7 5/7 102/7 7 2 3 15 0 –31/7 –1/7 30/7 0 0 36/31 36/31 Обратный ход: x3 1; x2 30 1 15 2 3 1 1; x1 1 1 2 . 31 31 7 7 7 2.1.2 Метод ортогонализации В основе метода лежит теорема. Всякую действительную неособенную матрицу A можно представить в виде произведения матрицы с ортогональными столбцами R и верхней треугольной матрицы T с единичной диагональю. Представим матрицу системы (2.1) Ax b в виде произведения A R T , (2.2) 34 где R – матрица с ортогональными столбцами; T – верхняя треугольная матрица с единичной диагональю. Столбцы матрицы R и элементы матрицы T вычисляются по следующим формулам: i 1 r1 a1; r2 a2 t12 r1; ri ai tki rk ; tij k 1 r a ; i j. i j ri ri (2.3) Подставим (2.2) в (2.1), получим RTx b . Отсюда с учетом ортогональности матрицы R имеем Tx D 1R Tb или Tx y, где D diag d ,..., d 1 1 1 1 n ; (2.4) n y D R b ; di rik2 . Система (2.4) имеет тре1 T k 1 угольный вид и легко решается: xn yn ; xn1 yn1 tn1,n xn ; (2.5) i xni yni tnk ,nk 1 xnk 1 , i 1,..., n 1. k 1 Пример 2. Решить систему методом ортогонализации. x1 x2 2 x3 6; 2 x1 3x2 7 x3 16; 5 x1 2 x2 x3 16. Решение. Представим матрицу системы в виде 1 1 2 r11 r12 2 3 7 r r 21 22 5 2 1 r r 31 32 r13 1 t12 r23 0 1 r33 0 0 t13 t23 . 1 По формулам (2.3) найдем столбцы матрицы R и элементы матрицы T . r1 (1,2,5); ( r1 r1 ) 30; (r1 a2 ) 17; t12 17 . 30 35 (r1 a3 ) 11; t13 11 ; 30 17 17 13 56 25 17 r2 a2 t12 r1 1 ,3 2 ,2 5 , , ; 30 30 30 30 30 30 (r2 r2 ) 3930 443 30 443 443 ; (r2 a3 ) ; t23 ; 900 30 3930 131 r3 a3 t13 r1 t23 r2 (2 11 / 30 13 443 / 3930, 7 2 11 / 30 22 6 2 56 443 / 3930, 1 5 11 / 30 25 443 / 3930) , , . 131 131 131 Таким образом, для матрицы R и T получили 13 1 30 56 R 2 30 5 25 30 Получим 22 17 1 131 30 6 ; T 0 1 131 2 0 0 131 элементы матрицы 11 30 443 . 131 1 131 4 D R T R diag 30, , 30 131 1 30 131 , и D 1 diag , . Вычислим вектор y : 30 131 4 1 118 0 0 30 1 30 2 5 6 30 13 56 25 574 1 T . yD R b 0 0 16 30 131 30 30 131 16 131 22 6 2 1 0 0 4 131 131 131 Вычислим вектор x по формулам (2.5): 574 443 131 1 1; 131 131 131 118 17 11 90 x1 1 1 3. 30 30 30 30 x3 1; x2 36 2.1.3 Метод декомпозиции (схема Халецкого) Пусть имеем систему: Ax d , (2.6) где A – квадратная матрица размерности n n ; x, d – n -мерные векторы. Разложим A на две треугольные матрицы B и C A B C, (2.7) где C – верхняя треугольная матрица с диагональными элементами, равными единице; B – нижняя треугольная матрица. Элементы bij и cij вычисляются по следующим формулам: j 1 bi1 ai1; bij aij bik ckj , (i j 1); k 1 a 1 c1i 1i ; cij b11 bii i 1 aij bik ckj , 1 i j. k 1 (2.8) Важно соблюдать порядок вычислений: сначала вычисляется первый столбец матрицы B , затем первая строка матрицы C , далее второй столбец матрицы B , вторая строка матрицы C и т. д. Подставим (2.7) в (2.6). В результате исходная система теперь может быть представлена как две треугольные системы By d ; Cx y, которые легко решаются: i 1 d1 1 y1 ; yi di bik yk ; i 2,3,..., n; b11 bii k 1 xn yn ; xi yi n c k i 1 ik xk ; i n 1, n 2,...,1. (2.9) 37 Пример 3. Найти решение системы методом Халецкого. 5 x1 8 x2 x3 2; 3x1 2 x2 6 x3 7; 2 x1 x2 x3 5. Решение. Имеем 5 8 1 2 A 3 2 6 ; d 7 . 2 1 1 5 По формулам (2.8) вычисляем элементы матриц B и C : b11 a11 5; c11 a11 b11 1; b21 a21 3; c12 a12 b11 8 5; b31 a31 2; c13 1 5; b22 a22 b21 c12 2 (3 8 5) 34 5; b32 a32 b31 c12 1 (2 8 5) 11 5 2.2; c22 1; c23 1 b22 (a23 b21 c13 ) ( 5 34) (6 3 1 5) 27 34; c33 1; b33 a33 (b31 c13 b32 c23 ) 1 (2 1 5 (11 5) ( 27 34)) 107 34. Итак, получили: 0 0 1/ 5 5 1 8 / 5 B 3 34 / 5 0 ; C 0 1 27 / 34 . 2 11 / 5 107 / 34 0 0 1 По формулам (2.9) вычисляем вектор y : y1 d1 b11 2 5; y2 1 b22 (d 2 b21 y1 ) ( 5 34) (7 3 2 5) 41 34; y3 (1 b33 ) (d3 b31 y1 b32 y2 ) ( 34 107) (5 2 2 5 (11 5) (41 34)) ( 34 107) (107 34) 1. Окончательный результат: y (2 5,41 34,1)T . 38 Вычисляем вектор решения x : x3 y3 1; x2 y2 c23 x3 (41 34) ( 27 34 1) 68 34 2; x1 y1 c12 x2 c13 x3 2 5 (8 5) 2 (1 5) 1 3. Ответ: x (3,2,1)T . 2.1.4 Метод простой итерации При большом числе неизвестных схема Гаусса, дающая точное решение, становится весьма сложной. В этом случае для нахождения корней системы используют приближенные методы. Одним из приближенных методов является метод простой итерации. Пусть дана линейная система (2.1), которую запишем в матричном виде: Ax b . (2.10) Предположим, что диагональные коэффициенты aii 0, i 1,..., n. Разрешим первое уравнение системы (2.1) относительно x1 , второе относительно x2 и т. д. Тогда получим эквивалентную систему x1 1 12 x2 13 x3 ... 1n xn ; x2 2 21 x1 23 x3 ... 2 n xn ; ........................................................ xn n n1 x1 n 2 x2 ... nn1 xn1 , где i bi / aii ; ij aij / aii ; i j; ii 0 . Введем матрицы 11 12 22 21 . . n1 n 2 . 1n 1 . 2n ; 2 . . . . . nn n (2.11) 39 Систему (2.11) можем записать в матричной форме: x x. (2.12) Систему (2.12) будем решать методом последовательных приближений. За нулевое приближение принимаем столбец свободных членов x(0) . Далее последовательно находим решения x(1) x(0) (первое приближение); x(2) x(1) (второе приближение) и т. д. Тогда (k 1) -е приближение вычисляется по формуле x( k 1) x( k ) ; k 1,2,... (2.13) Критерий завершения процесса (14) имеет вид x ( k 1) x( k ) 1 , (2.14) где – заданная точность. В методе простой итерации можно предварительно оценить число шагов, необходимых для достижения заданной точности , исходя из сле- дующей формулы: . Отсюда следует 1 n1 n lg[ (1 )] lg 1. lg (2.15) Пример 4. Методом простой итерации решить систему уравнений 10 x1 x2 x3 12; 2 x1 10 x2 x3 13; 2 x 2 x 10 x 14 2 3 1 с точностью до 0.01 . 40 Решение. Приведем эту систему к эквивалентному виду, удобному для итерации x1 1.2 0.1x2 0.1x3 ; x2 1.3 0.2 x1 0.1x3 ; x 1.4 0.2 x 0.2 x . 1 2 3 (2.16) Оценим норму матрицы max ij 0.4 и величину i В качестве j 1 0.015 . нулевого приближения решения x(0) (1.2, 1.3, 1.4). Оценим количество шагов: n lg[0.01(1 0.4) / 1.4] 1 4. lg0.4 Подставим x (0) в (2.16), получим: x1(1) 1.2 0.1 1.3 0.1 1.4 0.93; (1) x2 1.3 0.2 1.2 0.1 1.4 0.92; (1) x3 1.4 0.2 1.2 0.2 1.3 0.9. x(1) x(0) max xi(1) xi(0) x3(1) x3(0) 0.5 . i Продолжим вычисления: x1(2) 1.2 0.1 0.92 0.1 0.9 1.018; (2) x2 1.3 0.2 0.93 0.1 0.9 1.024; (2) x3 1.4 0.2 0.93 0.2 0.92 1.03. x(2) x(1) x3(2) x3(1) 0.13 . x1(3) 1.2 0.1 1.024 0.1 1.03 0.9946; (3) x2 1.3 0.2 1.018 0.1 1.03 0.9934; (3) x3 1.4 0.2 1.018 0.2 1.024 0.9916. x(3) x(2) x3(3) x3(2) 0.0384 . возьмем 41 x1(4) 1.2 0.1 0.9934 0.1 0.9916 1.0015; (4) x2 1.3 0.2 0.9946 0.1 0.9916 1.00192; (4) x3 1.4 0.2 0.9946 0.2 0.9934 1.0024. x (4) x (3) x3(4) x3(3) 0.0108 . В качестве корня берем x x(4) (1.002, 1.002, 1.002)T . Точное решение x (1, 1, 1)T . 2.1.5 Метод Зейделя Метод Зейделя представляет собой некоторую модификацию метода простой итерации. Основная идея заключается в том, что при вычислении (k 1) -го приближения неизвестной xi учитываются уже вычисленные ра- нее (k 1) -е приближения неизвестных x1 , x2 , ... xi 1 . Пусть дана приведенная линейная система n xi i ij x j ; i 1, 2, ... , n . j 1 Зададим начальное приближение корней x1(0) , x2(0) ,..., xn(0) . Далее, предполагая что k-е приближение xi( k ) корней известно, согласно Зейделю, будем строить (k 1) -е приближение корней по следующим формулам: ( k 1) 1 x n 1 1 j x(jk ) ; j 1 n x2( k 1) 2 21 x1( k 1) 2 j x(jk ) ; j 2 --------------------------------------------------( k 1) i x i 1 i ij x j 1 ( k 1) j n ij x(jk ) ; j i --------------------------------------------------- (2.17) 42 ( k 1) n x n n nj x(jk 1) nn xn( k ) ; k 0,1,2,... j 1 Достаточные условия сходимости метода Зейделя такие же, как для метода простых итераций, т. е. 1 . Обычно метод Зейделя дает лучшую сходимость, чем метод простых итераций, но он приводит к более громоздким вычислениям. Если предварительно привести исходную систему Ax b к нормальному виду AT Ax ATb или Cx g , (2.18) где C = AT A, g ATb , то процесс Зейделя будет сходиться для любой матрицы A (т. е. любой матрицы независимо от величины ее нормы). Пример 5. Методом Зейделя решить систему уравнений 10 x1 x2 x3 12; 2 x1 10 x2 x3 13; 2 x 2 x 10 x 14 2 3 1 с точностью до 0.01 . Эту систему мы уже решали методом простых итераций и приводим здесь решение методом Зейделя для сравнения скорости сходимости. Решение. Приведем эту систему к эквивалентному виду x1 1.2 0.1x2 0.1x3 ; x x x2 1.3 0.2 x1 0.1x3 ; x 1.4 0.2 x 0.2 x . 1 2 3 В качестве нулевого приближения решения берем x(0) (1.2, 1.3, 1.4)T . 43 Применяя метод Зейделя, последовательно получим: x1(1) 1.2 0.1 1.3 0.1 1.4 0.93; (1) x2 1.3 0.2 0.93 0.1 1.4 0.974; (1) x3 1.4 0.2 0.93 0.2 0.974 1.0192. x1(2) 1.2 0.1 0.974 0.1 1.0192 1.0007; (2) x2 1.3 0.2 1.00068 0.1 1.0192 0.9979; (2) x3 1.4 0.2 1.0007 0.2 0.9979 1.0003. x1(3) 1.2 0.1 0.9979 0.1 1.0003 1.0002 (3) x2 1.3 0.2 1.0002 0.1 1.0003 0.9999; (3) x3 1.4 0.2 1.0002 0.2 0.9999 1.0000. Таким образом, уже на третьей итерации мы получили искомое решение, так как x (3) x (2) x2(3) x2(2) 0.002 . 2.2 Решение переопределенной системы При обработке данных эксперимента часто приходится иметь дело с переопределенными системами линейных алгебраических уравнений, т. е. с системами, в которых число уравнений больше числа неизвестных. Пусть дана система Ax b, (2.19) где A (n m) – матрица, причем n m ; x – m -мерный вектор неизвестных; b – n -мерный вектор правой части. Если n m , то есть число уравнений больше числа неизвестных, то говорят, что система (2.19) переопределена. 44 Для решения переопределенной СЛАУ используют метод наименьших квадратов (МНК). Идея его состоит в минимизации суммы квадратов невязок 2 m Q bi aij x j . i 1 j 1 n (2.20) Из необходимого условия минимума (24) Q 0, k 1,..., n xk получим систему уравнений с квадратной матрицей n n aij aik xk aij bi или k 1 i 1 i 1 m m c k 1 jk xk g j , j 1,..., m. (2.21) В матричной форме система (2.21) имеет вид (2.18). Система (2.21) решается любым известным методом. Пример 6. Найти решение системы: x1 x2 2; x1 x2 0.5; 3 x1 4 x2 1; 5 x1 3 x2 2. Решение. 1 1 1 1 ; A 3 4 5 3 1 1 3 5 AT ; 1 1 4 3 36 27 C AT A ; 27 27 (2.22) 45 2 1 1 3 5 0.5 9.5 T g A b . 1 1 4 3 1 0.5 2 В результате, вместо (2.22), мы получили систему 36 x1 27 x2 9.5; 27 x1 27 x2 0.5. (2.23) Решение системы (2.23) x (1, 0.981)T . 2.3 Вычисление определителей Определение. Определителем называется алгебраическая сумма всевозможных произведений элементов, взятых по одному из каждого столбца и каждой строки матрицы A . Если в каждом таком произведении (члене определителя) множители расположены в порядке следования столбцов (т. е. вторые индексы элементов aij в произведении расположены в порядке возрастания), то со знаком (+) берутся те произведения, у которых перестановка первых индексов чётная, а со знаком (–) те, у которых она нечетная. a11 a12 det A A a21 a22 an1 an 2 a1n i ,...,i a2 n 1 1 n ai11 ai2 2 ainn . ann Здесь i1, i2 ,..., in – число инверсий в перестановке индексов i1 , i2 ,..., in . Пример 7. Пусть дан ряд из натуральных чисел 2, 5, 1, 4, 7, 3, 6. Число инверсий в этом ряде равно [2, 5, 1, 4, 7, 3, 6] = 2 + 0 + 3 + 1 + 0 + 1 = 7, т. е. нечётное число, следовательно, имеем нечётную перестановку. Для ряда 5, 2, 1, 6, 7, 4, 3 имеем: [5, 2, 1, 6, 7, 4, 3] = 2 + 1 + 4 + 3 + 0 + 0 = 10, т. е. чётная перестановка. 46 Пример 8. Определители 2-го и 3-го порядка равны a12 a A 11 ; det A a11 a22 a21 a12 . a a 21 22 a11 a12 A a21 a22 a 31 a32 a13 a23 ; a33 det A a11 a22 a33 a31 a12 a23 a21 a32 a13 a31 a22 a13 a11 a32 a23 a21 a12 a33. Доказать следующие свойства определителя, используя его определение (самостоятельно): Если матрицу транспонировать, то определитель не изменится. Если все элементы строки (или столбца) умножить на одно и то же число, то определитель умножается на это число. Если переставить две строки (два столбца) определителя, то он изменит свой знак; в частности, если 2 строки (два столбца) определителя равны, то определитель равен нулю. Если каждый элемент некоторой строки (столбца) определителя представлен в виде суммы двух слагаемых, то определитель равен сумме двух определителей, у которых все строки (столбцы) кроме данной, прежние, а в данной строке (столбце) в первом определителе стоят первые, а во втором – вторые слагаемые. Если одна строка (столбец) является линейной комбинацией остальных строк (столбцов), то определитель равен нулю. Определитель произведения двух матриц равен произведению определителей этих матриц ( det( B C ) det B det C ). Определитель треугольной матрицы равен произведению диагональных элементов. 47 Пример 9. Доказать следующее тождество: a1 b1 x a1 b1 x c1 a1 b1 a2 b2 x a2 b2 x c2 2 x a2 b2 a3 b3 x a3 b3 x c3 a3 b3 c1 c2 . c3 Решение. Доказательство рассмотрим на примере i -й строки: (ai bi x, ai bi x, ci ) (ai , ai bi x, ci ) (bi x, ai bi x, ci ) (ai , ai , ci ) (ai , bi x, ci ) (bi x, ai , ci ) (bi x, bi x, ci ) 0 (ai , bi x, ci ) (ai , bi x, ci ) 0 2 (ai , bi x, ci ). В результате получим: a1 det 2 a2 a3 xb1 xb2 xb3 c1 a1 b1 c2 2 x a2 b2 c3 a3 b3 c1 c2 . c3 Метод Гаусса. При решении системы линейных алгебраических уравнений методом Гаусса матрица системы приводится к треугольному виду A( n1) . Определитель треугольной матрицы A( n1) равен произведению диагональных элементов. Таким образом, получим: (1) (2) ( n1) det A a11(0) a22 a33 ann , где a11(0) a11 . Элементы промежуточных матриц вычисляем по формулам: mik aik( k 1) / akk( k 1) , k 1,2,3,4,..., n 1 aij( k ) aij( k 1) mik akj( k 1) , i, j k 1, k 2,..., n, где k – номер шага. Пример 10. Вычислить определитель 3 4 5 D 1 2 3. 8 7 1 48 Решение. (1) m21 1/ 3; a11 3; a22 a22 m21a12 2 (1/ 3) 4 2 / 3; (1) m31 8 / 3; a32 a32 m31a12 7 (8 / 3) 4 11/ 3; (1) a33 a33 m31a13 1 (8 / 3) 5 37 / 3; 2 (1) (1) m32 11 / 2; a33 a33 m32 a23 37 / 3 (11 / 2) (4 / 3) 15 / 3 5. 2 2 D a11 a122 a33 3 (5) 10. 3 Метод декомпозиции основан на разложении исходной матрицы A на произведение треугольных матриц A B C , где B – нижняя треугольная матрица, C – верхняя треугольная матрица с единичной диагональю (см. формулы (2.8)). Определитель матрицы A будет равен n det A det B det C det B bii . i 1 Пример 11. Вычислить определитель методом декомпозиции 1 2 3 D 4 5 6. 7 8 9 Решение. Вычисляем элементы матриц B и C : b11 a11 1; b21 4; b31 7; c11 1; c12 2; c13 3; b22 a22 b21c12 5 4 2 3; b32 a32 b31c12 8 7 2 6; c22 1; c23 1 (a23 b21c13 ) 1 / (3) (6 4 3) 2; b22 b33 a33 b31c13 b32c23 9 7 3 (6) 2 9 21 12 0. 49 Вычисляем определитель det A b11 b22 b33 1 (3) 0 0. 2.4 Вычисление обратной матрицы Для построения численных схем вычисления обратных матриц будем использовать соотношение A A1 E , где E – единичная матрица. Пусть A – неособенная матрица (n n) и пусть X A1 . Тогда имеем A X E . (2.24) Если обозначить столбцы матрицы X за x1 , x2 ,..., xn , а столбцы матрицы E за e1 , e2 ,..., en , то (2.24) можно переписать в виде n систем линейных алгебраических уравнений: Axi ei , i 1,..., n. (2.25) Таким образом, меняя только правую часть, мы последовательно решаем систему (2.25) и находим столбцы матрицы X . Вектора правой части представляют собой единичные вектора, т. е. e1 (1,0,...,0)T , e2 (0,1,...,0) T , …, en (0,0,...,1)T . Системы (2.25) решаем любым известным методом. Пример 12. Найти A1 для матрицы A с использованием метода декомпозиции 1 2 1 A 3 0 2 . 4 2 5 Решение. Нам надо решить три системы уравнений вида Axi ei , i 1,2,3. (2.26) 50 Будем решать (2.26) методом декомпозиции. Факторизуем матрицу A : A B C и вычислим элементы матриц B и C : b11 a11 1; b21 3; b31 4; c11 1; c12 2; c13 1; b22 a22 b21c12 0 3 2 6; b32 a32 b31c12 2 4 2 10; c22 1; c23 1 (a23 b21c13 ) 1 / (6) (2 3 (1)) 5 / 6; b22 b33 a33 b31c13 b32c23 5 4 (1) (10) (5 / 6) 2 / 3. Таким образом, получили 0 1 1 0 1 2 B 3 6 0 ; C 0 1 5 / 6 . 4 10 2 / 3 0 0 1 Системы (2.26) раскладываются на две эквивалентные системы Byi ei , Cxi yi , i 1,2,3. Компоненты векторов yi и xi вычисляются по формулам: y1i e1i / b11; y2i (e2i b21 y1i ) / b22 ; y3i (e3i b31 y1i b32 y2i / b33 ; x3i y3i ; x2i y2i c23 x3i ; x1i y1i c12 x2i c13 x3i . Полагаем i 1 : y11 1; y21 (0 3 1) / (6) 1 / 2; y31 (0 4 1 (10) (1 / 2) / (2 / 3) 3 / 2; x31 3 / 2; x21 (1 / 2) (5 / 6) (3 / 2) 7 / 4; x11 1 2 (7 / 4) (1) (3 / 2) 1. Полагаем i 2 : y12 0; y22 (1 3 0) / (6) 1/ 6; y32 (0 4 0 (10) (1/ 6)) / (2 / 3) 5 / 2; x32 5 / 2; x22 (1/ 6) (5 / 6) ( 5 / 2) 9 / 4; x12 0 2 (9 / 4) (1) (5 / 2) 2. 51 Полагаем i 3 : y13 0; y23 (0 3 0) / (6) 0; y33 (1 4 0 (10) 0) / (2 / 3) 3 / 2; x33 3 / 2; x23 0 (5 / 6) (3 / 2) 5 / 4; x13 0 2 (5 / 4) (1) (3 / 2) 1. Таким образом, получим 2 1 1 A1 7 / 4 9 / 4 5 / 4 . 3 / 2 5 / 2 3 / 2 2.5 Задачи для самостоятельного решения 1. Решить методом Гаусса систему уравнений: 2 x1 2 x2 x3 x4 4; 4 x 3 x x 2 x 6; 1 2 3 4 8 x1 5 x2 3x3 4 x4 12; 3x1 3x2 2 x3 2 x4 6. 2. Найти решение системы методом ортогонализации: 5 x1 8 x2 x3 2; 3x1 2 x2 6 x3 7; 2 x1 x2 x3 5. 3. Решить систему методом декомпозиции: 3x1 x2 x3 8; 5 x1 8 x2 x3 2; 3x1 2 x2 6 x3 7. 4. Найти области сходимости методов простой итерации и Зейделя ( x Bx g ): p 1) B q q p ; 2) B p q q . p 52 5. Найти все матрицы, для которых методы итераций и Зейделя будут сходящимся ( x Bx g ): p 1) B q 0 q p q 0 p q ; 2) B 0 q p 0 p 0 q 0 . p 6. Решить систему методом простой итерации: 6 x1 x2 x3 10; x1 6 x2 x3 11; x x 6 x 17; 3 1 2 0.01. 7. Решить систему методом Зейделя: 6 x1 x2 x3 10; x1 6 x2 x3 11; x x 6 x 17; 3 1 2 0.01. 8. Вычислить определитель матрицы A : 1 1 E2 1 1 E E E 2 , где E cos 2 / 3 i sin 2 / 3 . 1 9. Доказать следующее тождество: a1 b1 x a1 x b1 a2 b2 x a2 x b2 a3 b3 x a3 x b3 c1 a1 b1 2 c2 (1 x ) a2 b2 c3 a3 b3 10. Вычислить определитель методом Гаусса: 1 1 1 1 1 1 2 2 D . 1 1 1 3 1 1 1 1 c1 c2 . c3 53 11. Вычислить определитель методом декомпозиции: 3 4 5 D 1 2 3. 8 7 1 12. Вычислить обратную матрицу методом Гаусса, ортогонализации или декомпозиции: 3 4 5 A 2 3 1 . 3 5 1 54 3 ПРИБЛИЖЕНИЕ ФУНКЦИЙ 3.1 Постановка задачи Под приближением функции f x , заданной на интервале [a, b] , будем понимать замену f x некоторой другой функцией P x , близкой к исходной функции f x . Простейшая задача, приводящая к приближению функций, состоит в следующем. Пусть на сетке xi задана табличная функция f xi yi , i 0,1,..., n . Требуется найти значения функции f x в точках x j , не совпадающих с узлами исходной сетки xi . Рассмотрим некоторую систему действительных линейно независимых функций i ( x) , определенных на отрезке [a, b] , и составим обобщенный полином n P( x) ci i ( x). i 0 Определение. Система функций 0 ( x), 1 ( x),..., n ( x) называется системой Чебышева на отрезке [a, b] , если любой обобщенный полином по этой системе функций имеет на [a, b] не более n корней. Задача приближения состоит в подборе коэффициентов ci таким образом, чтобы отклонение f x от P x было минимальным на заданном множестве X . Полином P x при этом называют аппроксимирующим или приближающим. Если параметры ci , i 0,1,..., n определяются из условия совпадения значений f x и P x в узлах сетки xk n f ( xk ) P( xk ) ci i ( xk ), k 0,1,..., n , i 0 55 то такой способ приближения называют интерполяцией или интерполированием, а сетку xk называют интерполяционной сеткой. При этом полагается, что значения сетки x j , в которой мы хотим вычислять P x j , не выходят за пределы интервала [a, b] (a x j b; j 1,2,..., m) . Если мы хотим вычислить значение P x j в точках x j a, b , то приближение называют экстраполяцией. Теорема. Для того чтобы для любой функции f x R , определенной на отрезке [a, b] , и любого набора узлов a x0 x1 x2 xn b существовал и был единственным полином P( x) c0 0 ( x) c11 ( x) ... cn n ( x ) , необходимо и достаточно, чтобы система функций i ( x), i 0,1, ..., n являлась системой Чебышева. На практике чаще всего используют следующие системы функций i ( x) : а) 1, x, x 2 , x3 , ... , x n либо линейные комбинации этих функций (например, полиномы Лежандра, полиномы Чебышева); б) 1, sin x, cos x, sin 2 x, cos 2 x, ..., sin nx, cos nx ; в) e0 x , e1x , e3x , ..., en x либо линейные комбинации этих функций (например, ортогональные экспоненциальные функции), где i – некоторая последовательность попарно различных действительных чисел. В случае (а) интерполирование называется алгебраическим, в случае (б) – тригонометрическим, в случае (в) – экспоненциальным. Рассмотрим алгебраическое интерполирование. 56 3.2 Алгебраическое интерполирование 3.2.1 Формула Ньютона для равномерной сетки Пусть для функции y f ( x) заданы значения yi f ( xi ) в равностоящих узлах xi a i h , i 0,1,..., n , h (b a) / n . Интерполяционный полином Ньютона имеет вид: y0 2 y0 n y0 [1] [2] Pn ( x) y0 ( x x0 ) ( x x0 ) ... ( x x0 )[ n ] , 2 n 1!h 2!h n!h (3.1) где y0 y1 y0 , 2 y0 (y1 y0 ) , …, n y0 ( n1 y1 n1 y0 ) – конечные разности первого, второго, …, n -го порядка; ( x x0 )[1] ( x x0 ) , ( x x0 )[2] ( x x0 )( x x1 ) , …, ( x x0 )[ n ] ( x x0 )( x x1 )...( x xп1 ) – обобщенные степени первого, второго, …, n -го порядка. Введем переменную q x x0 . Тогда формула (3.1) примет вид h q(q 1) 2 y0 ... 2! n q(q 1)...(q n 1) n i y0 i 1 y0 y0 q j . n! i ! j 0 i 1 Pn (q) y0 qy0 (3.2) Пусть n 1 , тогда из (3.2) получим формулу линейного интерполирования: P1 ( x) y0 qy0 . При n 2 получим формулу квадратичного (параболического) интерполирования: P2 ( x) y0 qy0 q(q 1) 2 y0 . 2 При n 3 получим формулу кубического интерполирования: P3 ( x) y0 qy0 q(q 1) 2 q(q 1)(q 2) 3 y0 y0 . 2 6 57 На практике обычно ограничиваются полиномами первого – третьего порядков. При этом, по возможности, в качестве x0 берут ближайший слева от требуемой точки x узел интерполяционной сетки. Погрешность интерполирования (остаточный член) Rn ( x) f ( x) Pn ( x) вычисляется по формуле: Rn ( x) ( x x0 )( x x1 ) ( x xn ) ( n1) f (); a, b. (n 1)! (3.3) Введем переменную q ( x x0 ) / h , тогда из (3.3) следует Rn (q) hn1 q(q 1) (q n) ( n1) f (); a, b. (n 1)! (3.4) На практике точка , как правило, неизвестна. Поэтому вместо f ( n1) () обычно используют M n1 max f ( n1) ( x) . x Для табличной функции значение производной (n 1) -го порядка функции f ( x) приближенно можно положить f ( n 1) n1 y0 () n1 и формула h (3.4) примет вид: Rn (q) q(q 1) (q n) n1 y0 . (n 1)! (3.5) Пример 1. Пусть имеем таблицу значений функции f ( x) y : x y 3.5 3.55 3.60 3.65 3.70 33 34.8 36.8 39.1 41.9 58 Составим таблицу разностей: x y y 2 y 3 y 4 y 3.50 33.0 1.8 0.2 0.1 0.1 3.55 34.8 2.0 0.3 0.2 3.60 36.8 2.3 0.5 3.65 39.1 2.8 3.70 41.9 Примечание. Таблица конечных разностей получается следующим образом: столбец y – вычитанием цифр столбца y ; столбец 2 y – вычитанием цифр столбца y ; столбец 3 y – вычитанием цифр столбца 2 y и т. д. По данной таблице можно построить полином максимальной степени, равной 4. Построим полином третьей степени. Здесь h 0.05 . Для построения полинома используем данные первой строки таблицы: x0 3.5 , y0 33.0 y0 1.8 , 2 y 0.2 , 3 y 0.1 . Значения x1 3.55 , x2 3.60 . Используя формулу (3.1), получим 1.8 0.2 ( x 3.5) ( x 3.5) ( x 3.55) 1 (0.05) 2 (0.05) 2 0.1 ( x 3.5) ( x 3.55) ( x 3.60). 6 (0.05)3 P3 ( x) 33.0 Погрешность оцениваем по формуле (3.5): R3 ( x) ( x 3.50)( x 3.55)( x 3.60)( x 3.65) 0.1. 4! (0.05)4 Используя формулу (3.2), получим P3 (q) 33.0 где q x 3.5 . 0.05 1.8 0.2 0.1 q q(q 1) q(q 1)(q 2), 1 2 6 59 С помощью полученных полиномов P3 ( x ) и P3 (q) можно вычислить значение интерполируемой функции f ( x) для любого x из интервала 3.50 x 3.65. Если требуется вычислить f ( x) в интервале [3.65, 3.70] , то необходимо построить полином P3 ( x ) или P3 (q) по данным второй y0 34.8 , y0 2.0 , 2 y 0.3 , 3 y 0.3 . строки таблицы: x0 3.55 , Соответственно, x1 3.60 , x2 3.65 . Пример 2. Получить формулу для вычисления суммы ряда Sn 1 2 3 ... n , т. е. вычислить 2 2 2 2 n i 2 . i 1 Решение. Найдем конечные разности Sn Sn1 Sn n 1 ; 2 2 Sn Sn1 Sn n 2 n 1 2n 3; 2 2 3Sn 2 Sn1 2 Sn 2 n 1 3 2n 3 2. Поскольку 2 S n не зависит от n , то S n можно аппроксимировать полиномом степени не выше третьей. Составим таблицу: n Si S i 2 Si 3 Si 1 1 4 5 2 2 5 9 7 3 14 16 4 30 Имеем: h 1 , x0 1 , x1 2 , x2 2 , x3 3 . Введем переменную q n 1 n 1. Строим полином по первой строке таблицы ( y0 1 , 1 S0 4 , 2 S0 5 , 3 S0 2 ). В результате имеем P3 (n) 1 4 n 1 5 n 1 n 2 2 n 1 n 2 n 3 . 2 6 60 1 После преобразования получим P3 n n 1 2n 1 . Таким обра6 1 зом, для S n мы получили формулу Sn n n 1 2n 1 . 6 3.2.2 Формула Ньютона для неравномерной сетки Пусть f x функция задана на неравномерной сетке xi a x0 x1 ... xn b . Интерполяционный полином Ньютона имеет вид: P( x) y0 [ x0 , x1 ]( x x0 ) [ x0 , x1 , x2 ]( x x0 )( x x1 ) ... n i 1 i 1 j 0 [ x0 , x1 ,..., xn ]( x x0 )...( x xn1 ) y0 [ x0 ,..., xi ] ( x x j ), где [ x0 , x1 ] (3.6) y1 y0 – разделенная разность первого порядка в точке x0 ; x1 x0 [ x0 , x1 , x2 ] [ x1 , x2 ] [ x0 , x1 ] – разделенная разность второго порядка x2 x0 в точке x0 ; [ x0 , x1 ,..., xn ] [ x1 , x2 ,..., xn ] [ x0 , x1 ,..., xn1 ] – разделенная разность n -го xn x0 порядка в точке x0 . Погрешность интерполяции рассчитывается по формуле (3.3): Rn ( x) ( x x0 )( x x1 ) ( x xn ) M n1 . (n 1)! Значение производной M n1 (n 1) -го порядка для табличной функции может быть оценено приближенно через конечную разность (n 1) -го порядка M n1 max f ( n1) ( x) (n 1)! [ x0 , x1,..., xn1 ] . x 61 Пример 3. Дана табличная функция f ( x) . x f ( x) 1-й порядок 2-й порядок 3-й порядок 0.0 0.4 0.04 0.008 2.5 0.5 0.08 0.02 5.0 0.7 0.2 6.0 0.9 0.002 Решение. По формуле (3.6) строим полином 2-го порядка по первой строке. Здесь x0 0 . Получим P2 ( x) 0.4 0.04 x 0.008 x( x 2.5). Для оценки погрешности нам потребуется производная 3-го порядка. Приближенную оценку можно получить следующим образом. Запишем полином 3-го порядка и возьмём производную 3-го порядка. P3( x) 6 [ x0 , x1 , x2 , x3 ] 6 (0.002) 0.012 f ( x). Возьмем абсолютное значение M 3 f ( x) 0.012 . Таким образом, погрешность интерполирования равна R2 ( x) M3 0.012 ( x x0 )( x x1 )( x x2 ) ( x 0.0)( x 2.5)( x 5.0). 3! 6 3.2.3 Формула Лагранжа для неравномерной сетки Полином Лагранжа имеет вид: n Ln ( x) yi i 0 ( x x0 )...( x xi 1 )( x xi 1 )...( x xn ) ( xi x0 )...( xi xi 1 )( xi xi 1 )...( xi xn ) n n x xj yx x . i 0 i j 0 j i i j (3.7) 62 Если ввести обозначение n i ( x) ( x x j ), j 0 j i то выражение (3.7) можно переписать в виде n Ln ( x) yi i 0 i ( x) . i ( xi ) При n 1 (дана сетка из 2 узлов x0 , x1 ) из (3.7) имеем L1 ( x) y0 x x1 x x0 y1 . x0 x1 x1 x0 При n 2 (дана сетка из 3 узлов x0 , x1 , x2 ): L2 ( x) y0 ( x x1 )( x x2 ) ( x x0 )( x x2 ) ( x x0 )( x x1 ) y1 y2 . ( x0 x1 )( x0 x2 ) ( x1 x0 )( x1 x2 ) ( x2 x0 )( x2 x1 ) Можно показать, что формула Лагранжа и формула Ньютона – это две разные формы записи одного и того же полинома. Поэтому численные значения функций, полученных по формуле Лагранжа и Ньютона, будут совпадать. По этой же причине погрешность интерполяционного полинома Лагранжа вычисляется по той же формуле (3.3), по которой вычисляется погрешность интерполяционного полинома Ньютона: Rn ( x) M n1 n1 ( x), (n 1)! где n1 ( x) ( x x0 )( x x1 )( x x2 ) ( x xn ) . Пример 4. Построить полином Лагранжа для табличной функции. x 0 1 2 5 y 2 3 12 147 63 Решение. По формуле (3.7) имеем ( x 1)( x 2)( x 5) ( x 0)( x 2)( x 5) 3 (0 1)(0 2)(0 5) (1 0)(1 2)(1 5) ( x 0)( x 1)( x 5) ( x 1)( x 1)( x 2) 12 147 . (2 0)(2 1)(2 5) (5 0)(5 1)(5 2) L3 ( x) 2 3.2.4 Формула Лагранжа для равномерной сетки Полином Лагранжа для равномерной сетки имеет вид: n Ln (q ) yi i 0 (q 0)...(q (i 1))(q (i 1))...(q n) (i 0)...(i (i 1))(i (i 1))...(i n) n yi (q j ). n i i !(n i )! j 0 i 0 ( 1) n (3.8) j i Если ввести обозначение n i (q) (q j ), j 0 j i то выражение (3.8) можно переписать в виде n yi i (q). i !(n i)! i 0 ( 1) Ln (q) n i Погрешность интерполирования вычисляется по формуле (3.4): Rn (q) hn1 q(q 1) (q n) ( n1) f (); a, b. (n 1)! 3.3 Аппроксимация тригонометрическими функциями Пусть дан тригонометрический полином Q( x) a0 n (ak cos kx bk sin kx), x ; . 2 k 1 (3.9) Так как тригонометрические функции ортогональны, то для функции f ( x) , заданной на интервале ; , получим следующие выражения для коэффициентов ak , bk : 64 1 ak f ( x)cos kxdx, b 1 f ( x)sin kxdx, k k 0,1,..., n. (3.10) Коэффициенты ak , bk , определяемые формулами (3.10), называются тригонометрическими коэффициентами Фурье. Из (3.10) следует, что если f ( x) – четная, т. е. f ( x) f ( x) на интервале ; , то 2 ak f ( x)cos kxdx, k 0,1,..., n; 0 b 0, k 1,..., n. k (3.11) В этом случае аппроксимирующий полином имеет вид: Q( x) a0 n ak cos kx. 2 k 1 (3.12) Для нечетной функции ( f ( x) f ( x) ) получим ak 0, k 0,1,..., n; 2 bk f ( x)sin kxdx, 0 (3.13) n Q( x) bk sin kx. (3.14) k 1 Примечание 1. Если функция f ( y ) задана на интервале [a, b] , то вве1 ba дением новой переменной y (b a) x мы получим функцию 2 2 ba 1 f ( x) f x (b a ) , x[; ] . 2 2 65 Примечание 2. Если функция f ( x) не обладает четностью, то можно ее представить в виде суммы двух функций: f ( x) f1 ( x) f 2 ( x), где 1 f ( x ) f ( x) f ( x) четная; 1 2 f ( x) 1 f ( x) f ( x) нечетная. 2 2 Интегралы в формулах (3.10), (3.11), (3.13) можно вычислить приближенно по формуле трапеции: b f ( x)dx a ba1 y0 y1 m 2 ym1 1 ym . 2 Тогда коэффициент ak из (3.11) равен 2 ak f ( x)cos kxdx 0 m 1 2 1 1 y0 cos kx0 y j cos kx j ym cos kxm , m 2 2 j 1 xj j , j 0,1,..., m. m Аналогично для коэффициента bk (3.13) получим 2 m1 bk y j sin kx j ; m j 1 xj j , j 1,2,..., m 1. m Пример 5. Построить тригонометрический полином для четной функции, заданной следующими данными: 66 /12 xj 0 f (x j ) 9.55 xj /6 /4 /3 5/12 /2 9.46 9.25 8.96 8.58 8.10 7.59 7/12 2/3 3/4 5/6 11/12 f (x j ) 7.00 6.34 5.56 4.80 4.21 4.00 Решение. Здесь 13 узлов, т. е. m 12 ; полином будем строить для n 6 . Результаты занесем в таблицу. j xj yj cos x j cos 2 x j cos3 x j cos 4 x j cos5 x j cos6 x j 0 0 9.55 1 1 1 1 1 1 1 /12 9.46 0.9659 0.8660 0.7071 0.5 0.2588 0 2 /6 9.25 0.8660 0.5 0 –0.5 –0.8660 –1 3 /4 8.96 0.7071 0 –0.7071 –1 –0.7071 0 4 /3 8.58 0.5 –0.5 –1 –0.5 0.5 1 5 5/12 8.10 0.2588 –0.8660 –0.7071 0.5 0.9659 0 6 /2 7.59 –1 0 1 0 –1 7 7/12 7.00 –0.2588 –0.8660 0.7071 0.5 –0.9659 0 8 2/3 6.34 –0.5 1 –0.5 –0.5 1 9 3/4 5.56 –0.7071 0 0.7071 –1 0.7071 0 10 5/6 4.80 –0.8660 0.5 0 –0.5 0.8660 –1 11 11/12 –0.7071 0.5 –0.2588 0 12 0 –0.5 4.21 –0.9659 0.8660 4.00 –1 1 –1 1 –1 1 86.63 15.52 –2.48 1.06 –0.25 0 0.06 ak 14.4 2.25 –0.41 0.18 –0.04 0 0.01 k 67 Ответ: Q( x) 7.22 2.25cos x 0.41cos 2 x 0.18cos3x 0.04cos 4 x 0.01cos6 x. Погрешность аппроксимации равна a0 2 6 2 S 2 f ( x)dx 2 ak 6.689. 2 k 1 0 2 3.4 Приближение функций полиномами Лежандра Полиномы Лежандра определяются формулой: n 1 dn 2 Pn x n x 1 , 2 n! dx n n 0,1,2,... (3.15) 1 2 P0 ( x) 1; P1 ( x) x; P2 ( x) 2 (3 x 1); 1 1 3 4 2 P3 ( x) (5 x 3 x); P4 ( x) (35 x 30 x 3); 2 8 1 P ( x ) (63 x 5 70 x 3 15 x). 5 8 (3.16) Общая рекуррентная формула для полиномов Лежандра: (n 1) Pn1 ( x) x(2n 1) Pn ( x) nPn1 ( x) 0, n 1,2,... (3.17) Теорема. Полиномы Лежандра образуют ортогональную систему на отрезке [1,1] , т. е. 1 P x P x dx 0 при m n m, n 0,1,2,.... n m 1 Норма полинома Лежандра: 1 Pn x Pn2 x dx 2 1 2 . 2n 1 (3.18) 68 Пусть задан обобщенный полином в виде n Q( x) Ci Pi ( x) , x [1, 1] , (3.19) i 0 где Pj ( x) – полиномы Лежандра. Для функций f ( x) на интервале [ 1, 1] коэффициенты разложения Ci определяются по формулам: 2i 1 Ci f ( x) Pi ( x)dx , i 0,1,..., n . 2 1 1 (3.20) Погрешность аппроксимации равна 1 n S [ f ( x) Ci Pi ( x)] dx 2 1 i 0 1 f n 2 1 ( x)dx Ci2 i 0 2 . 2i 1 (3.21) Примечание 1. Если функция f ( y ) задана на интервале y [a, b] , то, введя переменную x 2 ba y , мы получим функцию: ba ba ba ba f ( y) f x ; x [1, 1] . 2 2 Примечание 2. Если функция f ( x) задана таблично, то интегралы (3.20), (3.21) необходимо вычислять по квадратурным формулам. Пример 6. Функцию f ( x) x на отрезке [ 1, 1] аппроксимировать полиномом Лежандра 5-й степени (рис. 3.1). Решение. Полином Q5 ( x ) ищем в виде Q5 ( x) C0 P0 ( x) C1P1 ( x) C2 P2 ( x) C3 P3 ( x) C4 P4 ( x) C5 P5 ( x) . Так как функция f ( x) x – четная и Pk ( x) – четны при четном k и нечетны при нечетном k , то из формулы (3.20) получим: 69 1 1 1 1 C0 | x | dx xdx ; 2 1 2 0 C1 C3 C5 0; 1 1 5 5 5 C2 | x | P2 ( x)dx x(35 x 4 30 x 2 3)dx ; 2 1 20 8 1 9 3 C4 x(35 x 4 30 x 2 3)dx . 80 16 В результате для полинома Q5 ( x ) следует выражение 1 5 3 (3x 2 1) (35 x 4 30 x 2 3) 2 16 128 15 (7 x 4 14 x 2 1). 128 Q5 ( x) Следовательно, x 15 (7 x 4 14 x 2 1), 1 x 1. 128 y 1 –1 1 Рис. 3.1 – График функции f ( x) x и результат интерполяции 3.5 Полиномы Чебышева Полиномы Чебышева определяются формулой: ( x x 2 1) n ( x x 2 1) n Tn ( x) , n 0,1,... 2n (3.22) 70 Для n 0,...,5 из (3.22) получим 1 3 T0 ( x) 1; T1 ( x) x; T2 ( x) x 2 ; T3 ( x) x 3 x; 2 4 1 5 5 T5 ( x) x 4 x 2 ; T5 ( x) x 5 x 3 x. 8 4 16 Для полиномов Чебышева справедлива следующая рекурсивная формула: 1 Tn1 x xTn x Tn1 x , n 2,3,... 4 (3.23) Теорема. Полиномы Чебышева Tn x образуют на отрезке [–1,1] ортогональную систему с весом x 1 1 x 1 T x 2 m 1 dx 1 x2 1 T x 2 0 1 1 x2 dx Tk x Tm x 1 1 0 , при m k , 2 2 2 m 1 1 dx 1 x 2 , т. е. ; m 1,2,..., dx 1 x 1 2 . Перейдем к задаче аппроксимации функций полиномами Чебышева. Обобщенный полином представляется в виде n Pn CiTi ( x) , (3.24) i 0 1 ( x) f ( x)T ( x)dx i где Ci 1 . 1 ( x)T i 2 ( x)dx 1 Здесь f ( x) – аппроксимируемая функция, т. е. n f ( x) CiTi ( x) Pn ( x) . i 0 (3.25) 71 Погрешность аппроксимации равна 1 1 n S ( x)[ f ( x) CiTi ] dx ( x) f 2 ( x)dx 2 i 0 1 n 1 k 0 1 1 (3.26) Ci2 ( x)Ti 2 ( x)dx. Пример 7. Пусть f ( x) 1 x 2 , x [1,1] . Необходимо аппроксимировать полиномом Чебышева 5-й степени P5 ( x) и вычислить ошибку. Решение. Так как f ( x) – четная, то отличными от нуля будут коэффициенты Ci с четными номерами, а с нечетными равны нулю. По формуле (3.25) получим 1 1 2 x 1 ; 1 2 23 1 8 2 C2 ( x 1 / 2)dx ; 1 3 3 C0 1 27 27 4 2 C4 ( x x 1 / 8)dx 1 27 1 32 . 60 15 В результате получим 1 x2 2 8 2 1 32 4 1 2 x x x 3 2 15 8 или 1 x 2 Погрешность равна: 1 1 5 1 3 1 5 x 3 x 8 x 1 46 8 2 32 4 x x . 15 15 15 72 1 S ( x) f ( x)dx C 2 k 0 1 1 2 k ( x)T 2 k ( x)dx 1 1 x 2 dx C02 C22 C42 7 8 2 1 1 1 1 8 1 4 8 x 1 x 2 arcsin x 2 2 1 9 225 1.5675 0.0033. 2 3.6 Задачи для самостоятельного решения n 1. Построить полином для вычисления суммы Sn i 3 . i 1 n 2. Просуммировать ряд Sn (2 j 1) 2 . j 1 3. Показать, что система функций i ( x) 1, x, x 2 ,..., x n на интервале [a, b] является Чебышевской. 4. Показать, что система функций i ( x) 1,sin x,cos x,..., sin nx,cos nx на интервале [0,2] является Чебышевской. 5. В пятизначных таблицах логарифмов даются логарифмы целых чисел от x 1000 до x 10000 с предельной абсолютной погрешностью 0.5 105 . Возможно ли линейное интерполирование с помощью форму- лы Ньютона с той же степенью точности? 6. С какой погрешностью можно вычислить 2 с помощью полино- мов 1-го и 2-го порядка, построенных для отрезка [1.69,2.25] . Узлы интерполяции взять следующие: x0 1.69 ; x1 1.96 ; x2 2.25 . 7. Требуется составить четырехзначную таблицу функции f ( x) sin x на интервале 0 x / 2 . Какой величины должен быть шаг таблицы h , чтобы погрешность интерполяции была не больше погрешности 73 таблицы: а) при линейной интерполяции; б) при квадратичной интерполяции. 8. Построить интерполяционные полиномы Ньютона 1-го и 2-го порядка для функции f ( x) , заданной таблично на равномерной сетке. x 0 1 2 3 4 5 y 5.2 8.0 10.4 12.4 14.0 15.2 Вычислить значения полинома и погрешности в точках: а) x 0.5; б) x 3.5. 9 Функция f ( x) задана таблицей x f ( x) 0 2 1.5 2.5 4 4.5 Построить интерполяционные сплайны: 1) линейный; 2) параболический. 10. Аппроксимировать полиномом Лежандра 5-й степени функцию f ( x) x на интервале [0,1] . 11. Аппроксимировать полиномом Лежандра 5-й степени функцию f ( x) sin x, x [ / 2, / 2] . Вычислить погрешность. 74 Справка x sin xdx sin x x cos x; x sin xdx 2 x sin x ( x 2)cos x; x sin xdx (3x 6)sin x ( x 6 x)cos x; x sin xdx (4 x 24 x)sin x ( x 12 x 24)cos x; x sin xdx (5x 60 x 120)sin x ( x 20 x 120 x)cos x. 2 2 3 2 4 3 5 4 3 4 2 2 5 3 12. Аппроксимировать полиномом Чебышева 5-й степени на интервале x [1,1] функцию f ( x) (1 x 2 )3/2 и вычислить погрешность S . 75 4 ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ Формулы численного дифференцирования получаются путем дифференцирования интерполяционных формул. Наиболее широкое распространение получили формулы Ньютона и Лагранжа. 4.1 Формулы Ньютона Пусть задана табличная функция f ( x) на равномерной сетке xi a i h, i 0,..., n , h – шаг сетки. Дифференцируя полином Ньютона, для первой производной получим: 1 2q 1 2 3q 2 6q 2 3 Pn(q) [y0 y0 y0 h 2 6 2q 3 9q 2 11q 3 4 y0 ] 12 n n i y0 i 1 i 1 i y0 i 1 1 1 [y0 (q k )] h [y0 j (q)], h i ! j 0 k 0 i ! j 0 i 2 i 2 (4.1) k j где q x x0 , x0 a ; y0 , 2 y0 , 3 y0 , ... – конечные разности, h i 1 j (q) (q k ). k 0 k j Погрешность дифференцирования равна Rn (q ) h n1 f ( n1) () d [q(q 1) (q n)], a, b, (n 1)!h dq или Rn (q ) n1 y0 d [q (q 1) (n 1)!h dq (q n)]. (4.2) 76 В частности, при x x0 1 1 1 1 Pn(0) y0 2 y0 3 y0 4 y0 h 2 3 4 n 1 (1)n y0 R(0) . h n 1 , (4.3) Для второй производной получим следующие формулы (путем дифференцирования (4.1) и (4.2)): 2 6q 2 18q 11 4 3 y0 y0 (q 1) y0 12 i n i 1 i 1 i 1 y0 1 2 2 y0 q l h i ! j 0 k 0 l 0 i 3 k j l k l j n i y0 i 1 i 1 1 2 2 y0 jk (q) , h i ! j 0 k 0 i 3 k j 1 Pn(q) 2 h (4.4) i 1 где jk (q ) (q l ) ; l 0 l j l k Погрешность Rn(q ) h n1 f ( n1) () d 2 [q (q 1) (q n)], a, b, (n 1)!h 2 dq 2 или R(q ) n1 y0 d 2 [q (q 1) (n 1)!h 2 dq 2 (q n)]. (4.5) В частности, при x x0 будем иметь: 11 4 5 5 2 3 y0 y0 12 y0 6 y0 2(1) n1 n1 y0 n 1 R(0) . (n 1)h 2 i i 1 Pn(0) 1 h2 ; (4.6) 77 Примечание 1. При нахождении производных y, y,... в фиксированной точке x в качестве x 0 следует брать ближайшее слева от x табличное значение аргумента. Примечание 2. В качестве точки x0 может быть использована любая узловая точка. Поэтому формулы (4.3) и (4.6) могут быть применены для любой точки xi , если она удовлетворяет условию xi xn j , где j – порядок полинома. Для неравномерной сетки n i 1 i 2 j 0 Pn( x) [ x0 , x1 ] [ x0 ,..., xi ] j ( x), n i 1 i 1 i 3 j 0 k 0 k j Pn( x) [ x0 , x1 , x2 ] 2 [ x0 ,..., xi ] jk ( x), i 1 i 1 k 0 k j l 0 l j l k где j ( x) ( x xk ) , jk ( x) ( x xl ) . Погрешность: Rn ( x) M n1 d [( x x0 )( x x1 ) ( x xn )], (n 1)! dx M n1 d 2 Rn( x) [( x x0 )( x x1 ) ( x xn )], (n 1)! dx 2 M n1 max f ( n1) ( x) (n 1)! [ x0 , x1,..., xn1 ]. x 78 Пример 1. Найти y(0) и y(0) функции y f ( x) , заданной таблично: x y y 2 y 3 y 4 y 0.0 16.991 0.411 –0.028 –0.007 0.017 5.0 17.402 0.383 –0.035 0.010 10 17.785 0.348 –0.025 15 18.133 0.323 20 18.456 Здесь шаг равен 5. Решение. По формулам (4.3), (4.6) получим (используя интерполяционный полином 3-го порядка): 1 1 1 y(0) 0.411 0.028 0.007 0.0845 ; 5 2 3 R(0) (1) 4 y0 8.5 104 . 54 y(0) 1 1 2 y0 3 y0 0.028 0.007 8.4 104 ; 25 25 2 (1) 4 y0 1 1 1 4 R(0) 6.2 10 . 4 25 1 2 3 Результаты этого примера показывают, что погрешность второй производной сравнима с величиной второй производной. 4.2 Формула Лагранжа Запишем полином Лагранжа. n Ln ( x) yi i 0 n где i ( x) ( x x j ) . j 0 j i i ( x) , i ( xi ) (4.7) 79 Для первой производной получим выражение n n yi d d 1 Ln ( x) i ( x); i ( x) i ( x) dx j 0 i ( xi ) dx k 0 x xk k j или n Ln ( x) yi j 0 i ( x) n 1 . i ( xi ) k 0 x xk (4.8) k j Вторая производная вычисляется по формуле: yi d 2 Ln( x) i ( x), 2 j 0 i ( xi ) dx n которая после преобразования примет вид 2 n n ( x ) 1 1 Ln( x) 2 yi i . 2 i ( xi ) k 0 ( x xk ) k 0 ( x xk ) j 0 k j k j n (4.9) Данные формулы не подходят для использования на практике, т. к. при x xi (т. е. в узлах исходной сетки) дают деление на 0. Поэтому вместо выражений (4.8) и (4.9) следует использовать другие выражения: n Ln ( x) i 0 n (x x ) j 0 j i n n yi i j n Ln( x) i 0 n ( x xk ) j 0 k 0 j i k i k j i 0 n yi n (x x ) j 0 j i n i 0 i j n n k 0 k i k j l 0 l i l j l k j i ( x x ) j 0 k 0 l 0 j i k i l i k j l j l k n j i k i k j n (4.10) n yi ijk ( x), i ( xi ) j 0 k 0 n n yi ij ( x), i ( xi ) j 0 где ij ( x) ( x xk ) , ijk ( x) ( x xl ) . l (4.11) 80 Вычислим погрешность первой и второй производной. M n1 d M n1 d 2 Rn ( x) n1 ( x); Rn( x) n 1 ( x), (n 1)! dx (n 1)! dx 2 n1 ( x) ( x x0 )( x x1 ) ( x xn ). Так как n d 1 n1 ( x) n1 ( x) , dx j 0 ( x x j ) 2 n n d2 1 1 , n1 ( x) n1 ( x) 2 dx 2 ( x x ) j 0 ( x x j ) j 0 j то получим n M n1 1 Rn ( x) n1 ( x) , (n 1)! j 0 x x j n 1 M n1 Rn( x) n1 ( x) (n 1)! j 0 x x j 2 n 1 . 2 j 0 ( x x j ) (4.12) (4.13) Для равномерной сетки имеем Ln (q) n n 1 n yi q k h i 0 (1) ni i !(n i )! j 0 k 0 j i k i k j n (4.14) n 1 yi ij (q), n i h i 0 (1) i !(n i )! j 0 j i n Ln q i 0 n i 0 n n n yi (q l ) (1) ni i !(n i )! j 0 k 0 l 0 j i k i l i k j l j l k n n yi ijk (q), (1) i !(n i )! j 0 k 0 n i j i k i k j n n k 0 k i k j l 0 l i l j l k где ij (q ) (q k ) , ijk (q) (q l ) . (4.15) 81 Погрешность в этом случае составит Rn (q ) h Rn(q ) h n 1 n 1 f ( n1) () d [q(q 1) (q n)], (n 1)!h dq f ( n1) () d 2 [q (q 1) (q n)], (n 1)!h 2 dq 2 a, b. Пример 2. Рассмотрим предыдущий пример. Вычислить y(0) и y(0) с помощью полинома 3-го порядка. x y 0.0 5.0 10 15 20 16.991 17.402 17.785 18.133 18.456 Решение. По формуле (4.10) получим: 1 1 1 y ( x0 ) y0 ( x0 x1 ) x x x x x x 1 0 2 0 2 0 1 1 ( x0 x2 )( x0 x3 ) y1 x x ( x x )( x x )( x x ) 0 1 1 0 1 2 1 3 y2 1 1 x0 x2 ( x2 x0 )( x2 x1 )( x2 x3 ) y3 1 1 . x0 x3 ( x3 x0 )( x3 x1 )( x3 x2 ) Подставим данные таблицы: y y y 1 1 1 11 y ( x0 ) y0 (750) 1 2 3 ( 5) 250 ( 10) ( 250) ( 15) 750 30 3 3 1 11 16.991 17.402 17.785 18.133 0.0845. 5 10 15 30 82 По формуле (4.11) имеем: 1 1 1 1 y ( x0 ) 2 y0 x x x x x x ( x x )( x x ) 1 0 2 0 3 0 2 0 3 0 1 ( x0 x1 )( x0 x2 )( x0 x3 ) y1 x x 0 1 1 1 1 ( x1 x0 )( x1 x2 )( x1 x3 ) x0 x2 x0 x3 y2 1 1 1 1 x0 x2 ( x2 x0 )( x2 x1 )( x2 x3 ) x0 x1 x0 x3 y3 1 1 1 1 . x0 x3 ( x3 x0 )( x3 x1 )( x3 x2 ) x0 x1 x0 x2 Подставим табличные данные, получим: 1 1 1 1 y( x0 ) 2 y0 5 10 15 (10)(15) 1 1 1 y1 (750) ( ) (5)5(5)(10) 10 15 1 1 1 y2 (750) ( ) (10)10 5(5) 5 15 1 1 1 y3 (750) ( ) ( 15)15 10 5 5 10 1 2 1 1 2 y0 y1 y2 y3 8.4 104. 10 25 50 25 4.3 Задачи для самостоятельного решения 1. Исходя из формул Лагранжа (4.8), (4.9) получить формулы (4.10), (4.11) для первой и второй производной в узлах сетки. 2. Пусть дана равномерная сетка. На примере полинома Лагранжа третьего порядка получить из формул (4.10), (4.11) формулы Ньютона (4.3), (4.6) для производных y( xi ), y( xi ) . 83 3. Материальная точка движется прямолинейно. Закон движения S f (t ) представлен в виде таблицы. t,с S,м S 2 S 3S 4 S 0 0 2 6 6 0 1 2 8 12 6 0 2 10 20 18 6 0 3 30 38 24 6 4 68 62 30 5 130 92 6 222 Найти скорость V и ускорение w точки в момент t 3.5 сек. 4. Дана функция y( x) e x /2 , x [0,1] . Получить таблицу значений с шагом h 0.2 . С помощью полинома Ньютона 3-го порядка вычислить значения первой и второй производной в точке x 0.1 . Оценить погрешность. 5. Дана функция y( x) e x /2 , x [0,1] . Получить таблицу значений с шагом h 0.2 . С помощью полинома Лагранжа 3-го порядка вычислить значения первой и второй производной в точке x 0.1 . Оценить погрешность. 6. Дана функция y( x) e x , x [0,1] . Получить таблицу значений 2 с шагом h 0.2 . С помощью полинома Ньютона 3-го порядка вычислить значения первой и второй производной в точке x 0.1 . Оценить погрешность. 7. Дана функция y( x) e x , x [0,1] . Получить таблицу значений 2 с шагом h 0.2 . С помощью полинома Лагранжа 3-го порядка вычислить значения первой и второй производной в точке x 0.1 . Оценить погрешность. 84 5 ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ Формулы численного интегрирования в общем случае получаются путем интегрирования интерполяционных полиномов, построенных для подынтегральной функции. 5.1 Формулы трапеции и Симпсона Запишем интерполяционный полином Лагранжа для равномерной сетки: n Ln (q) i 0 n где i (q) (q j ) , q j 0 j i yi i (q), (1) i !(n i )! n i (5.1) x x0 ba , h – шаг сетки. Если подынтеh n гральную функцию f ( x) на интервале [a, b] аппроксимировать полиномом Лагранжа (5.1), то для интеграла от f ( x) получим b n f ( x)dx (b a ) H i yi , (5.2) i 0 a где H i – коэффициенты Ньютона – Котеса: n 1 1 i ( q) Hi dq, i 0,..., n. n i ! n i ! 0 q i n i (5.3) Формулы вида (5.2) называют квадратурами или квадратурными формулами. 1. При n 1 (т. е. имеется два узла на интервале [a, b] ) получим 1 из (5.3) H 0 H1 . В этом случае формула (5.2) примет вид: 2 x1 x0 h f ( x)dx ( y0 h1 ). 2 85 Применяя эту формулу ко всем подынтервалам xi 1 xi h , получим b h f ( x)dx 2 [ y 0 2( y1 y2 yn1 ) yn ]. (5.4) a Для остаточного члена b h R f ( x)dx [ y0 2( y1 y2 2 a yn1 ) yn ] можно получить следующее выражение: RT (b a) 2 h y(), 12 (5.5) где a b . Формулу (5.4) называют квадратурной формулой трапеций. Геометрически формула (5.4) означает замену графика функции y f x на ломаную линию (рис. 5.1). Рис. 5.1 – Геометрическая интерпретация формулы трапеций Из формул (5.5) видно, что если y 0 , то формула трапеции (5.4) даст значение интеграла с избытком, если y 0 , то – с недостатком. 86 Для неравномерной сетки формула трапеций (5.4) принимает вид: b 1 n1 f ( x)dx hi ( yi 1 yi ), 2 i 0 a R 1 hi3 y(i ); i [ xi ; xi 1 ]. T 12 (5.6) 2. При n 2 коэффициенты Ньютона – Котеса равны 1 4 1 H 0 ; H1 ; H 2 6 6 6 и формула (5.2) примет вид: x2 f ( x)dx x0 2h [ y0 4 y1 y2 ]. 6 (5.7) Чтобы получить квадратуру для произвольного интервала [a, b] , рассмотрим сетку с n 2m узлами. Здесь m – количество подынтервалов длиной 2h . Применяя формулу (7.7) к каждому подынтервалу, получим b f ( x)dx a 2h [( y0 y2 m ) 4( y1 y3 y5 6 2( y2 y4 y2 m1 ) (5.8) y2 m2 )]. Эта формула получила название квадратурной формулы Симпсона. Здесь h ba ba ; n – количество интервалов, четное число n 2m ( n 1 – количество узлов сетки). Остаточный член b RC f ( x)dx a 2h [( y0 y2 m ) 4( y1 y3 y5 6 2( y2 y4 y2 m1 ) y2 m2 )] выражается формулой: RC b a 4 (4) h y () . 180 (5.9) 87 Здесь вошла производная 4-го порядка, поэтому формула Симпсона (5.8) будет точна для подынтегральных функций, заданных полиномами не только 2-го порядка, но и 3-го порядка. Геометрически формула Симпсона означает, что кривую y f x y L2 x , проходящей через три точки: мы заменяем параболой M 0 x0 , y0 , M1 x1 , y1 , M 2 x2 , y2 (рис. 5.2). f ( x) R M1 M2 M0 y0 y2 y1 h x0 h x1 x2 Рис. 5.2 – Геометрическая интерпретация формулы Симпсона Для неравномерной сетки ( hi xi xi 1 ) формула Симпсона имеет следующий вид: b xn a x0 h2 k 1 h2 k y2k 2 2h2k 1 h2k h2k h k 1 2 k 1 2 k m f ( x)dx ydx 6h y2 k 1 h2 k 1 h2 k y2 k 2h2 k h2 k 1 h2 k 1 , 2 где m n / 2 . (5.10) 88 5.2 Формулы прямоугольников Из геометрических соображений можно получить формулы прямоугольников: b n 1 a i 0 f ( x)dx y h , h x b i i i i 1 xi – левосторонняя; (5.11) n 1 f ( x)dx yi 1hi , hi xi 1 xi – правосторонняя; a i 0 b n 1 f ( x)dx f ( )h , i 0 a i i i xi 1 xi – центральная. 2 (5.12) (5.13) Погрешности квадратурных формул (5.11), (5.12) и (5.13) (для h const ) равны R1 ba hy() – левосторонняя и правосторонняя; 2 (5.14) R2 ba 2 h y() – центральная. 24 (5.15) Сравнивая формулы погрешностей (5.5) и (5.15), делаем заключение, что центральная формула прямоугольников в 2 раза точнее формулы трапеций. Пример 1. Найти ln 2 с точностью до 10–4 из соотношения 1 ln 2 dx x , вычислив интеграл тремя методами: 0.5 1) по формуле Симпсона; 2) по формуле трапеций; 3) по центральной формуле прямоугольников. Решение. Оценим требуемое количество узлов для обеспечения заданной точности квадратурных формул. Для этого вычислим производные. 1 2 24 f ( x) ; f ( x) 3 ; f (4) ( x) 5 . x x x 89 На отрезке [1 / 2, 1] имеем f ( x) 2 16 M 2 ; f (4) ( x) 24 25 768 M 4 . 3 (1 / 2) Для метода Симпсона погрешность равна | RC | M 4 (b a) 4 ba 1 1 h ; h ; ba . 180 2m 4m 2 Поэтому погрешность выражается через количество узлов следующим образом: 4 1 1 4 | RC | 768 10 . 2 180 4m Отсюда 4m 2.13 104 или m 4, n 2m 8 , т. е. получим 9 узлов. 4 Занесем данные в таблицу. x A1 x0 0.5000 f ( x0 ) 2 x1 0.5625 A2 f ( x1 ) 1.77777 f ( x2 ) 1.60 x2 0.6250 x3 0.6875 f ( x3 ) 1.45454 x4 0.7500 f ( x4 ) 1.33333 x5 0.8125 f ( x5 ) 1.23077 x6 0.8750 f ( x6 ) 1.14286 x7 0.9375 x8 1.0 A3 f ( x7 ) 1.06666 f ( x8 ) 1 90 Получим промежуточные результаты. Сложим цифры по столбцам A1 3; A2 5.52976; A3 4.07619 . результат ln 2 В результате получим искомый h A1 4 A2 2 A3 0.6931 . 3 Рассмотрим формулу прямоугольников: R ba 2 ba 1 1 h M 2; h ; ba . 24 n 2n 2 2 1 1 16 104 . Получим R 2 24 2n Отсюда n2 104 / 12 или n 29 . Если использовать формулу трапеций, то для нахождения ln 2 с точностью 104 потребуется 58 узлов сетки подынтегральной функции. Заметим, что если для формулы прямоугольников взять n 8 , то по1 грешность вычисления интеграла ln 2 dx будет превосходить 103 . x 0.5 5.3 Правило Рунге оценки остаточного члена На практике часто используют правило Рунге для оценки погрешности интегрирования b f ( x)dx S n a Sn 2 Sn1 , (n2 / n1) m 1 где S n1 , S n 2 – значения интеграла, вычисленные по какой-либо квадратурной формуле с количеством узлов n1 и n 2 соответственно, m – порядок точности метода: – m 1 для формулы левосторонних и правосторонних прямоугольников; – m 2 для формулы центральных прямоугольников и трапеции; – m 4 для формулы Симпсона. 91 Увеличивая число узлов, можно увеличить точность интегрирования. Если задать точность , то, используя критерий Sn 2 Sn1 , (n2 / n1) m 1 (5.16) можно обеспечить требуемую погрешность интегрирования. В качестве значения интеграла берут S n 2 . При этом обычно n 2 2 n1 , т. е. количество узлов удваивается. Если задана относительная погрешность , то используют следующий критерий: Sn 2 Sn1 . Sn 2 (5.17) 5.4 Формула Гаусса Квадратурная формула Гаусса основана на использовании полиномов Лежандра: b a ba n f ( x)dx Ai f ( xi ), 2 i 1 xi ba ba ti , 2 2 (5.18) (5.19) где ti – нули полиномов Лежандра степени n . Коэффициенты Ai определяются как решение системы линейных уравнений 2 при k четном; Ati ik k 1 i 1 0 при k нечетном. n k 0,1,..., n 1. Формула Гаусса (5.18) является точной для всех полиномов f ( x) степени до 2n 1 включительно. Значения коэффициентов Ai , ti приведены в таблице 5.1. 92 Таблица 5.1 n i ti Ai 1 1 0 2 2 1;2 0.57735027 1 3 1;3 0.77459667 5/9 2 0 8/9 1;4 0.86113631 0.34785484 2;3 0.33998104 0.65214516 1;5 0.90617985 0.23692688 2;4 0.53846931 0.47862868 3 0 0.56888889 1;6 0.932469515 0.17132450 2;5 0.66120939 0.36076158 3;4 0.23861919 0.46791394 4 5 6 С увеличением количества узлов (т. е. с увеличением порядка квадратурной формулы) точность квадратурной формулы (5.18) увеличивается. Приведенная таблица позволяет использовать максимальный порядок формулы, равный 5. Если количество узлов недостаточно для достижения заданной точности, то поступают следующим образом: делят интервал [a, b] пополам, вычисляют интеграл в каждом подынтервале и суммируют. Это эквивалентно удваиванию числа узлов. Если желаемая точность не достигнута, то интервал [a, b] делят на три подынтервала и т. д., пока не будет достигнута заданная точность. Приведем квадратурную формулу для переменного количества узлов. 93 Пусть порядок формулы n фиксирован (например, n 5 ). Тогда ba n S0 Ak f xk0 ; 2 k 1 ba n 1 S1 Ak f 2 2 k 1 i 0 1 ba i ; xk 2 ba f xkj i ) , j 0, 1,..., j 1 ba n j Sj Ak 2( j 1) k 1 i 0 где j 1 – число подынтервалов; xkj (5.20) b a(2 j 1) ba tk . 2( j 1) 2( j 1) Критерий останова S j 1 S j S j 1 . Пример 2. Вычислить по формулам Гаусса при n 3 интеграл 1 I 1 2 xdx. 0 Вычисления провести с 5 значащими цифрами. Решение. Используя таблицу 1, получим 1 1 1 1 t1 (0.774597) 0.11270; 2 2 2 2 1 1 1 1 x2 t2 0 0.5; 2 2 2 2 1 1 1 1 x3 t3 0.774597 0.88730; 2 2 2 2 x1 f ( x1 ) 1.10698; f ( x2 ) 1.41421; f ( x3 ) 1.39870 . 1 5 8 5 S0 f1 f 2 f3 1.3987. 2 9 9 9 (5.21) 94 5.5 Задачи для самостоятельного решения 1. Получите формулу для остаточного члена квадратуры трапеции. 2. Получите формулу для остаточного члена квадратуры Симпсона. 3. Получите формулу для остаточного члена квадратуры центральных прямоугольников. 4. Получите формулу для остаточного члена квадратуры левосторонних прямоугольников. 1 dx 0 1 x , приняв 5. По формуле Симпсона вычислить интеграл n 10 . Вычислить погрешность. 1 dx 0 1 x , приняв 6. По формуле трапеций вычислить интеграл n 10 . Вычислить погрешность. 7. По формуле центральных прямоугольников вычислить интеграл 1 dx 1 x , приняв n 10 . Вычислить погрешность. 0 1 8. По формуле Гаусса вычислить интеграл dx 1 x , приняв n 5 . Вы0 числить погрешность. 2 9. По формуле Симпсона вычислить интеграл dx 0 4 x2 , приняв n 10 . Вычислить погрешность. 2 10. По формуле трапеций вычислить интеграл dx 0 4 x2 , приняв n 10 . Вычислить погрешность. 11. По формуле центральных прямоугольников вычислить интеграл 2 dx 4 x 0 2 , приняв n 10 . Вычислить погрешность. 95 2 12. По формуле Гаусса вычислить интеграл Вычислить погрешность. dx 0 4 x2 , приняв n 5 . 96 6 ЗАДАНИЕ НА КОНТРОЛЬНУЮ РАБОТУ 6.1 Решение уравнений с одной переменной Задание Написать программу отделения корней. Написать программу поиска корня уравнения одним из нижеперечисленных методов: а) методом дихотомии; б) методом хорд; в) методом золотого сечения; г) методом Ньютона; д) методом итераций; е) комбинированным методом. Входные данные: функция f ( x) и ее первая и вторая производные (для метода Ньютона, итераций и комбинированного метода); интервал [a, b] ; точность по аргументу и по функции 1 , 2 . Выходные данные: корни i , точность; значения функции f (i ) ; количество итераций n ; количество вычислений функции f ( x) ; время счета; 97 параметр сходимости xn1 xn xn xn1 n , где n – порядок сходимости. Варианты заданий 1. f ( x) (0.2 x)3 cos x . 2. f ( x) x 10sin x . 3. f ( x) 2 x sin x; x 10 . 4. f ( x) 2 x 2cos x; x 10 . 5. f ( x) lg( x 5) cos x; x 5 . 6. f ( x) 4 x 7 3cos x . 7. f ( x) x sin x 1 . 8. f ( x) 8cos x x 6 . 9. f ( x) sin x 0.2 x . 10. f ( x) 10cos x 0.1x 2 . 11. f ( x) 2 lg( x 7) 5sin x . 12. f ( x) 4cos x 0.3x . 13. f ( x) 5sin 2 x 1 x . 14. f ( x) 1.2 x 4 2 x3 24.1 13x 2 14.2 x . 15. f ( x) 2 x 2 5 2 x . 16. f ( x) 0.5 x 2 10 2 x . 17. f ( x) 4 x 4 6.2 cos0.6 x . 18. f ( x) 3sin8 x 0.7 x 0.9 . 19. f ( x) 1.2 ln x 4cos 2 x . 20. f ( x) ln( x 6.1) 2sin( x 1.4) . 98 6.2 Решение задач линейной алгебры 6.2.1 Решение систем линейных уравнений Задание Написать программу решения системы линейных алгебраических уравнений одним из следующих методов: а) методом Гаусса; б) методом ортогонализации; в) методом Халецкого; г) методом простой итерации; д) методом Зейделя. Входные данные: порядок системы n ; матрица системы A ; правая часть системы b ; точность (для итерационных методов). Выходные данные: промежуточные векторы и матрицы; решение системы; невязка. Варианты заданий 2.74 x1 1.18 x2 3.17 x3 2.18; 1. 1.12 x1 0.83x2 2.16 x3 1.15; 0.81x 1.27 x 0.76 x 3.23. 1 2 3 99 x1 2 x2 3x3 4 x4 7; x 2 x x 1; 1 2 3 2. x1 2 x2 2 x3 1; x2 x3 2. 4 x1 3x2 2 x3 x4 3; 3x 6 x 4 x 2 x 6; 1 2 3 4 3. 2 x1 4 x2 6 x3 3x4 4; x1 2 x2 3x3 4 x4 7. 5 x1 8 x2 x3 2; 4. 3x1 2 x2 6 x3 7; 2 x x x 5. 1 2 3 3.2 x1 5.4 x2 4.2 x3 2.2 x4 2.6; 2.1x 3.2 x 3.1x 1.1x 4.8; 1 2 3 4 5. 1.2 x1 0.4 x2 0.8 x3 0.8 x4 3.6; 4.7 x1 10.4 x2 9.7 x3 9.7 x4 8.4. 3.2 x1 5.4 x2 4.2 x3 2.2 x4 11.4; 2.1x 3.2 x 3.1x 1.1x 9.2; 1 2 3 4 6. 1.2 x1 0.4 x2 0.8 x3 0.8 x4 0.4; 4.7 x1 10.4 x2 9.7 x3 9.7 x4 30.4. 6 x1 x2 x3 11.33; 7. x1 6 x2 x3 32; x x 6 x 42. 3 1 2 100 1.1161x1 0.1254 x2 0.1397 x3 0.1490 x4 1.5471; 0.1582 x 1.1675 x 0.1768 x 0.1871x 1.6471; 1 2 3 4 8. 0.1968 x1 0.2071x2 1.2168 x3 0.2271x4 1.7471; 0.2368 x1 0.2471x2 0.2568 x3 1.2671x4 1.8471. 2.67 x1 5.1x2 3.31x3 5.64 x4 4.76 x5 6.19; 4.44 x 7.5 x 4.67 x 5.7 x 6.14 x 6.95; 1 2 3 4 5 9. 5.33x1 9.8 x2 8.67 x3 4.8 x4 7.33x5 12.2; 3.56 x 5.3x 4.15 x 3.69 x 3.25 x 5.97; 1 2 3 4 5 1.78 x1 4.17 x2 2.67 x3 4.69 x4 3.75 x5 4.42. 7.9 x1 5.6 x2 5.7 x3 7.2 x4 6.68; 8.5 x 4.8 x 0.8 x 3.5 x 9.95; 1 2 3 4 10. 4.3x1 4.2 x2 3.2 x3 9.3x4 8.6; 3.2 x1 1.4 x2 8.9 x3 3.3x4 1. 4 x1 0.24 x2 0.08 x3 8; 11. 0.09 x1 3x2 0.15 x3 9; 0.04 x 0.08 x 4 x 20. 1 2 3 2 x1 0.24 x2 x3 3; 12. 3x1 5 x2 2 x3 1; x 4 x 10 x 0. 2 3 1 10 x1 x2 x3 12; 13. 2 x1 10 x2 x3 13; 2 x 2 x 10 x 14. 2 3 1 101 2 x1 3x2 4 x3 x4 3; x 2 x 5 x x 2; 1 2 3 4 14. 5 x1 3x2 x3 4 x3 1; 10 x1 2 x2 x3 2 x4 4. 2.7 x1 3.3x2 1.3x3 2.1; 15. 3.5 x1 1.7 x2 2.8 x3 1.7; 4.1x 5.8 x 1.7 x 0.8. 1 2 3 3.1x1 2.8 x2 1.9 x3 0.2; 16. 1.9 x1 3.1x2 2.1x3 2.1; 7.5 x 3.8 x 4.8 x 5.6. 1 2 3 3.6 x1 1.8 x2 4.7 x3 3.8; 17. 2.7 x1 3.6 x2 1.9 x3 0.4; 1.5 x 4.5 x 3.3x 1.6. 1 2 3 2.7 x1 0.9 x2 1.5 x3 3.5; 18. 4.5 x1 2.8 x2 6.7 x3 2.6; 5.1x 3.7 x 1.4 x 0.14. 1 2 3 3.8 x1 6.7 x2 1.2 x3 5.2; 19. 6.4 x1 1.3x2 2.7 x3 3.8; 2.4 x 4.5 x 3.5 x 0.6. 1 2 3 102 2.4 x1 0.2 x2 0.3x3 1.1x4 5.86 x5 23.84; 0.3x 0.1x 1.1x 10.2 x x 38.85; 1 2 3 4 5 20. 0.5 x1 6.2 x2 0.1x3 1.5 x4 1.2 x5 17.23; 0.1x 2.1x 5.1x 0.2 x 0.3x 6.56; 1 2 3 4 5 2.5 x1 0.1x2 0.2 x3 0.3x4 0.4 x5 6.63. 6.2.2 Вычисление определителей матриц Задание Написать программу вычисления определителя матрицы одним из следующих методов: а) методом Гаусса; б) методом декомпозиции. Входные данные: порядок системы n ; матрица системы A . Выходные данные: промежуточные матрицы; значение определителя. Варианты заданий В качестве вариантов заданий использовать матрицы из пп. 6.2.1. 6.2.3 Вычисление обратной матрицы Задание Написать программу вычисления обратной матрицы одним из следующих методов: а) методом Гаусса; 103 б) методом ортогонализации; в) методом Халецкого. Входные данные: порядок системы n ; матрица системы A . Выходные данные: промежуточные векторы и матрицы; обратная матрица; невязка. Варианты заданий В качестве вариантов заданий использовать матрицы из пп. 6.2.1. 6.3 Приближение функций Задание Написать программу интерполяции таблично заданной функции с помощью полиномов Ньютона или Лагранжа. Входные данные: исходная сетка узлов интерполяции; значения интерполируемой функции; новая сетка узлов, на которой необходимо вычислить значения функции; порядок полинома. 104 Выходные данные: новая сетка; значения полинома на новой сетке; погрешность интерполирования. Варианты заданий x 2 1. y e , x [0,1], h h 0.1; x j j , 2 2. y 3 x , x [1, 2], h 0.1; j 0, h xj 1 j , 3 , 20 . j 0, , 30 . 2 h 3. y e ( x5) , x [4, 6], h 0.2; x j 4 j ; j 0, 2 , 20 . y e ( x3) e ( x5) , x [2, 6], h 0.2; 4. h x j 2 j , j 0, , 40. 2 2 2 2 h 5. y e x , x [1,1], h 0.1; x j 1 j , j 0, 3 h 6. y x ln x, x [1, 2], h 0.1; x j 1 j , j 0, 2 7. y , 40 . , 20 . 1 h , x [2, 4], h 0.2; x 2 j , j 0, j 1 x3 3 8. y ln( x 1), x [2, 3], h 0.1; x j 2 j , 30 . h j, j 0, 2 h 9. y x 1, x [1, 2], h 0.1; x j 1 j , j 0, 2 , 20 . , 20 . h 10. y sin 2 x 1, x [0, ], h ; x j j , j 0, 2 20 2 , 20 . h 11. y 1 cos 2 x, x [0, ], h ; x j j , j 0, 2 20 2 , 20 . 12. y 1 h , x [0,100], h 2; x j 1 j , j 0, 1 lg x 2 ,100 . 105 13. y 1 h , x [ , ], h ; x j j , j 0, sin x 3 2 60 3 2 , 20 . h 14. y 2 tgx, x [0, 0.2], h 0.02; x j j , j 0, 2 , 20 . h 15. y 3 ctgx, x [0.3, 0.5], h 0.02; x j 0.3 j , j 0, 2 , 20 . 1 y e x , xi 0.2 0.5 i; i 0,1,...,10; 16. x x j 0.2 0.25 j; j 0,1,...,20 1 1 ; xi 0.1 i; i 1,2,...,9; sin x cos x 4 17. 1 x j 0.05 j; j 1,...,18. 4 y 3 y sin x cos x; xi 0.1 i; i 0,1,2,...,20; 4 18. 3 x j 0.15 j; j 1,...,10. 4 19. y sin x; xi 0.1 i; i 0,1,2,...,10; x j 0.05 j; j 0,...,20. y cos x; xi 0.1 i ; i 0,1,2,...,10; 2 20. x j 0.05 j ; j 0,...,20. 2 6.4 Численное дифференцирование Задание Написать программу вычисления первой и второй производной табличной функции с помощью полинома Ньютона или Лагранжа. Входные данные: исходная сетка узлов функции; 106 значения дифференцируемой функции; новая сетка узлов, на которой необходимо вычислить значения производных функции; порядок полинома. Выходные данные: новая сетка; значения производных полинома на новой сетке; погрешность дифференцирования. Варианты заданий В качестве вариантов заданий использовать функции и сетки из пп. 2.3. 6.5 Численное интегрирование Задание 1. Написать программу вычисления интеграла по одной из квадратурных формул: трапеции, Симпсона или прямоугольников с автоматическим выбором шага интегрирования. Входные данные: начальное количество узлов n0 ; сетка узлов (или шаг сетки и границы интервала); значения функции либо аналитическая функция; относительная точность. Выходные данные: значение интеграла; количество узлов. 107 2. Написать программу вычисления интеграла по формуле Гаусса. Входные данные: порядок формулы; границы интервала; подынтегральная функция. Выходные данные: значение интеграла. Варианты заданий 2 2 dx , n 6. 1. (1 x ) x 0 3 3. dx , n 4. x (e x /2 3) 2 x 2 dx 0 5. 2 7. x2 1 0 1 9. , n 4. 1 1 x 0 2 4. 6. 0 xdx x2 1 , n 4. , n 4. , n 4. 8. ln x ln(1 x)dx, n 4. , n 4. 0 2 1 x 2 , n 8. e x dx, n 10. 11. 2 x 0 13. x2 1 0 10. dx 1 x3 e x2 cos xdx, n 6. 1 dx x 0 dx x 4 (1 x)3 1 x3dx dx 4 x2 1 0 2. 12. x e sin xdx, n 6. 2 3.5 , n 6. 14. 2 2 dx , n 6. 15. 2 x 4 0 10 16. 2 dx 5 4 x x2 dx 1 x 4 , n 6. , n 6. 108 2 17. 1 1 x dx, n 6. 3 18. 0 1 x 19. dx, n 6. 2 x 1 4 x 3dx 0 x8 1, n 6. 2 20. 0 1 x 5 dx, n 6. 109 7 ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ № 1 7.1 Решение задач линейной алгебры 7.1.1 Решение систем линейных уравнений Задание Написать программу решения системы линейных алгебраических уравнений одним из следующих методов: а) методом Гаусса; б) методом ортогонализации; в) методом Халецкого; г) методом простой итерации; д) методом Зейделя. Входные данные: порядок системы n ; матрица системы A ; правая часть системы b ; точность (для итерационных методов). Выходные данные: промежуточные векторы и матрицы; решение системы; невязка. Варианты заданий 2.74 x1 1.18 x2 3.17 x3 2.18; 1. 1.12 x1 0.83x2 2.16 x3 1.15; 0.81x 1.27 x 0.76 x 3.23. 1 2 3 110 x1 2 x2 3x3 4 x4 7; x 2 x x 1; 1 2 3 2. x1 2 x2 2 x3 1; x2 x3 2. 4 x1 3x2 2 x3 x4 3; 3x 6 x 4 x 2 x 6; 1 2 3 4 3. 2 x1 4 x2 6 x3 3x4 4; x1 2 x2 3x3 4 x4 7. 5 x1 8 x2 x3 2; 4. 3x1 2 x2 6 x3 7; 2 x x x 5. 1 2 3 3.2 x1 5.4 x2 4.2 x3 2.2 x4 2.6; 2.1x 3.2 x 3.1x 1.1x 4.8; 1 2 3 4 5. 1.2 x1 0.4 x2 0.8 x3 0.8 x4 3.6; 4.7 x1 10.4 x2 9.7 x3 9.7 x4 8.4. 3.2 x1 5.4 x2 4.2 x3 2.2 x4 11.4; 2.1x 3.2 x 3.1x 1.1x 9.2; 1 2 3 4 6. 1.2 x1 0.4 x2 0.8 x3 0.8 x4 0.4; 4.7 x1 10.4 x2 9.7 x3 9.7 x4 30.4. 6 x1 x2 x3 11.33; 7. x1 6 x2 x3 32; x x 6 x 42. 3 1 2 111 1.1161x1 0.1254 x2 0.1397 x3 0.1490 x4 1.5471; 0.1582 x 1.1675 x 0.1768 x 0.1871x 1.6471; 1 2 3 4 8. 0.1968 x1 0.2071x2 1.2168 x3 0.2271x4 1.7471; 0.2368 x1 0.2471x2 0.2568 x3 1.2671x4 1.8471. 2.67 x1 5.1x2 3.31x3 5.64 x4 4.76 x5 6.19; 4.44 x 7.5 x 4.67 x 5.7 x 6.14 x 6.95; 1 2 3 4 5 9. 5.33x1 9.8 x2 8.67 x3 4.8 x4 7.33x5 12.2; 3.56 x 5.3x 4.15 x 3.69 x 3.25 x 5.97; 1 2 3 4 5 1.78 x1 4.17 x2 2.67 x3 4.69 x4 3.75 x5 4.42. 7.9 x1 5.6 x2 5.7 x3 7.2 x4 6.68; 8.5 x 4.8 x 0.8 x 3.5 x 9.95; 1 2 3 4 10. 4.3x1 4.2 x2 3.2 x3 9.3x4 8.6; 3.2 x1 1.4 x2 8.9 x3 3.3x4 1. 4 x1 0.24 x2 0.08 x3 8; 11. 0.09 x1 3x2 0.15 x3 9; 0.04 x 0.08 x 4 x 20. 1 2 3 2 x1 0.24 x2 x3 3; 12. 3x1 5 x2 2 x3 1; x 4 x 10 x 0. 2 3 1 10 x1 x2 x3 12; 13. 2 x1 10 x2 x3 13; 2 x 2 x 10 x 14. 2 3 1 112 2 x1 3x2 4 x3 x4 3; x 2 x 5 x x 2; 1 2 3 4 14. 5 x1 3x2 x3 4 x3 1; 10 x1 2 x2 x3 2 x4 4. 2.7 x1 3.3x2 1.3x3 2.1; 15. 3.5 x1 1.7 x2 2.8 x3 1.7; 4.1x 5.8 x 1.7 x 0.8. 1 2 3 3.1x1 2.8 x2 1.9 x3 0.2; 16. 1.9 x1 3.1x2 2.1x3 2.1; 7.5 x 3.8 x 4.8 x 5.6. 1 2 3 3.6 x1 1.8 x2 4.7 x3 3.8; 17. 2.7 x1 3.6 x2 1.9 x3 0.4; 1.5 x 4.5 x 3.3x 1.6. 1 2 3 2.7 x1 0.9 x2 1.5 x3 3.5; 18. 4.5 x1 2.8 x2 6.7 x3 2.6; 5.1x 3.7 x 1.4 x 0.14. 1 2 3 3.8 x1 6.7 x2 1.2 x3 5.2; 19. 6.4 x1 1.3x2 2.7 x3 3.8; 2.4 x 4.5 x 3.5 x 0.6. 1 2 3 113 2.4 x1 0.2 x2 0.3x3 1.1x4 5.86 x5 23.84; 0.3x 0.1x 1.1x 10.2 x x 38.85; 1 2 3 4 5 20. 0.5 x1 6.2 x2 0.1x3 1.5 x4 1.2 x5 17.23; 0.1x 2.1x 5.1x 0.2 x 0.3x 6.56; 1 2 3 4 5 2.5 x1 0.1x2 0.2 x3 0.3x4 0.4 x5 6.63. 7.1.2 Вычисление определителей матриц Задание Написать программу вычисления определителя матрицы одним из следующих методов: а) методом Гаусса; б) методом декомпозиции. Входные данные: порядок системы n ; матрица системы A . Выходные данные: промежуточные матрицы; значение определителя. Варианты заданий В качестве вариантов заданий использовать матрицы из пп. 7.1.1. 7.1.3 Вычисление обратной матрицы Задание Написать программу вычисления обратной матрицы одним из следующих методов: а) методом Гаусса; 114 б) методом ортогонализации; в) методом Халецкого. Входные данные: порядок системы n ; матрица системы A . Выходные данные: промежуточные векторы и матрицы; обратная матрица; невязка. Варианты заданий В качестве вариантов заданий использовать матрицы из пп. 7.1.1. 115 8 ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ № 2 8.1 Приближение функций Задание Написать программу интерполяции таблично заданной функции с помощью полиномов Ньютона или Лагранжа. Входные данные: исходная сетка узлов интерполяции; значения интерполируемой функции; новая сетка узлов, на которой необходимо вычислить значения функции; порядок полинома. Выходные данные: новая сетка; значения полинома на новой сетке; погрешность интерполирования. Варианты заданий x 2 1. y e , x [0,1], h h 0.1; x j j , 2 2. y 3 x , x [1, 2], h 0.1; h xj 1 j , 3 j 0, j 0, 2 h 3. y e ( x5) , x [4, 6], h 0.2; x j 4 j ; j 0, 2 y e ( x3) e ( x5) , x [2, 6], h 0.2; 4. h x j 2 j , j 0, , 40. 2 2 2 , 20 . , 30 . , 20 . 116 2 h 5. y e x , x [1,1], h 0.1; x j 1 j , j 0, 3 h 6. y x ln x, x [1, 2], h 0.1; x j 1 j , j 0, 2 7. y , 40 . , 20 . 1 h , x [2, 4], h 0.2; x 2 j , j 0, j 1 x3 3 8. y ln( x 1), x [2, 3], h 0.1; x j 2 j , 30 . h j, j 0, 2 h 9. y x 1, x [1, 2], h 0.1; x j 1 j , j 0, 2 , 20 . , 20 . h 10. y sin 2 x 1, x [0, ], h ; x j j , j 0, 2 20 2 , 20 . h 11. y 1 cos 2 x, x [0, ], h ; x j j , j 0, 2 20 2 , 20 . 12. y 1 h , x [0,100], h 2; x j 1 j , j 0, 1 lg x 2 ,100 . 13. y 1 h , x [ , ], h ; x j j , j 0, sin x 3 2 60 3 2 , 20 . h 14. y 2 tgx, x [0, 0.2], h 0.02; x j j , j 0, 2 , 20 . h 15. y 3 ctgx, x [0.3, 0.5], h 0.02; x j 0.3 j , j 0, 2 1 y e x , xi 0.2 0.5 i; i 0,1,...,10; x 16. x j 0.2 0.25 j; j 0,1,...,20 1 1 ; xi 0.1 i; i 1,2,...,9; sin x cos x 4 17. 1 x j 0.05 j; j 1,...,18. 4 y , 20 . 117 3 y sin x cos x; xi 0.1 i; i 0,1,2,...,20; 4 18. 3 x j 0.15 j; j 1,...,10. 4 19. y sin x; xi 0.1 i; i 0,1,2,...,10; x j 0.05 j; j 0,...,20. y cos x; xi 0.1 i ; i 0,1,2,...,10; 2 20. x j 0.05 j ; j 0,...,20. 2 8.2 Численное дифференцирование Задание Написать программу вычисления первой и второй производной табличной функции с помощью полинома Ньютона или Лагранжа. Входные данные: исходная сетка узлов функции; значения дифференцируемой функции; новая сетка узлов, на которой необходимо вычислить значения производных функции; порядок полинома. Выходные данные: новая сетка; значения производных полинома на новой сетке; погрешность дифференцирования. 118 Варианты заданий В качестве вариантов заданий использовать функции и сетки из пп. 8.1. 8.3 Численное интегрирование Задание 1. Написать программу вычисления интеграла по одной из квадратурных формул: трапеции, Симпсона или прямоугольников с автоматическим выбором шага интегрирования. Входные данные: начальное количество узлов n0 ; сетка узлов (или шаг сетки и границы интервала); значения функции либо аналитическая функция; относительная точность. Выходные данные: значение интеграла; количество узлов. 2. Написать программу вычисления интеграла по формуле Гаусса. Входные данные: порядок формулы; границы интервала; подынтегральная функция. 119 Выходные данные: значение интеграла. Варианты заданий 2 2 dx 1. , n 6. (1 x ) x 0 3 3. dx , n 4. x (e x /2 3) 2 x 2 dx 0 5. 2 7. x2 1 0 1 9. , n 4. 1 1 x 0 2 4. 6. 0 1 x 2 2 , n 8. 10. e x2 , n 4. cos xdx, n 6. 12. x e sin xdx, n 6. 2 3.5 dx 1 x3 , n 6. dx , n 6. 15. 2 x 4 0 2 x2 1 , n 4. 0 14. 2 2 17. xdx , n 4. 8. ln x ln(1 x)dx, n 4. , n 4. e x dx, n 10. 11. 2 x 0 13. x2 1 0 1 dx x 0 dx x 4 (1 x)3 1 x3dx dx 4 x2 1 0 2. 10 16. 2 dx 5 4 x x2 dx 1 x 4 , n 6. , n 6. 1 1 x dx, n 6. 3 0 1 x dx, n 6. 19. x2 1 x 3dx 18. 8 , n 6. x 1 0 4 2 20. 0 1 x 5 dx, n 6. 120 ОТВЕТЫ К ЗАДАЧАМ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ Решение уравнений с одной переменной 1. Ответ: x 0.450 . 2. Решение. Максимальное количество итераций в методе перебора равно количеству подынтервалов, на которые мы разбиваем интервал [a, b] . Ответ: n ba . 3. Решение. Критерий завершения итерационного процесса опредеba ляется формулой bn an / 2 . Отсюда получим n log 2 1. 4. Ответ: x 0.867 . 5. Ответ: x 0.567 . 6. Ответ: x 2.852 . 7. Ответ: x 0.567 . 8. Ответ: x 0.450 . 9. Максимальный отрезок золотого сечения равен 2 0 / 2 , где 0 – исходный интервал [a, b] . Через n итераций получим 2 0 / 2 n . Следовательно, если точность поиска корня равна , то из неравенства 0 ln( 0 / ) n получим . 2n 2ln 10. Ответ: x 2.595 . 11. Решение. Погрешность корня равна xn q xn xn1 . 1 q Разность xn xn1 можно представить как xn xn1 q n1 x1 x0 . 121 Поэтому n q n1 qn xn q x1 x0 b a . Отсюда следует 1 q 1 q lg[ (1 q)] lg(b a) . lg q Решение задач линейной алгебры 1. Ответ: x1 1; x2 1; x3 1; x4 1. 2. Ответ: x1 3; x2 2; x3 1 . 3. Ответ: x1 3; x2 2; x3 1 . 4. Ответ: 1) p q 1 (для нормы I,II); 2) p 2 q 2 0.5 (для нормы III). 5. Ответ: 1) p 2 q 1 (для нормы I,II); 2) 3 p 2 4q 2 1 (для нормы III). 6. Ответ: x1 1.995; x2 1.006; x3 2.995. 7. Ответ: x1 1.998; x2 1.001; x3 2.999 . 8. Ответ: det A 3. 9. Доказательство: (ai bi x, ai x bi , ci ) (ai , ai x bi , ci ) (bi x, ai x bi , ci ) (ai , ai x, ci ) (ai , bi , ci ) (bi x, ai x, ci ) (bi x, bi , ci ) x(ai , ai , ci ) (ai , bi , ci ) x 2 (bi , ai , ci ) x(bi , bi , ci ) x 0 (ai , bi , ci ) x 2 (ai , bi , ci ) x 0 (1 x 2 )(ai , bi , ci ). 10. Ответ: D 8. 11. Ответ: D 10. 8 29 11 12. Ответ: A1 5 18 7 . 1 3 1 122 Приближение функций n 1. Решение. Для суммы f (n) k 3 построим таблицу конечных k 1 разностей. n f ( n) f 2 f 3 f 4 f 1 1 8 19 18 6 2 9 27 37 24 6 3 36 64 61 30 4 100 125 91 5 225 216 6 441 Построим полином максимальной степени (максимальная степень полинома равна 4): P(n) 1 8 (n 1) 9,5 (n 1)(n 2) 3 ( n 1)( n 2)( n 3) 0,25 (n 1)(n 2)(n 3)(n 4). 2. P(n) 1 9 (n 1) 8 (n 1)(n 2) (4 / 3) (n 1)(n 2)(n 3) . 3. Запишем определитель, составленный из системы функций i ( x) 1, x, x 2 ,..., x n на сетке xk x0 , x1,..., xn из [a, b] 1 1 1 ... 1 x0 x1 x2 ... xn x02 x12 x22 ... xn2 ... x0n ... x1n ... x2n ( xi xk ). i k ... xnn Это определитель Вандермонда. Если все xi попарно различны, то отличен от нуля. Отсюда следует, что: 1) система функций i ( x) 123 n линейно не зависима; 2) любой обобщенный полином Pn ( x) ci xi i 0 имеет не более n корней на [a, b] . Действительно, если бы определитель был равен нулю, то мы бы имели линейно зависимые столбцы определителя, что равносильно выполнению равенств c0 1 c1 xk c2 xk2 ... cn xkn 0, k 0,1,..., n. А это означает, что мы бы имели n 1 корней. 6. Для полинома 1-го порядка погрешность равна: M2 ( x 1.96)( x 2.25) ; 2! M 2 max f ''( x) f ''(1.96) 0.0911; R1 ( x) x[1.96,2.25] R1 (2) 0.00046. Для полинома 2-го порядка: 1 M 3 ( x 1.69)( x 1.96)( x 2.25) ; 3! M 3 max f '''( x) f '''(1.69) 0.101; R2 ( x) x[1.69,2.25] 1 R2 (2) 0.101 (2 1.69)(2 1.96)(2 2.25) 0.000052. 6 7. При линейной интерполяции M2 2 h max q (q 1) ; 2! M 2 max f ''( x) sin( x) 1; R1 ( x) x[0, /2] h2 R1 (2) 0,0001. h 2,8 102. 8 124 При квадратичной интерполяции: M3 3 h max q (q 1) (q 2) ; 3! M 3 max f ( x) cos( x) 1; R2 ( x) x[0, /2] qm 0,423; f (qm ) qm (qm 1) (qm 2) 0,385; 0,385 h3 R2 (2) 0,0001. h 1,2 101. 6 11. sin x 1.5704(2 x / ) 0.6427(2 x / )3 0.0724(2 x / )5 . 12. (1 x 2 )3/2 4 16 2 1 64 4 1 (x ) ( x x2 ) ; 3 5 2 35 8 2 2 2 5 1 4 8 1 8 1 S . 12 3 5 2 35 2 Численное дифференцирование 3. Скорость V 37.75 м/с, ускорение w 21 м/с2. 4. Производная P3 0.1 0.4756 . Погрешность, вычисленная по формуле (4.2) R3 0.1 4.37 104 . Это самая большая возможная погрешность. Если использовать максимальное значение четвертой производной на интервале max | f (4) ( x) | 0.0625 , получим более точную оценку x погрешности R3 0.1 2.083 105 . Точная разность | f (0.1) P3(0.1) | 1.866 105 . Вторая производная P3 0.1 0.2372 . Погрешность, вычисленная по формуле (4.5) R3 0.1 1.53 102 . Это самая большая возможная погрешность. 125 Если использовать максимальное значение четвертой производной на интервале max | f (4) ( x) | 0.0625 , получим более точную оценку x погрешности R3 0.1 7.29 104 . Точная разность | f (0.1) P3(0.1) | 6.37 104 . 5. Производная L3 0.1 0.4756 . Погрешность вычисления производной L3 0.1 2.083 105 . Точное значение разности составляет | f (0.1) L3 (0.1) | 1.866 105 . Вторая производная L3 0.1 7.29 104 . L3 0.1 0.2372 . Погрешность вычисления Точное значение разности составляет | f (0.1) L3(0.1) | 6.37 104 . 6. Производная P3 0.1 0.201. Погрешность, вычисленная по формуле (4.2) R3 0.1 0.0341 . Это самая большая возможная погрешность. Если использовать максимальное значение четвертой производной на интервале max | f (4) ( x) | 12 , x получим более точную оценку погрешности R3 0.1 0.004 . Точная разность | f (0.1) P3(0.1) | 0.003 . Вторая производная P3 0.1 2.031. Погрешность, вычисленная по формуле (4.5) R3 0.1 1.195 . Это самая большая возможная погрешность. Если использовать максимальное значение четвертой производной на интервале max | f (4) ( x) | 12 , x получим погрешности R3 0.1 0.14 . Точная разность | f (0.1) P3(0.1) | 0.0905 . более точную оценку 126 L3 0.1 0.201 . 7. Производная производной Погрешность вычисления L3 0.1 0.004 . Точное значение разности составляет | f (0.1) L3 (0.1) | 0.003 . Вторая производная L3 0.1 0.14 . L3 0.1 2.031 . Погрешность вычисления Точное значение разности | f (0.1) L3(0.1) | 0.0905 . Численное интегрирование 5. I 0.69315 0.00001. 6. I 0.693 0.002 . 7. I 0.6928 0.0008 . 8. I 0.693147 0.000001 . 9. I 0.392799 0.000007 . 10. I 0.3925 0.0008 . 11. I 0.3928 0.0004 . 12. I 0.3926991 0.0000007 . составляет 127 ЛИТЕРАТУРА 1. Бахвалов Н. С. Численные методы : учеб. пособие для вузов / Н. С. Бахвалов, Н. П. Жидков, Г. М. Кобельков. – М. : БИНОМ. Лаборатория знаний, 2011. – 637 с. 2. Мицель А. А. Вычислительные методы : учеб. пособие / А. А. Мицель. – Томск : В-Спектр, 2010. – 264 с. 3. Мицель А. А. Практикум по численным методам / А. А. Мицель. – Томск : ТУСУР, 2004. – 196 с. 4. Копченова Н. В. Вычислительная математика в примерах и задачах : учеб. пособие [Электронный ресурс] / Н. В. Копченова, И. А. Марон. – СПб. : Лань, 2009. – 368 с. – Режим доступа: http://e.lanbook.com/view/book/198/ (дата обращения: 04.05.2018). 5. Романенко В. В. Вычислительная математика. Лабораторные работы / В. В. Романенко. – Томск : ТУСУР, 2006. – 114 с. 6. Самарский А. А. Задачи и упражнения по численным методам / А. А. Самарский, П. Н. Вабишевич, Е. А. Самарская. – М. : Эдиториал УРСС, 2009. – 208 с. 7. Образовательный стандарт вуза ОС ТУСУР 01–2013. Работы студенческие по направлениям подготовки и специальностям технического профиля. Общие требования и правила оформления [Электронный ресурс] / А. А. Чернышев. – Томск : ТУСУР, 2013. – 57 с. – Режим доступа: https://regulations.tusur.ru/documents/70 (дата обращения: 04.05.2018). 128 ПРИЛОЖЕНИЕ А ШАБЛОН ОТЧЕТА ПО КОНТРОЛЬНОЙ И ЛАБОРАТОРНЫМ РАБОТАМ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ Федеральное государственное бюджетное образовательное учреждение высшего образования ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) Кафедра __________________________________ (_____) Отчет по контрольной (лабораторной) работе №__ по дисциплине «_______________________________________» Выполнил: ст. гр. _____ ________________ И. О. Фамилия «_____» ________ 20__ г. Проверил: доц. каф. АСУ ________ В. В. Романенко «_____» ________ 20__ г. Томск – 20__ 129 Оглавление 1 Решение уравнений с одной переменной ...................................................... 3 1.1 Задание ....................................................................................................... 3 1.2 Теоретический материал .......................................................................... 3 1.3 Алгоритм решения .................................................................................... 5 1.4 Результаты работы программы ................................................................ 6 2 Решение задач линейной алгебры .................................................................. 7 2.1 Задание ....................................................................................................... 7 2.2 Теоретический материал .......................................................................... 8 2.3 Алгоритм решения .................................................................................. 10 2.4 Результаты работы программы .............................................................. 11 (и так далее для всех разделов) Выводы ............................................................................................................... 40 Список использованных источников .............................................................. 41 Приложение А (обязательное) Листинги программ ...................................... 42