БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ МЕХАНИКО-МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ Кафедра численных методов и программирования ИНТЕРПОЛИРОВАНИЕ ФУНКЦИЙ И ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ Вычислительный практикум для студентов мех.-мат. фак. спец. 1-31 03 01 «Математика (по направлениям)», 1-31 03 02 «Механика (по направлениям)» Минск 2008 УДК 681.142.2(072) ББК 32.973.26-018.1я73 Р69 Авторы: П. И. Монастырный, А. И. Азаров, М. В. Игнатенко, А. И. Кравчук, Ю. А. Кремень, В. А. Радаева, Т. С. Якименко Рецензенты: кандидат физико-математических наук, доцент Г. А. Расолько, кандидат физико-математических наук, доцент Н. П. Феденко Рекомендовано Ученым советом механико-математического факультета БГУ 2003 года, протокол № ___ В пособии рассматривается интерполирование функций и численное интегрирование. Предназначено для студентов 3–4 курсов механико-математического факультета дневной формы обучения. УДК 681.142.2(072) ББК 32.973.26-018.1я73 Коллектив авторов, 2008 БГУ, 2008 2 Те м а 1 АЛГЕБРАИЧЕСКОЕ ИНТЕРПОЛИРОВАНИЕ. ПОЛИНОМ ЛАГРАНЖА Постановка задачи интерполирования. Системы функций Чебышева Рассмотрим линейное множество R действительных функций, определенных на отрезке [ a; b ] , и некоторую конечную или счетную систему линейно независимых функций {ϕi ( x)} из этого множества. Линейную комбинацию n τ( x) = ∑ ci ϕi ( x) i =0 с действительными коэффициентами ci называют обобщенным многочленом по системе функций ϕk ( x) (k = 0, 1, ..., n). Определение. Совокупность функций ϕ0 ( x), ϕ1 ( x), …, ϕn ( x) называется системой Чебышева на отрезке [ a; b ] , если любой обобщенный многочлен по этой системе, у которого хотя бы один из коэффициентов отличен от нуля, имеет на [ a; b ] не более n корней. Пусть на отрезке [ a; b ] в некоторых попарно различных точках x0 , x1 , ..., xn известны значения функций f ( x). Задача интерполирования функции f (x) состоит в том, чтобы найти значение f ( x), x ≠ xi (i = 0, 1, ..., n), если известны узлы интерполирования x0 , x1 , ..., xn и значения функции f (x) в этих узлах. Решается задача интерполирования следующим образом: выбирается система функций ϕi ( x) , строится обобщенный многочлен n τ( x) = ∑ ci ϕi ( x), а коэффициенты ci задаются таким образом, чтобы в i =0 узлах интерполирования значения обобщенного многочлена совпадали со значениями данной функции f ( x): n τ( xk ) = ∑ ci ϕi ( xk ) = f ( xk ), k = 0,1, … , n. i =0 3 Обобщенный многочлен, обладающий таким свойством, называется обобщенным интерполяционным многочленом. За приближенное значение f (x) принимают значение τ( x) . Выясним, когда задача интерполирования решается однозначно. Т е о р е м а 1 . Для того чтобы для любой функции f ( x) ∈ R, определенной на отрезке [ a; b ] , и любого набора n + 1 узлов x0 , x1 , ..., xn ( xi ≠ x j при i ≠ j , xi ∈ [a; b]) существовал и был бы единственным обобщенный интерполяционный многочлен τ( x) = c0ϕ0 ( x) + c1ϕ1 ( x) + … + cnϕn ( x) , необходимо и достаточно, чтобы система функций ϕi ( x) (i = 0, 1, ..., n) являлась системой Чебышева на [ a; b ] . На практике чаще всего используются следующие системы: 1) 1, x, x 2 , ..., x n , ...; 2) 1, sin x, cos x, ..., sin nx, cos nx, ...; 3) eα0 x , eα1x , ..., eαn x , ..., где αi – некоторая числовая последовательность попарно различных действительных чисел. В случае 1) интерполирование называется алгебраическим, в случае 2) – тригонометрическим (применяется для приближения 2π – периодических функций), в случае 3) – экспоненциальным [2–5]. Алгебраическое интерполирование. Погрешность интерполирования Пусть a = x0 < x1 < ... < xn = b – набор различных точек (узлов) на отрезке [ a; b ] , в котором заданы значения достаточно гладкой функции f (x) так, что f i = f ( xi ), i = 0,1, ..., n. Требуется построить многочлен Ln (x) степени не выше n , принимающий в точках xi значения f i , и оценить погрешность приближения функции этим многочленом на всем отрезке [ a; b ] . Введем в явном виде вспомогательные многочлены Ω i (x) степе1, если i = j , ни n − 1, удовлетворяющие условиям Ωi ( x j ) = 0, если i ≠ j , по формулам: n Ωi ( x ) = ∏ j =0 j ≠i 4 x − xj xi − x j . (1.1) Тогда интерполяционный многочлен Ln (x) можно задать по формуле Лагранжа n Ln ( x) = ∑ Ωi ( x) fi , (1.2) i =0 при этом Ω i (x) удобно преобразовать к виду Ωi ( x ) = ω( x) , ( x − xi ) ω′( xi ) (1.3) n где ω( x) = ∏ ( x − xi ). i =0 Разность rn ( x) = f ( x) − Ln ( x) называется погрешностью интерполирования или остаточным членом интерполирования. В узлах интерполирования погрешность rn (x) обращается в нуль, в остальных точках она отлична от нуля, но если f (x) – многочлен степени k , k < n + 1, то rn ( x) ≡ 0. Если функция f (x) имеет непрерывную (n + 1) производную, то остаточный член можно представить в виде rn ( x) = f ( n+1) (ξ) ω( x) , (n + 1)! (1.4) где ξ – некоторая точка, лежащая на отрезке, содержащем узлы x0 , x1 , ..., xn и точку x [1–3]. Из оценки (1.4) видно, что для данной функции f (x) погрешность интерполирования зависит от выбора узлов x0 , x1 , ..., xn на отрезке [ a; b ] . Минимальную погрешность для отрезка [ −1;1] будет давать выбор в качестве узлов интерполирования корней приведенного многочлена Чебышева первого рода Tn+1 ( x) = 1 cos((n + 1)arccos x ) , 2n которые вычисляются по формуле xi = cos (2i + 1)π , i = 0,1, ..., n. 2(n + 1) (1.5) В случае произвольного отрезка [ a; b ] из (1.5) получаем формулу для оптимальных узлов: 5 xi = a+b b−a (2i + 1)π , i = 0,1, ..., n. + cos 2 2 2(n + 1) Величина λ n = max x∈[ a ; b ] n ∑ Ω ( x) i =0 (1.6) называется константой Лебега ин- i терполяционного процесса. Скорость ее роста в зависимости от величины n определяет как сходимость Ln (x) к f (x) в равномерной норме, так и оценку вычислительной погрешности интерполяции. Пример 1. Построить многочлен наименьшей степени, принимающий в данных точках следующие значения: –1 –14 x y 0 –5 3 22 6 175 По формуле (1.1) вычислим вспомогательные многочлены: x − 0 )( x − 3)( x − 6 ) ( x3 − 9 x 2 + 18 x Ω0 ( x) = = , −28 ( −1 − 0 )( −1 − 3)( −1 − 6 ) ( x − (−1) )( x − 3)( x − 6 ) x 3 − 8 x 2 + 9 x + 18 Ω1 ( x) = = , (0 − (−1) )(0 − 3)(0 − 6 ) 18 ( x − (−1) )( x − 0 )( x − 6 ) x 3 − 5 x 2 − 6 x Ω 2 ( x) = = , (3 − (−1) )(3 − 0 )(3 − 6 ) − 36 ( x − (−1) )( x − 0 )( x − 3) x 3 − 2 x 2 − 3x Ω 3 ( x) = = . (6 − (−1) )(6 − 0 )(6 − 3) 126 Затем по формуле (1.2) построим интерполяционный многочлен Лагранжа: x3 − 9 x 2 + 18 x x 3 − 8 x 2 + 9 x + 18 x3 − 5 x 2 − 6 x L3 ( x) = −14 + (−5) + 22 + −28 18 −36 +175 x3 − 2 x 2 − 3x = x3 − 2 x 2 + 6 x − 5. 126 Пример 2. Функция f (x) задана таблицей. x f(x) 0 –5,00 2 –20,94 5 –96,88 6 7 –155,38 12 124,02 14 747,64 Вычислить f (10). По формуле (1.2) получаем f (10) = −125,00 . Пример 3. С какой точностью можно вычислить по формуле Лагранжа ln100,5 по известным значениям ln100, ln101, ln102, ln103, ln104? Используя формулу представления остатка (1.4) и формулу для пятой производной ln x, имеем ln100,5 − L4 (100,5) ≤ 24 ⋅ 0,52 ⋅ 1,5 ⋅ 2,5 ⋅ 3,5 < 0,7 ⋅ 10−10. 10 10 ⋅ 5! Литература 1. Сборник задач по методам вычислений / под ред. П. И. Монастырного. – М.: Наука, 1994. 2. Крылов, В. И. Вычислительные методы высшей математики / В. И. Крылов, В. В. Бобков, П. И. Монастырный. Т. 2. – Минск: Выш. шк., 1975. 3. Крылов, В. И. Вычислительные методы / В. И. Крылов, В. В. Бобков, П. И. Монастырный. Т. 2. – М: Наука, 1976. 4. Бахвалов, Н. С. Численные методы / Н. С. Бахвалов. – М.: Наука, 1975. 5. Мысовских, И. П. Лекции по методам вычислений / И. П. Мысовских. – М.: Государственное изд. физико-математической литературы, 1962. 6. Бахвалов, Н. С. Численные методы в задачах и упражнениях /Н.С. Бахвалов, А. В. Лапин, Е. В. Чижонков.– М.: Высш. шк., 2000. Задание по теме 1 В приводимых ниже вариантах задач индивидуально и в соответствии с целями и указаниями, определяемыми преподавателем, выполнить одно или несколько требований: написать блок-схему; написать программу реализации алгоритма, отладить и выполнить на компьютере; найти решение с заданной точностью; вывести на печать значения решения; результаты вычислений оформить в виде массивов. Задачи по теме 1 Вариант 1 1. Доказать, что функции eα0 x, eα1x, ..., eαn x , где αi – некоторые действительные числа, αi ≠ α j при i ≠ j , образуют систему Чебышева при −∞ < x < ∞. 7 2. Построить алгебраический интерполяционный многочлен по значениям f ( x0 ), f ( x1 ), ..., f ( xn ). 3. Доказать теорему 1. 1 4. Функция f ( x) = 2 приближается на [ −4; − 1] многочлеA −x ном Лагранжа по узлам xi = −4, −3, −2, −1. При каких значениях A оценка погрешности в равномерной норме не превосходит 10 −5 ? π 3π 5. Функция cos x приближается на отрезке ; интерполя 2 4 π 5π 3π ционным многочленом по значениям в точках , , . Оценить 2 8 4 погрешность интерполирования на этом отрезке. π 6. Оценить число точек на отрезке 0; , обеспечивающее 4 интерполирование функции f ( x) = sin x с точностью ε ≤ 10−2. 7. Построить интерполяционный многочлен для функции f ( x) = x по узлам –1, 0, 1. 8. Функция ln x приближается на отрезке [1; 2] интерполяцион4 5 ным многочленом третьей степени по четырем узлам 1, , , 2. До3 3 казать, что погрешность интерполирования в равномерной норме не 1 превосходит . 300 9. Пусть функция f ( x) = sin x задана на отрезке [0; b] . При каком b многочлен Лагранжа L3 ( x) , построенный на равномерной сетке, приближает эту функцию с погрешностью ε ≤ 10−3? 10. Используя многочлен Лагранжа, найти приближенное значение функций, заданных таблицами в указанных точках: 1 2 4 7 x а) f (x) 4,05 0,4 –4,8 –2,85 3 при x = , 3, 4, 5. 2 б) x f (x) 10 –892 13 –1311 17 -1462 при x = 11, 15, 22, 27. 8 21 –318 25 3524 28 9378 в) x f (x) 11 2,655 13 –1,015 15 –3,125 17 –3,435 при x = 12, 14, 16. Вариант 2 1 x xn , где R(x) – мно1. Доказать, что функции , , ..., R ( x) R( x) R( x) гочлен, образуют систему Чебышева на всяком отрезке, на котором R(x) не имеет корней. 2. Доказать, что функции 1, sin x на отрезке [0; π] линейно независимы, но системы Чебышева не образуют. 3. Доказать, что функции x, x 2, ..., x n, образуют систему Чебышева на отрезке [1; 5]. Найти отрезок, на котором данные функции не являются системой Чебышева. 4. Оценить погрешность приближения функции e x интерполяционным многочленом Лагранжа L2 ( x), построенным по узлам 0; 0,1; 0,2 в точке а) 0,05; б) 0,15. 5. Оценить погрешность интерполирования функции f ( x) = arccos x на отрезке [0; 1] многочленом Лагранжа пятой степени на равномерной сетке. 6. Определить степень многочлена Лагранжа на равномерной сетке, обеспечивающую точность приближения функции sin x на от π резке 0; не хуже 10−5. 2 7. Построить интерполяционный многочлен для функции f ( x) = x 2 по узлам xi = i, i = 0,1, 2, 3. 1 1 8. Функция f ( x) = e 2 x приближается на отрезке − ; интер 2 2 1 1 поляционным многочленом второй степени по трем узлам: − , 0, . 2 2 Доказать, что погрешность интерполяции в равномерной норме не 3 превосходит . 9 9. Пусть f ∈ C (1) [a; b] и p (x) – полином, аппроксимирующий f ′(x) с точностью ε в норме C [a; b] . Доказать, что полином 9 x ∫ q ( x) = f (a ) + p (t )dt аппроксимирует f (x) с точностью ε(b − a ) в a норме C [a; b] . 10. Используя многочлен Лагранжа, найти приближенное значение функций, заданных таблицами в указанных точках: 1 2 4 7 x а) f (x) –2,197 –6,776 –17,01 –34,77 3 при x = , 3, 4, 5. 2 б) x f (x) 10 –382 13 –514 17 –460 21 156 25 1766 28 3956 при x = 11, 15, 22, 27. в) x f (x) 11 42,255 13 35,385 15 26,875 17 16,965 при x = 12, 14, 16. Те м а 2 КОНЕЧНЫЕ РАЗНОСТИ И РАЗНОСТНЫЕ ОТНОШЕНИЯ. ИНТЕРПОЛЯЦИОННЫЙ ПОЛИНОМ НЬЮТОНА Конечные разности являются рабочим аппаратом при изучении функций, заданных таблицей значений в равноотстоящих точках (узлах), и применяются в вычислениях с такими функциями [1–3]. Предположим, что для равноотстоящих значений аргумента xk = x0 + kh, k = 0, 1, ..., N, h > 0 известны соответствующие им значения функции y k = f ( xk ) , k = 0, N , т. е. задана таблица значений функции f ( x ) с начальным значением аргумента x0 , шагом h и конечным значением аргумента xN . Конечными разностями первого порядка функции f ( x ) называются величины ∆y0 = y1 − y0 , ∆y1 = y2 − y1 , …, ∆yk = yk +1 − yk , .... 10 Разности второго порядка определяются равенствами ∆ 2 y0 = ∆ (∆y0 ) = ∆y1 − ∆y0 , ∆ 2 y1 = ∆(∆y1 ) = ∆y2 − ∆y1 , ..., ∆ 2 yk = ∆(∆yk ) = ∆yk +1 − ∆yk , и т. д. Разности порядка n + 1 определяются через разности порядка n следующим образом: ∆n+1 y0 = ∆n y1 − ∆n y0 , ∆n+1 y1 = ∆n y2 − ∆n y1 , …. (2.1) Таблицу значений функции и ее конечных разностей можно записать следующим образом: Таблица 2.1 k yk ∆yk ∆ 2 yk ∆ 3 yn 0 y0 ∆y0 ∆ 2 y0 ∆ 3 y0 1 y1 ∆y1 ∆ 2 y1 ∆ 3 y1 2 y2 ∆y 2 ∆ 2 y2 … 3 y3 ∆y3 … 4 y4 … … … … … В таблицах функций, с которыми приходится иметь дело в приближенных вычислениях, значения задаются приближенно, с ошибкой округления, не превышающей обычно половину единицы последней удерживаемой цифры. При этом можно утверждать, что если функция достаточно гладкая, а, следовательно, хорошо аппроксимируется многочленами невысоких степеней вместе со своими производными, то разности некоторого порядка должны быть постоянными с точностью до одной-двух единиц последнего знака. Это обстоятельство можно использовать для контроля правильности вычисления значений функции [3]. Конечные разности для функций, заданных в виде таблицы, играют роль, подобную той, что играют производные для функций с непрерывно изменяющимся аргументом. Приведенные ниже основные свойства конечных разностей аналогичны соответствующим свойствам производных [1, 3, 4]. 1. Конечная разность суммы двух функций F ( x ) = f ( x ) + g ( x ) равна сумме конечных разностей слагаемых f ( x ) и g ( x ) . 11 2. Если F ( x ) = Af ( x ) , где A − константа, то ∆F ( xi ) = A∆f ( xi ) . Свойства 1 и 2 справедливы для разностей любого порядка. 3. Конечная разность порядка n от многочлена степени n равна постоянной величине и, следовательно, все разности более высокого порядка равны нулю. Часто приходится иметь дело с функциями, значения которых известны для не равноотстоящих значений аргумента. Конечные разности при этом использовать нельзя, и в этом случае применяются так называемые разностные отношения или разделенные разности [1–4]. Предположим, что для любых, но различных между собой значеx0 , x1 , ..., xN даны значения функции ний аргумента f ( x0 ) , f ( x1 ) , ..., f ( x N ) . Значения x0 , x1 , ..., xN не предполагаются равноотстоящими, они не обязаны также монотонно возрастать или убывать с возрастанием индекса. Разностными отношениями первого порядка называются величины f ( x0 , x1 ) = f ( x1 ) − f ( x0 ) f ( x2 ) − f ( x1 ) , f ( x1 , x2 ) = , .… x1 − x0 x2 − x1 Геометрически разностные отношения первого порядка представляют собой угловые коэффициенты хорд графика функции y = f ( x ) . Они имеют смысл средних скоростей изменения функции f ( x ) на отрезках ( x0 , x 1 ) , ( x1 , x2 ) , .... По ним составляются разностные отношения второго порядка f ( x1 , x2 ) − f ( x0 , x1 ) , x2 − x0 f ( x2 , x3 ) − f ( x1 , x2 ) f ( x1 , x2 , x3 ) = , .... x3 − x1 f ( x0 , x1 , x2 ) = Разностные отношения порядка k + 1 , k = 1, 2, ..., определяются при помощи отношений предыдущего порядка k по формуле f ( x0 , x1 , ..., xk , xk +1 ) = f ( x1 , x2 , ..., xk +1 ) − f ( x0 , x1 , ..., xk ) . xk +1 − x0 Таблица разностных отношений функции имеет вид 12 (2.2) Таблица 2.2 k xk f ( xk ) f ( xk , xk +1 ) f ( xk , xk +1 , xk + 2 ) … 0 x0 f ( x0 ) f ( x0 , x1 ) f ( x0 , x1 , x2 ) … 1 x1 f ( x1 ) f ( x1 , x2 ) f ( x1 , x2 , x3 ) … 2 x2 f ( x2 ) f ( x2 , x3 ) … … 3 x3 f ( x3 ) … … … … … … … … … Очевидно, что составление таблицы разностных отношений требует больше вычислительных затрат, чем составление таблицы конечных разностей. Для разностных отношений выполняются свойства, аналогичные свойствам конечных разностей [1, 3, 4]. 1. Разностное отношение суммы двух функций F ( x ) = f ( x ) + g ( x ) равно сумме разностных отношений слагаемых f ( x ) и g ( x ) . 2. Если F ( x ) = Af ( x ) , где А – постоянная, то ∆F ( xi +1 , xi ) = = A∆f ( xi +1 , xi ) . 3. Разностное отношение порядка n от многочлена степени n является постоянной величиной и, следовательно, все разностные отношения более высокого порядка равны нулю. Несложно проверить, что разностное отношение порядка n представляется в виде [1, 2]: f ( xi ) . i =1 ( xi − x0 ) ... ( xi − xi −1 )( xi − xi +1 )( xi − xn ) n f ( x0 , x1 , ..., xn ) = ∑ (2.3) Из формулы (2.3) вытекает следующее свойство разностных отношений. 4. Разностное отношение является симметрической функцией своих узлов, или иначе говоря, не изменяется при любой перестановке аргументов. Значения функции f ( x ) в точке x = xk можно выразить через разностные отношения по формуле f ( xk ) = f ( x0 ) + ( xk − x0 ) f ( x0 , x1 ) + ( xk − x0 )( xk − x1 ) f ( x0 , x1 , x2 ) + ... ... + ( xk − x0 )( xk − x1 ) ...( xk − xn−1 ) f ( x0 , x1 , ..., xn ) , 13 (2.4) справедливость которой можно доказать по индукции, воспользовавшись определениями разностных отношений. С помощью разностных отношений строится формула интерполяционного многочлена Ньютона: Pn ( x ) = f ( x0 ) + ( x − x0 ) f ( x0 , x1 ) + ( x − x0 ) ( x − x1 ) f ( x0 , x1 , x2 ) + ... ... + ( x − x0 ) ( x − x1 ) ...( x − xn−1 ) f ( x0 , x1 , ..., xn ) , (2.5) где Pn ( xk ) = f ( xk ) , k = 0, 1, ..., n . Остаточный член rn ( x ) = f ( x ) − Pn ( x ) в этом случае можно выразить через разделенную разность: rn ( x ) = f ( x, x0 , x1 , ..., xn )( x − x0 ) ( x − x1 ) ...( x − xn ) . Следует отметить, что в практике и теории приближенных вычислений большую роль играет интерполирование по равноотстоящим узлам. Поэтому приведем интерполяционные формулы Ньютона для интерполирования по равноотстоящим узлам в начале и конце таблицы. Для равноотстоящих узлов xk = x0 + kh, k = 0, N имеет место следующее соотношение между разностными отношениями и конечными разностями: ∆ k f0 f ( x0 , x1 , ..., xk ) = k , k = 0, N . h k! (2.6) Тогда интерполяционный многочлен Ньютона для интерполирования в начале таблицы запишется в виде t t (t − 1) 2 t (t − 1)...(t − n + 1) n Pn ( x0 + th ) = y0 + ∆y0 + ∆ y0 + ... + ∆ y0 , (2.7) 1! 2! n! для интерполирования в конце таблицы – в виде t ( t + 1) 2 t Pn ( xN + th ) = y N + ∆y N −1 + ∆ y N −2 + 1! 2! t ( t + )1...( t + n − 1) n +... + ∆ y N −n , n! (2.8) x − x0 . h Формула Ньютона удобна для интерполирования одной функции с изменяющейся системой узлов и обладает преимуществом по сравнению с формулой Лагранжа в следующем отношении. Если где y0 = f ( x0 ) , y N −k = f ( xN −k ) , k = 0, N , N ≥ n, t = 14 многочлен Pn ( x) построен и дает не достаточно хорошее приближение, то при добавлении нового узла xn +1 нужно вычислить только одно слагаемое ( x − x0 ) ...( x − xn ) f ( x0 , x1 , ..., xn+1 ) и добавить его к предыдущей сумме. При этом в формуле Ньютона прежние слагаемые останутся неизменными, а в формуле Лагранжа все слагаемые изменятся. x Вычисления значения полинома Ньютона Pn ( x ) в точке x = ~ можно производить по схеме, аналогичной схеме Горнера для вычисления значения многочлена [3]: ( ( Pn ( x ) = ... ( f ( x0 , x1 , ..., xn )( x − xn−1 ) + f ( x0 , x1 , ..., xn−1 ) ) ( x − xn−2 ) + + f ( x0 , x1 , ..., xn−2 ) ) ( x − xn−3 ) + ... + f ( x0 , x1 ) ) ( x − x0 ) + f ( x0 ) . (2.9) Формула Ньютона удобна для вычислений на ЭВМ с помощью современных математических пакетов Mathematica, MathCad и электронных таблиц Microsoft Exel. Пример 1. Построить таблицу конечных разностей функции y = sin x, x = 0 ( 0,1) 0,7. Результаты приведены в таблице, полученной с помощью пакета Microsoft Exel (табл. 2.3). Таблица 2.3 y Конечные разности порядка 2 3 –0,00100 –0,00099 0,0 0,00000 1 0,09983 4 0,00002 0,1 0,09983 0,09884 –0,00199 –0,00097 0,00003 0,2 0,19867 0,09685 –0,00295 –0,00094 0,00004 0,3 0,29552 0,09390 –0,00389 –0,00090 0,00005 0,4 0,38942 0,09001 –0,00479 –0,00085 0,5 0,47943 0,08522 –0,00564 0,6 0,56464 0,07958 0,7 0,64422 Пример 2. Дана таблица значений функции f ( x ) = sh x x f ( x) 0,40 0,41075 0,55 0,57815 0,65 0,69675 15 0,80 0,88811 0,90 1,02625 1,05 1,25386 Найти приближенное значение sh x при x = x = 0,596 . Решение задачи представлено в виде таблицы Microsoft Exel (табл. 2.4). Функция аппроксимировалась многочленом четвертой степени P4 ( x). Полученное по схеме (2.9) значение полинома Ньютона в точке x = 0,596 P4 ( x) = 0,63192 совпадает с табличным значением гиперболического синуса sh x = 0,631917. Таблица 2.4 0,4 0,55 0,65 0,8 0,9 1,05 0 0,41075 0,57815 0,69675 0,88811 1,02652 1,25386 Разностные отношения порядка 1 2 3 4 1,11600 0,27986 0,19800 0,02962 1,18596 0,35906 0,21281 0,03654 1,27572 0,43354 0,23108 1,38411 0,52597 1,51560 0,596 − x P4 ( 0,596 ) 0,196 0,046 –0,054 –0,204 0,63192 Литература 1. Крылов, В. И. Вычислительные методы высшей математики / В. И. Крылов, В. В. Бобков, П. И. Монастырный. Т. 1. – Минск: Выш. шк., 1972. 2. Крылов, В. И. Вычислительные методы высшей математики / В. И. Крылов, В. В. Бобков, П. И. Монастырный. Т. 1. – М: Наука, 1976. 3. Сборник задач по методам вычислений / под ред. П. И. Монастырного. – М.: Наука, 1994. 4. Мысовских, И. П. Лекции по методам вычислений / И. П. Мысовских. – М.: Наука, 1993. Задание по теме 2 В приведенных ниже вариантах задач индивидуально и в соответствии с целями и указаниями, определяемыми преподавателем, выполнить одно или несколько требований: • доказать утверждение; • построить таблицу конечных разностей заданной функции; • построить таблицу разностных отношений заданной функции; • построить интерполяционный многочлен Ньютона для предложенных функций; • получить оценку погрешности остаточного члена интерполирования; • по данным таблицы значений функции определить значение аргумента, соответствующего указанному значению функции; 16 • просуммировать конечные ряды. Задачи по теме 2 Вариант 1 1. Доказать основные свойства конечных разностей. 2. Доказать формулу (2.3). 3. Построить таблицу конечных разностей для функции y = cos x, x = 0,1( 0,1)10. 4. Составить таблицу разностных отношений для многочлена P ( x ) = x 6 − 7,5 x 4 + 3,5 x 2 − x + 1,2. 5. Построить интерполяционный x −1 f ( x ) = lg x − по следующим узлам: x многочлен для функции а) x = 1, 2, 4, 8,10; б) x = 2, 4, 8,10; в) x = 4, 8,10; г) x = 2, 4, 8. Вычислить приближенное значение lg 5,25. Получить оценку погрешности остаточного члена. 6. По данным таблицам значений функций определить значение аргумента, соответствующего указанному значению y а) y = −10,875 x y б) y = 0 0,5 –12,125 x y 2 –8 2,5 –2,625 1 –6 2 –1 3 6 5,5 124,125 2,5 5,625 8 436 3 16 7. Получить формулу для вычисления частичной суммы ряда: 2 а) S n = 12 + 22 + ... + ( n − 1) + n 2; б) S n = 13 + 23 + ... + ( n − 1) + n3. 3 Вариант 2 1. Доказать основные свойства разностных отношений. 2. Доказать формулу (2.4). 3. Доказать формулу (2.6). 4. Построить таблицу конечных разностей для функции y = e x, x = 0 ( 0,1)12. 17 5. Составить таблицу разностных отношений для многочлена P ( x ) = 1, 2 x 4 + 0,5 x 3 + x 2 − 7 x − 12,5. 6. Построить интерполяционный многочлен для функции: 1 f ( x ) = − sin x по следующим узлам: а) x = 1, 3, 5, 7,11; x б) x = 3, 5, 7,11; в) x = 3, 5, 7; г) x = 5, 7,11. Вычислить приближенное значение sin 0,5. Получить оценку погрешности остаточного члена. 7. По данным таблицам значений функций определить значение аргумента, соответствующего указанному значению y: а) y = 16,76 х y 0,5 –13,323 2 –15,16 3 –8,86 3,5 0,598 5 78,5 б) y = 20 x y 4 11 6 27 8 50 10 83 8. Получить формулу для вычисления частичной суммы ряда: 2 а) S n = 12 + 32 + 5 2 ... + (2n − 1) ; б) S n = 13 + 33 + 53... + (2n − 1) . 3 Те м а 3 ИНТЕРПОЛИРОВАНИЕ ПО РАВНООТСТОЯЩИМ ЗНАЧЕНИЯМ АРГУМЕНТА В случае равноотстоящих узлов имеется много различных формул для интерполяционных полиномов, построение которых зависит от расположения точки интерполирования х по отношению к узлам интерполирования [1–4]. Предположим, что в равноотстоящих точках xk = x0 + kh (k = 0, 1, 2, …) известны значения f ( xk ) = f ( x0 + kh ) = f k функции f ( x ) и нам нужно интерполировать ее вблизи точки x0 . Для интерполирования тогда естественно привлекать узлы xk в том порядке, как они идут в таблице: x0 , x0 + h, x0 + 2h, ... . Введем новую переменную t, положив 18 x = x0 + th, t = ( x − x0 ) / h. Переменная t имеет смысл числа шагов h от x0 до х. Применим для интерполирования правило Ньютона [2, 6]: Ln ( x ) = f ( x0 ) + ( x − x0 ) f ( x0 , x1 ) + ( x − x0 ) ( x − x1 ) f ( x0 , x1 , x2 ) + ... … + ( x − x0 ) ( x − x1 ) ...( x − xn−1 ) f ( x0 , x1 , ..., xn ) + rn ( x ) . Принимая во внимание соотношения между разностными отношениями и конечными разностями ∆ k f0 f ( x0 , x1 , ..., xk ) = k , k = 0, 1, ..., h k! получаем интерполяционный полином Ньютона для интерполирования в начале таблицы: t ( t − 1) 2 t ∆f 0 + ∆ f 0 + ... 1! 2! t ( t − 1) ...( t − n + 1) n …+ ∆ f 0 + rn ( x ) . n! f ( x0 + th ) = f 0 + (3.1) Лагранжева форма представления остатка rn ( x ) имеет вид: rn ( x ) = h n+1 t ( t − 1) ...( t − n ) ( n+1) f ( ξ ) , ξ ∈ [ x0 , x1 ,..., xn , x]. ( n + 1)! Если точка интерполирования находится вблизи конца таблицы узлов, то узлы интерполирования естественно брать в порядке xn , xn − h, xn − 2h, .... Введя переменную t и положив x = xn + th, получим полином Ньютона для интерполирования в конце таблицы: t ( t + 1) 2 t ∆f n−1 + ∆ f n−2 + ... 1! 2! t ( t + 1) ...( t + k − 1) n …+ ∆ f n−k + rk ( x ) , k! f ( xn + th ) = f n + где rk ( x ) = h k +1 (3.2) t ( t + 1) ...(t + k ) ( k +1) f ( ξ ) , ξ ∈ [ xn , ..., xn−k , x]. ( k + 1)! Пусть точка xn есть внутренний узел таблицы. Предположим, что точка интерполирования х лежит вблизи xn с той или другой стороны. Узлы интерполирования целесообразно брать в порядке удаленности 19 от xn: xn , xn + h, xn − h, ..., xn + kh, xn − kh. Число взятых узлов будет нечетным. Вновь вводим переменную t = ( x − xn ) / h, x = xn + th. Подставив выражения разностных отношений через конечные разности ∆f ∆ 2 f n−1 f ( xn ) = f n , f ( xn , xn + h ) = n , f ( xn , xn + h, xn − h ) = , 2!h 2 1!h ∆ 3 f n−1 , ... f ( xn , xn + h, xn − h, xn + 2h ) = 3!h3 в формулу Ньютона Ln ( x ) = f ( xn ) + ( x − xn ) f ( xn , xn + h ) + ( x − xn )( x − xn − h ) × × f ( xn , xn + h, xn − h ) + ( x − xn )( x − xn − h )( x − xn + h ) × × f ( xn , xn + h, xn − h, xn + 2h ) + ... + r2 k ( x ) , получим f ( xn + th ) = f n + …+ t ( t − 1) 2 t ( t − 1)( t + 1) 3 t ∆f n + ∆ f n−1 + ∆ f n−1 + ... 1! 2! 3! ( t ( t 2 − 12 ) ... t 2 − ( k − 1) 2 ( 2 k )! )(t − k ) ∆ 2k (3.3) f n−k + r2 k ( x ) , h 2 k +1 2 k +1 r2 k ( x ) = t ( t 2 − 12 ) ...(t 2 − k 2 ) f ( ) ( ξ ) , ξ ∈ [ xn − kh, xn + kh, x]. ( 2k + 1)! Эта формула называется полиномом Гаусса для интерполирования вперед. В полиноме Гаусса для интерполирования назад узлы берутся в следующем порядке: xn , xn − h, xn + h, xn − 2h, ..., xn − kh, xn + kh, а сама формула имеет вид: t ( t 2 − 12 ) 3 t ( t + 1) 2 t ∆ f n−1 + ∆ f n−2 + ... f ( xn + th ) = f n + ∆f n−1 + 1! 2! 3! …+ ( t ( t 2 − 12 ) ... t 2 − ( k + 1) r2 k ( x ) = 2 ( 2 k )! )(t + k ) ∆ 2k (3.4) f n−k + r2 k ( x ) , h 2 k +1 2 k +1 t ( t 2 − 12 ) ...(t 2 − k 2 ) f ( ) ( ξ ) . ( 2k + 1)! Среднее арифметическое двух полиномов Гаусса дает полином Стирлинга: 20 t ∆f n−1 + ∆f n t 2 2 f ( xn + th ) = f n + ⋅ + ∆ f n−1 + 1! 2 2! t ( t 2 − 12 ) ∆ 3 f n−2 + ∆ 3 f n−1 t 2 ( t 2 − 12 ) 4 + ⋅ + ∆ f n−2 + .... 3! 2 4! (3.5) Если точка интерполирования х лежит вблизи середины отрезка [ xn ; xn+1 ] , можно применить формулу Ньютона – Бесселя [1, 2]. Узлы при этом берутся попарно в следующем порядке: ( xn − h, xn + 2h ) , ...( xn − ( k − 1) h, xn + kh ). ( xn , xn + h ) , После замены переменной x = xn + th и простых преобразований в полиноме Ньютона приходим к полиному Ньютона – Бесселя: f ( xn + th ) = f n + f n+1 2 1 t ( t − 1) ∆ 2 f n−1 + ∆ 2 f n 2 + ∆f n + ⋅ + 1! 2! 2 t− 1 t − t ( t − 1) t + 1) t ( t − 1)( t − 2 ) ∆ 4 f n−2 + ∆ 4 f n−1 ( 2 3 ∆ f n−1 + ⋅ + ... (3.6) + 3! 4! 2 t + k − 2 ) ...( t − k + 1) ∆ 2 k −2 f n−k +1 + ∆ 2 k −2 f n−k + 2 ( …+ ⋅ + r2 k −1 ( x ) , 2 ( 2 k − 2 )! r2 k −1 ( x ) = h 2 k ( t + k − 1)...( t − k ) f ( 2 k ) ξ , ( ) ( 2 k )! ξ ∈ [ xn−k +1 , xn+ k , x ]. Если точка интегрирования х совпадает с серединой отрезка 1 [ xn ; xn+1 ] , то t = и последняя формула упрощается: 2 h f n + f n+1 ∆ 2 f n−1 + ∆ 2 f n 3 4 f xn + = − + ( ∆ f n−2 + ∆ 4 f n−1 ) + .... 2 2 16 16 Литература 1. Крылов, В. И. Вычислительные методы высшей математики / В. И. Крылов, В. В. Бобков, П. И. Монастырный. Т. 1. – Минск: Выш. шк., 1972. 2. Крылов, В. И. Начала теории вычислительных методов. Интерполирование и интегрирование / В. И. Крылов, В. В. Бобков, П. И. Монастырный. Т. 1. – Минск: Наука и техника, 1983. 21 3. Сборник задач по методам вычислений / под ред. П. И. Монастырного. – М.: Наука, 1994. 4. Воробьева, Г. И. Практикум по численным методам / Г. И. Воробьева, А. И Данилова. – М.: Высш. шк., 1979. 5. Самарский, А. А. Численные методы / А. А. Самарский, А. В. Гулин. – М.: Наука, 1989. 6. Бахвалов, Н. С. Численные методы / Н. С. Бахвалов, Н. П. Жидков, Г. М. Кобельков. – М.: Наука, 1987. Задание по теме 3 В приведенных ниже вариантах задач индивидуально и в соответствии с целями и указаниями, определяемыми преподавателем, выполнить одно или несколько требований: • доказать утверждение; • построить интерполяционные полиномы для предложенных функций; • по данным таблицы значений функции определить значения функции в указанных значениях аргумента. Задачи по теме 3 Вариант 1 1. Дана таблица 3.1 значений функции sh x. Найти значения sh x для значений аргумента: 1) 1,01; 1,02; 1,03; 1,11; 1,12; 1,13; 2) 1,41; 1,42; 1,43; 1,44; 1,45; 1,46; 3) 1,75; 1,73; 1,77; 1,78; 1,79. Таблица 3.1 x 1,0 1,1 1,2 shx 1,17520 1,33565 1,50946 shx 1,69838 1,90430 2,12928 x 1,3 1,4 1,5 x 1,6 1,7 1,8 shx 2,37557 2,64563 2,94217 2. Функции f ( x ) , g ( x ) и h ( x ) заданы табл. 3.2–3.4. Пользуясь приведенными формулами, найти значения этих функций для указанных значений аргумента: 1) для функции f ( x ): 1,50911; 1,50820; 1,50253; 1,50192; 1,59513; 1,59575; 1,59614; 1,59728. 22 2) для функции h ( x ): 1,0113; 1,0219; 1,0321; 1,0428; 1,9592; 1,9675; 1,9728; 1,9819. 3) для функции g ( x ): 0,01928; 0,01392; 0,02475; 0,02713; 0,47113; 0,47531; 0,48398; 0,48675. Таблица 3.2 x f ( x) x f ( x) x f ( x) 1,0 1,1 1,2 0,6827 0,7287 0,7699 1,3 1,4 1,5 0,8064 0,8385 0,8664 1,6 1,7 1,8 1,9 0,8904 0,9109 0,9281 0,9426 Таблица3.3 x h ( x) x h ( x) x h ( x) 1,0 1,1 1,2 1,00000 0,95135 0,91817 1,3 1,4 1,5 0,89747 0,88726 0,88623 1,6 1,7 1,8 1,9 0,89352 0,90864 0,93138 0,96177 Таблица3. 4 x g ( x) x g ( x) x g ( x) 0,3 0,4 0,5 0,2913 0,3799 0,4621 0,6 0,7 0,8 0,5370 0,6044 0,6640 0,9 1,0 1,1 0,7163 0,7616 0,8005 Таблица 3.5 x f ( x) x f ( x) x f ( x) 1,0 1,2 1,4 0,7652 0,6711 0,5669 1,6 1,8 2,0 0,4554 0,3400 0,2239 2,2 2,4 2,6 0,1104 0,0025 –0,0968 3. Уплотнить таблицу значений функции f ( x ) (табл. 3.5) в два раза. 4. Используя приведенные интерполяционные формулы (3.1) – (3.3), (3.5), построить формулы для численного дифференцирования. 5. Дана таблица натуральных логарифмов чисел от 1000 до 10000. Какова наибольшая погрешность линейной интерполяции, если шаг равен 1? 6. Решить задачу 5 для f ( x ) = 3 x в интервале 1 ≤ x ≤ 1000 . 23 7. Пусть требуется составить четырехзначную таблицу функции π f ( x ) = sin x в интервале 0 ≤ x ≤ . Какой величины должен быть шаг 2 таблицы h, чтобы при линейной (квадратичной) интерполяции полностью использовать точность таблицы, т. е. чтобы погрешность интерполяции была меньше, чем 5 ⋅ 10−4? 8. Дана таблица значений интеграла вероятностей (табл. 3.6) x 2 2 y= e − x dx. ∫ π0 Определить значение х, при котором интеграл равен 0,5. Таблица 3.6 x y 0,45 0,4754 0,46 0,4846 0,47 0,4937 0,48 0,5027 0,49 0,5117 0,5 0,5205 9. Показать, что n-я разделенная разность многочлена n-й степени равна коэффициенту при x n независимо от выбора узлов x0 , x1 , ..., xn . 10. Найти корень уравнения x3 − 4 x 2 + 10 x − 10 = 0, расположенный на промежутке [1; 2]. Вариант 2 1. Используя интерполяционные формулы Гаусса и Ньютона – Бесселя, вычислить приближенные значения функции y ( x ) при данных значениях аргумента: 1) x = 1,60 + 0,006n; 2) x = 1,725 + 0,002n; 3) x = 1,83 + 0,003n; 4) x = 2 − 0,013n ( n = 1, 2, ..., 30 ) . Функция y ( x ) задана таблицей 3.7: Таблица 3.7 x 1,50 1,55 1,60 1,65 y(x) 15,132 17,422 20,393 23,994 y(x) 28,160 32,812 37,857 43,189 x 1,70 1,75 1,80 1,85 24 x 1,90 1,95 2,00 2,05 2,10 y(x) 48,689 54,225 59,653 64,817 69,550 2. С помощью интерполяционных формул (3.1) – (3.5) найти значение первой и второй производных при данных значениях аргумента для функции, заданной таблицей 3.8. Таблица 3.8 y(x) 3,526 3,782 3,945 4,043 x 2,4 2,6 2,8 3,0 y(x) 4,104 4,155 4,222 4,331 x 3,2 3,4 3,6 3,8 x 4,0 4,2 4,4 4,6 y(x) 4,507 4,775 5,159 5,683 1) x = 2,4 + 0,05n; 2) x = 3,12 + 0,03n; 3) x = 4,5 − 0,06n; 4) x = 4,04 − 0,04n ( n = 1, 3, 5, ..., 29 ) . 3. Уплотнить таблицу значений функций y(x) (табл. 3.8) в два раза. 4. Дана таблица натуральных логарифмов от 1 до 10. Какова наибольшая погрешность линейной интерполяции, если шаг равен 0,001? 5. Дана таблица синусов с шагом 1 . Какова наибольшая погрешность линейной интерполяции? x 2 − x2 6. Решить задачу 5 для I ( x ) = ∫ e dx, h = 0,001, 0 ≤ x ≤ 3. π0 7. Используя таблицу значений функции y = sh x (табл. 3.9), найти х, при котором sh x = 5. Таблица 3.9 x y 2,2 4,457 2,4 5,466 2,6 6,695 2,8 8,198 3,0 10,018 8. Взяты 2r + 1 различных значений t: 0, ± t1 , ± t2 , ..., ± tr . Выписать интерполяционную формулу, используя узлы: x0 = a, x2 r = a − tr h, x2 r −1 = a + tr h. Найти остаточный член этой формулы. 9. Найти корень уравнения x5 − 5 x + 3 = 0 , заключенный между 0 и 1. 10. Конечная разность первого порядка функции f ( x ) имеет вид αx3 + β x 2 + γx + δ. Какой вид имеет f ( x ) ? 11. Показать, что если f ( x0 , x1 , ..., x p ) = 0 ( p < n ) . f ( x ) = ( x − x0 ) ( x − x1 ) ...( x − xn ) , 25 то Те м а 4 ИНТЕРПОЛИРОВАНИЕ СПЛАЙНАМИ Многочлены и рациональные дроби, как аппараты приближения функций, обладают рядом недостатков для приближения функций с особенностями и недостаточно гладких функций. Практические возможности применения полиномов алгебраического интерполирования (например в форме Лагранжа) ограничены даже для приближения непрерывных или гладких сколь угодно раз непрерывно дифференцируемых функций [3, 4, 5]. Можно попытаться частично преодолеть недостаточную точность интерполирования двумя способами: специальным образом выбрать узлы интерполирования 1) (например, привлечь нули полиномов Чебышева первого рода, что позволяет минимизировать остаток от интерполирования); подобрать специальным образом чебышевскую систему 2) n функций {ϕk ( x )}0 , по которой строится обобщенный интерполяционный полином. Однако оба эти приема приводят к большим вычислительным затратам и не избавляют от другого недостатка – быстрого накопления ошибок округления с ростом степени интерполяционного многочлена. Избежать или ослабить эти недостатки можно, если перейти к интерполированию кусочными многочленами или сплайнами [1]. Пусть на отрезке [a; b] задано разбиение ∆ : a = x0 < x1 < ... < xN = b. Определение 1. Функция S nν ( x ) называется сплайном степени n дефекта ν ( 0 ≤ ν ≤ n + 1, целое) с узлами на сетке ∆ , если а) на каждом отрезке [ xi , xi +1 ] функция S nν ( x ) является многочленом степени n, т.е. n S nν ( x ) = ∑ aαi ( x − xi ) , α (4.1) α=0 x ∈ [ xi ; xi +1 ] , i = 0, N − 1; для б) Snν ( x ) ∈ C n−ν [ a, b ] . 26 (2) Итак, сплайн S nν ( x ) имеет непрерывные производные до порядка n − ν. Производные S n(ν) ( x ) , r > n − ν, вообще говоря, терпят разрывы r в точках xi , i = 1, N − 1. Определение 2. Пусть f ( x ) – заданная на отрезке [а; b] функ- ция. Сплайн S nν ( x ) называется интерполяционным, если на сетке ∆ он удовлетворяет следующим условиям: S nν ( x j ) = f ( x j ) , x j ∈ ∆, j = 0, N ; S n(νr ) ( x j ) = f ( r) ( x ) , ∀r ≤ n − ν ( r ∈ N ) , x j j (4.3) ∈ ∆, j = 0, N . Если выполняется только часть условий (4.3), то такой сплайн называется локальным интерполяционным сплайном [1]. 1. Интерполяционные сплайны первой степени первого дефекта S11 ( f ; x ) . Пусть на сетке ∆ заданы значения f i = f ( xi ) , i = 0, N , некоторой функции f ( x ) , x ∈ [ a; b ]. Требуется построить сплайн S11 ( x ) такой, что S11 ( xi ) = fi , i = 0, N . Обозначим ∀x ∈ [ xi ; xi +1 ] формула сплайна имеет вид: S11 ( x ) = fi hi = xi +1 − xi . Тогда для xi +1 − x x − xi + fi +1 hi hi (4.4) x − xi ( fi+1 − fi ). hi (4.5) или S11 ( x ) = fi + Для запоминания сплайна надо хранить 2(N+1) чисел. Алгоритм устойчив к погрешности исходных данных. Графиком сплайна S11 ( f , x ) является ломаная. 2. Эрмитовы кубические сплайны S32 ( f , x ) . Пусть в узлах сетки ∆ заданы значения некоторой функции f ( x ) и ее производной f ′ ( x ) : f i = f ( xi ) , f i′ = f ′ ( xi ) , i = 0, N . Кубическим интерполяционным сплайном дефекта 2 (эрмитовым кубическим сплайном) будем называть функцию S32 ( f , x ) = S32 ( x ) , удовлетворяющую условиям: 27 1) S32 ( x ) = ai 0 + ai1 ( x − xi ) + ai 2 ( x − xi ) + ai 3 ( x − xi ) , ∀x ∈ [ xi ; xi +1 ]; 2 3 2) S32 ( xi ) = fi ; S32′ ( xi ) = fi ′, i = 0, N ; 3) S32 ( x ) ∈ C1 [ a; b ]. Для вычисления коэффициентов сплайна aiα , α = 0,3, i = 0, N − 1, S32 ( xi ) = f i ; воспользуемся интерполяционными условиями S32′ ( xi ) = f i ′; S32 ( xi +1 ) = f i +1 ; S32′ ( xi +1 ) = fi +′1 . Тогда для ∀x ∈ [ xi ; xi +1 ] , i = 0, N − 1 , представление эрмитова кубического сплайна следующее: S32 ( x ) = ϕ1 ( t ) fi + ϕ2 ( t ) fi +1 + ϕ3 ( t ) hi f i ′ + ϕ4 ( t ) hi fi +′ 1 , где hi = xi +1 − xi , t = (4.6) x − xi 2 , ϕ1 ( t ) = (1 − t ) (1 + 2t ) ; ϕ2 ( t ) = t 2 ( 3 − 2t ) ; hi ϕ3 ( t ) = t (1 − t ) ; ϕ4 ( t ) = −t 2 (1 − t ) . 2 Для практического вычисления сплайна в ∀x ∈ [ xi ; xi +1 ] удобнее использовать формулу S32 ( x ) = fi + ( x − xi ) fi′ + t ( B + tA ) , (4.7) где A = −2 ( fi +1 − f i ) hi + ( fi ′ + fi +′1 ) , B = − A + ( f i +1 − f i ) hi − fi ′. Алгоритм устойчив к погрешности исходных данных. 3. Интерполяционные кубические сплайны третьей степени первого дефекта S31 ( f , x ) (сплайны Шенберга). Пусть на отрезке [ a; b ] в узлах сетки ∆ заданы значения неко- торой функции f i = f ( xi ) , i = 0, N . Интерполяционным кубическим сплайном S31 ( f , x ) называется сплайн, удовлетворяющий условиям S31 ( f , xi ) = f i , i = 0, N . (4.8) Для построения сплайна S31 ( f , x ) на отрезке [ a; b ] необходимо определить 4N коэффициентов. Условие S31 ( f , x ) ∈ C 2 [ a; b ] эквивалентно требованию непрерывности сплайна и его производных r S31( ) ( f , x ) , r = 0, 1, 2 во всех внутренних узлах xi , i = 1, N − 1 сетки ∆, что дает 3(N–1) равенств. Таким образом, вместе с равенствами (4.8) получается 4N–2 соотношений. Два дополнительных условия обычно 28 задаются в виде ограничений на значения сплайна и его производных на концах отрезка [a; b] (или вблизи концов) и называются краевыми условиями (граничными), из которых наиболее употребительными являются следующие типы: I. S ′ ( f , a ) = f ′ ( a ) ; S ′ ( f , b ) = f ′ ( b ) ; II. S ′′ ( f , a ) = f ′′ ( a ) ; S ′′ ( f , b ) = f ′′ ( b ) ; III. S ( r) ( f , a ) = S ( r ) ( f , b ) , r = 1, 2; IV. S ′′′ ( f , x p + 0 ) = S ′′′ ( f , x p − 0 ) , p = 1, N − 1. Рассмотрим алгоритмы построения сплайнов S31 ( f , x ) . Первый вариант. Введем обозначение S ′ ( f , xi ) = mi , i = 0, N . (4.9) Очевидно, сплайн S31 ( f , x ) можно рассматривать как эрмитов кубический сплайн, удовлетворяющий условиям (4.8), (4.9). Т.е. для ∀x ∈ [ xi ; xi +1 ] полагаем: S ( f , x ) = fi (1 − t ) (1 + 2t ) + fi +1t 2 ( 3 − 2t ) + mi hit (1 − t ) − mi +1hit 2 (1 − t ) (4.10) 2 2 x − xi . hi Кубический сплайн, представленный в таком виде на каждом из отрезков [ xi ; xi +1 ] непрерывен вместе со своей первой производной всюду на [a; b]. Выберем величины mi так, чтобы была непрерывна и вторая производная. Условие непрерывности второй производной где, как обычно, hi = xi +1 − xi ; t = S ′′ ( f , xi + 0 ) = S ′′ ( f , xi − 0 ) в точках xi , i = 1, N − 1, принимает вид: f −f f − f i −1 λ i mi −1 + 2mi + µi mi +1 = 3 µi i +1 i + λ i i , hi hi −1 (4.11) где µi = hi −1 ( hi −1 + hi ) ; λ i = 1 − µi . К уравнениям (4.11) следует добавить уравнения, вытекающие из краевых условий. Таким образом, получается система N+1 уравнений для определения N+1 неизвестных mi , i = 0, N . Для граничных условий I и II типов они находятся из системы −1 29 2mo + µ*0 m1 = c0* , λ i mi −1 + 2mi + µi mi +1 = ci , i = 1, N − 1, (4.12) λ*N mN −1 + 2mN = c*N , f −f f − fi −1 в которой ci = 3 µi i +1 i + λ i i . Здесь для условий типа I – h h i i −1 * * * * µ 0 = λ N = 0, c0 = 2 f 0′, cN = 2 f N′ ; а для условий типа II – µ*0 = λ*N = 1, f − f N −1 hN −1 f − f 0 h0 f N′′. + c0* = 3 1 − f 0′′, c*N = 3 N hN −1 h0 2 2 Граничным условиям IV типа соответствуют уравнения f − f0 f − f1 m0 + (1 − γ 02 ) m1 − γ 02 m2 = 2 1 − γ 02 2 , h h 0 1 (4.13) f f f f − − N −1 N −2 −γ 2N mN −2 + (1 − γ 2N ) mN −1 + mN = 2 N − γ 2N N −1 , hN −2 hN −1 где γ 0 = h0 h , γ N = N −1 , и система линейных алгебраических уравнений h1 hN −2 (СЛАУ) (1 + γ 0 ) m1 + γ 0 m2 = c1* , λ i mi −1 + 2mi + µi mi +1 = ci , i = 2, N − 2, (4.14) γ N mN −2 + (1 + γ N ) mN −1 = c*N −1 , f − f N −2 f − f1 * 1 1 , cN −1 = cN −1 + 2γ N N −1 . где c1* = c1 + 2γ 0 2 h1 hN −2 3 3 Рассмотрим III тип граничных условий. Если f ( x ) – периодическая функция, то продолжая периодическим образом сетку ∆ и в соответствии с этим полагая f 0 = f N , f N +1 = f1 , m0 = mN , m1 = mN +1 , hN = h0 , можем записать условия (4.11) в точке xN . Система для определения mi выглядит следующим образом: 30 2m1 + µ1m2 + λ1mN = c1 , λ i mi −1 + 2mi + µi mi +1 = ci , i = 2, N − 1, (4.15) µ N m1 + λ N mN −1 + 2mN = cN . Итак, построение интерполяционного кубического сплайна по формуле (4.10) сводится к вычислению величин mi . Для граничных условий I и II типов они находятся из системы (4.12), для условий типа IV – из уравнений (4.13), (4.14), а в периодическом случае – из системы (4.15) в предположении m0 = mN . Матрицы систем во всех четырех случаях – с диагональным преобладанием, поэтому СЛАУ имеют единственное решение. Справедлива теорема. Интерполяционный кубический сплайн S31 ( f , x ) , удовлетворяющий условиям (4.8) и одному из типов краевых условий I–IV, существует и единствен. Решение систем уравнений относительно mi находятся методом прогонки [2]. При этом для вычисления коэффициентов системы уравнений требуется выполнить 10N арифметических операций и для реализации алгоритма прогонки еще 8N или 14N операций соответственно в непериодическом и периодическом случаях. Второй вариант. Обозначим S ′′ ( f , xi ) = M i , i = 0, N . Из условий S ( f , xi ) = fi , S ′′ ( f , xi ) = M i , i = 0, N , получаем следующую формулу для сплайна: hi2 S ( f , x ) = fi (1 − t ) + fi +1t − t (1 − t ) ( 2 − t ) M i + (1 + t ) M i +1 , (4.16) 6 где x ∈ [ xi ; xi +1 ] , t = S ′( f , x) = x − xi , i = 0, N − 1. Тогда hi f i +1 − fi hi − ( 2 − 6t + 3t 2 ) M i + (1 − 3t 2 ) M i +1 , hi 6 S ′′ ( f , x ) = M i (1 − t ) + M i +1t , S ′′′ ( f , x ) = M i +1 − M i . hi Из представления S ( f , x ) и S ′′ ( f , x ) следует, что сплайн и его вторая производная непрерывны в узлах xi , i = 1, N − 1. Подберем величины M i , i = 0, N , таким образом, чтобы была непрерывна и первая 31 производная сплайна. Условия непрерывности первой производной S ′ ( xi + 0 ) = S ′ ( xi − 0 ) в узлах xi , i = 1, N − 1, принимают вид µi M i −1 + 2 M i + λ i M i +1 = 6 fi +1 − f i f i − fi −1 − , i = 1, N − 1 hi −1 + hi hi hi −1 = (4.17) и в совокупности с граничными условиями I–IV типов образуют СЛАУ для определения искомых параметров сплайна M i , i = 0, N . Так, для I и II типов граничных условий СЛАУ будет следующей: 2 M 0 + λ*0 M 1 = d 0* , µi M i −1 + 2 M i + λ i M i +1 = di , i = 1, N − 1, * * µ N M N −1 + 2M N = d N , в которой di = 6 f i +1 − f i f i − fi −1 − ; hi −1 + hi hi hi −1 λ*0 = µ*N = 0, (4.18) d 0* = 2 f 0′′, d N* = 2 f N′′ – в случае граничных условий II типа; 6 f1 − f 0 6 f N − f N −1 − f 0′ , d N* = f N′ − – в случае h0 h0 h h N −1 N −1 граничных условий I типа. Граничным условиям III типа соответствует СЛАУ λ*0 = µ*N = 1, d 0* = 2 M 1 + λ1M 2 + µ1M N = d1 , µi M i −1 + 2 M i + λ i M i +1 = di , i = 1, N − 2, λ M + µ M + 2 M = d , M = M . N N −1 N N 0 N N 1 (4.19) В случае IV типа граничных условий СЛАУ имеет вид (1 + λ1 ) M 1 + ( λ1 − µ1 ) M 2 = λ1d1 , µi M i −1 + 2 M i + λ i M i +1 = di , i = 2, N − 2, ( µ N −1 − λ N −1 ) M N −2 + (1 + µ N −1 ) M N −1 = µ N −1d N −1 , M = λ −1 M − µ M , M = µ −1 M − λ M 1 ( 1 1 2) N N −1 ( N −1 N −1 N −2 ) . 0 32 (4.20) Матрицы коэффициентов СЛАУ (4.18), (4.19), (4.20) – с диагональным преобладанием, для их численного решения можно использовать методы прогонки [2]. О выборе граничных условий. Выбор краевых условий осуществляется в зависимости от того, какими данными мы располагаем об интерполируемой функции f ( x ) . Дадим некоторые рекомендации [1]. 1. Если f ( x ) – периодическая функция, то следует использовать периодические краевые условия (тип III). 2. Когда известны значения f ′ ( x ) или f ′′ ( x ) в точках a и b, то естественно воспользоваться краевыми условиями типа I или II. При этом, если существует возможность выбора между ними, то предпочтительнее условия типа I. 3. Наибольшие трудности возникают, когда заданы только узловые значения fi . Рассмотрим некоторые из известных рекомендаций. а) Часто предлагается использовать естественные краевые условия: S ′′ ( a ) = S ′′ ( b ) = 0. Однако такое решение весьма неудачно. В данном случае точность приближения кубическим сплайном снижается до точности приближения S11 ( f , x ) . б) При другом подходе используются краевые условия типа I или II, но необходимые значения производных заменяются подходящими разностными аппроксимациями. Недостаток этого в том, что приходится применять односторонние аппроксимации, которые, как известно, имеют невысокую точность. в) В большинстве случаев кардинальным решением вопроса является применение краевых условий типа IV. Этот вывод подтверждает и практический опыт расчетов. Литература 1. Завьялов, Ю. С. Методы сплайн-функций / Ю. С. Завьялов, Б. И. Квасов, В. Л. Мирошниченко.-- М.: Наука, 1980. 2. Сборник задач по методам вычислений / Под ред. П. И. Монастырного.-М.: Наука, 1994. 3. Бахвалов, Н. С. Численные методы. / Н. С. Бахвалов, Н. П. Жидков, Г. М. Кобельков.--М.: Наука, 1987. 4. Березин, И. С. Методы вычислений / И. С. Березин, Н. П. Жидков. Т. 1.-М.: Наука, 1966. 5. Крылов, В. И. Начала теории вычислительных методов. Интерполирование и интегрирование / В. И. Крылов, В. В. Бобков, П. И. Монастырный. Т. 1. -Минск: Наука и техника, 1983. 33 6. Бахвалов, Н. С. Численные методы в задачах и упражнениях / Н. С. Бахвалов, А. В. Лапин, Е. В. Чижонков.--М.: Высш. шк., 2000. Задание по теме 4 В приведенных ниже вариантах задач индивидуально и в соответствии с целями и указаниями, определенными преподавателем, выполнить одно или несколько требований: • дать описание алгоритма; • написать программу реализации алгоритма, отладить и выполнить на компьютере; • вывести на печать значение решения; • результаты вычислений оформить в виде массивов; • использовать пакет программ для поддержки курса «Методы вычислений», ориентированных на использование ПК типа IBM и язык программирования Pascal или иной подходящий язык. Задачи по теме 4 Вариант 1 1. Построить линейный интерполяционный сплайн по значениям f ( 0 ) , f (1) . 2. Получить оценки погрешности приближения функции f ( x ) линейным интерполяционным сплайном на равномерной сетке с шагом h, если: 1) f ( x ) ∈ C1 [ 0; 1]; 2) f ( x ) ∈ C 2 [ 0; 1]. 3. Построить кубический сплайн на сетке xi ( i = 0, 1, ..., n ) , xi − xi −1 = hi , x0 = a, , xn = b с дополнительными условиями: 1) S3′ ( a ) = 0, S3′ ( b ) = 1; 2) S3′ ( a ) = S3′ ( b ) , S3′′( a ) = S3′′( b ) ; 3) S3′′( a ) = A, S3′′( b ) = B. 4. Получить оценку погрешности для кубического сплайна, если f ( x ) ∈ C 3 [ a; b ] . 5. Пусть f ( x ) ∈ C 4 [ a; b ] (f ( 4) ( x ) ≤ A4 ) , задана сетка с постоян- ным шагом hi = h, и дополнительные условия для определения кубического интерполяционного сплайна имеют следующий вид: S3′ ( x0 + 0 ) = f ′ ( x0 ) , S3′ ( xn − 0 ) = f ′ ( xn ) . 34 Показать, что справедлива оценка погрешности S3( ) ( x ) − f ( ) ( x ) ≤ Cl A4 h 4−l , l = 0, 1, 2, 3. l l Вариант 2 1 , x ∈ [ −1; 1] , a = 1, 5(5), 40. Вычислить значе1 + ax 2 h h h h 2 ния функции для x = −1 + , − , , 1 − h = , n = 4, 10, 20, 40 , 2 2 2 2 n применяя различные способы интерполирования: 1. Интерполяционный полином Лагранжа (схема Эйткена) с узлами xk = −1 + kh, k = 0, n . 2. Интерполяционный полином Лагранжа (схема Эйткена) с уз2k + 1 лами xk = cos π, k = 0, n. 2 ( n + 1) Пусть f ( x ) = 3. Сплайн S11 ( f , x ) с узлами xk = −1 + kh, k = 0, n. 4. Сплайн S32 ( f , x ) с узлами xk = −1 + kh, k = 0, n. 5. Сплайн S31 ( f , x ) с узлами xk = −1 + kh, k = 0, n, и параметрами mi = S ′ ( f , xi ) , i = 0, n, в котором а) граничные условия I типа – S ′ ( f , 1) = f ′ (1) , S ′ ( f , − 1) = f ′ ( −1) ; б) граничные условия II типа – S ′′ ( f , 1) = f ′′ (1) , S ′′ ( f , − 1) = f ′′ ( −1) . 6. Сплайн S31 ( f , x ) с узлами xk = −1 + kh, k = 0, n, и параметрами M i = S ′ ( f , xi ) , i = 0, n, в котором а) граничные условия I типа – S ′ ( f , 1) = f ′ (1) , S ′ ( f , − 1) = f ′ ( −1) ; б) граничные условия II типа – S ′′ ( f , 1) = f ′′ (1) , S ′′ ( f , − 1) = f ′′ ( −1) . 35 Трехдиагональные системы ЛАУ для определения параметров mi и M i , i = 0, n, сплайна S31 ( f , x ) решать методом левой и правой прогонки. Сравнить результаты интерполирования с компьютерным значением функции f ( x ) . Те м а 5 ИНТЕРПОЛЯЦИОННЫЕ КВАДРАТУРНЫЕ ФОРМУЛЫ С ФИКСИРОВАННЫМИ И РАВНООТСТОЯЩИМИ УЗЛАМИ b Пусть требуется вычислить определенный интеграл ∫ F ( x)dx, где a F (x) – некоторая заданная на отрезке [ a; b ] функция. Известны примеры решения поставленной задачи либо с помощью первообразной, если она выражается через элементарные функции, либо с помощью различных искусственных приемов. Следует, однако, заметить, что этим исчерпывается довольно узкий класс интегралов, и возникает задача о приближенном вычислении интеграла [1–5]. Для построения и исследования приближенных формул интеb грал ∫ F ( x)dx удобно представить в виде a b ∫ p( x) f ( x)dx, (5.1) a где [ a; b ] – любой конечный или бесконечный отрезок числовой оси, f (x) – вещественная функция некоторого класса, p (x) – фиксированная функция, которую называют весовой функцией или весом. Наиболее часто приближенное значение интеграла (1) разыскивают как линейную комбинацию значений функции f (x) на отрезке [ a; b ] : b n ∫ p( x) f ( x)dx ≈ ∑ Ak f ( xk ). k =1 a 36 (5.2) Приближенное равенство (5.2) называют квадратурной формулой, определяемой узлами xk и коэффициентами Ak , а разность, возникающую при замене интеграла (5.1) – квадратурной суммой n ∑ Ak f ( xk ), k =1 b n a k =1 Rn ( f ) = ∫ p ( x) f ( x) dx − ∑ Ak f ( xk ) – остаточным членом, или остатком этой квадратурной формулы. Ве- личины n, xk и Ak (k = 1, 2, ..., n) являются параметрами правила (5.2). Их выбор не всегда произвольный, обычно подчинен одной или нескольким целям: увеличению степени точности для многочленов наивысшей возможной степени, минимизации погрешности, упрощению вычислений [1]. Рассмотрим правило (5.2) в предположении, что интегрируемая функция f (x) заранее известна или задана таблицей значений f ( xk ) в некоторой системе узлов xk (k = 1, 2, ..., n) и на выбор коэффициентов не налагаются, вообще говоря, никакие ограничения. Если Ak выбирать так, чтобы квадратурная формула (5.2) была точна для всех многочленов максимально высокой степени, то источником ее получения могут служить интерполяционные многочлены Лагранжа. Выполним алгебраическое интерполирование f (x) по ее значениям в узлах xk (k = 1, 2, ..., n) с помощью многочлена P(x) степени n − 1. Положим [1]: ω(kn ) ( x) f ( xk ), f ( x) = P ( x) + r ( x), P( x) = ∑ ( n ) k =1 ωk ( xk ) n n ωn ( x) , ωn ( x) = ∏ ( x − xk ). ω ( x) = x − xk k =1 (n) k Если это представление f (x) внести в интеграл (1), то получим равенство b b b a a a ∫ p( x) f ( x)dx = ∫ p( x) P( x)dx + ∫ p( x)r ( x)dx, или 37 b n ∫ p( x) f ( x)dx ≈ ∑ Ak f ( xk ), (5.3) k =1 a где Ak – интегралы от интерполяционных коэффициентов Лагранжа, т. е. b 1 Ak = ( n ) p ( x )ω(kn ) ( x )dx. ∫ ωk ( xk ) a (5.4) Квадратурные формулы (5.3) с коэффициентами (5.4) называются интерполяционными и являются точными для алгебраических многочленов степени не выше n − 1 [1]. Если f (x) имеет непрерывную производную порядка n, то остаток интерполяционной формулы может быть представлен в виде b 1 Rn ( f ) = ∫ p ( x)ωn ( x ) f ( n ) (ξ)dx, ξ ∈ [ a; b ] , n! a и, следовательно, справедлива оценка M Rn ( f ) ≤ n n! b ∫ p( x)ω ( x) dx, n a M n = max f ( n ) ( x) . a ≤ x ≤b (5.5) Здесь равенство достижимо только при условии, когда произведение p( x)ωn ( x) сохраняет знак на [ a; b ] , в других случаях указанная оценка может быть далека от оптимальной [1]. Рассмотрим далее интерполяционные квадратурные формулы с равноотстоящими узлами, которые принято называть формулами Ньютона – Котеса в память того, что они в достаточно общей форме были рассмотрены Ньютоном, а коэффициенты для них в случае постоянной весовой функции найдены Котесом при n = 1, 2, ..., 10 [3–4]. Предположим, что отрезок интегрирования конечен. Разделим его на n равных частей длиной h = (b − a) n , а точки деления a + kh (k = 0, 1, ..., n) примем за узлы интерполяционной формулы (5.3), которую преобразуем к виду b n a k =0 n ∫ p( x) f ( x)dx ≈ (b − a) ∑ Bk f (a + kh), где коэффициенты 38 (5.6) n ( −1) n −k ⋅ t (t − 1)...(t − k + 1)(t − k − 1)...(t − n) dt. B = nk !( n − k )! ∫0 n k (5.7) Установлено [2], что при больших n коэффициенты Bkn , определяемые по формуле (5.7), могут принимать как положительные, так и отрицательные значения, превосходящие по абсолютной величине сколь угодно большое число. Следовательно, при n >> 1 сумма ∑ Bkn будет большой и быстро возрастающей величиной. Таким образом, малые ошибки в значениях f (a + kh) могут дать значительную погрешность в квадратурной сумме. Поэтому при больших n формулы Ньютона – Котеса редко используются для вычислений [1–4]. В случае постоянной весовой функции p ( x) ≡ 1 приближенное равенство (5.6) при n = 1 и n = 2 примет соответственно вид b ∫ f ( x)dx ≈ a b−a ( f (a) + f (b) ) 2 (5.8) и b ∫ a f ( x) dx ≈ b −a a +b f (a ) + 4 f + f (b) . 6 2 (5.9) Первая из полученных формул – известная формула трапеций, которая точна для алгебраических многочленов первой степени. Вторую формулу называют квадратурной формулой Симпсона, или формулой парабол. Она точна для всякого многочлена второй степени, но так 3 a+b как эта формула, очевидно, является точной для f ( x) = x − 2 ввиду обращения в нуль в этом случае левой и правой части в (5.9), то она точна также и для всяких многочленов третьей степени. Ясно, что точность простейших квадратурных формул Ньютона – Котеса лишь в редких случаях может быть удовлетворительной. Для уменьшения погрешности отрезок [ a; b ] разбивают на n равных частей длиной h = (b − a ) n , к каждому из них применяют простейшую формулу квадратур, а результаты складывают. Так, применяя (5.8) к частичному отрезку [ a + kh; a + (k + 1)h ] , после суммирования получим составную или общую формулу трапеций 39 b ∫ f ( x) dx ≈ a b−a ( f (a) + 2 f (a + h) + ... + 2 f ( a + (n − 1)h + f (b) ) ). (5.10) 2n Если f ′′(x) непрерывна на [ a; b ] , то остаточный член формулы (5.10) представим в виде [1–5]: (b − a ) 3 Rn ( f ) = − f ′′(ξ), ξ ∈ [ a; b ]. 12n 2 Для оценки погрешности запишем неравенство Rn ( f ) ≤ (b − a )3 M 2 , M 2 = max f ′′( x) . a ≤ x≤b 12n 2 (5.11) Пусть n – четное число. Применяя формулу Симпсона (5.9) к удвоенному частичному отрезку [ a + (k − 1)h; a + (k + 1)h ] , после почленного суммирования по всем удвоенным частичным отрезкам [ a; a + 2h], [ a + 2h; a + 4h] и т. д., найдем b ∫ a f ( x) dx ≈ b−a [ f ( a ) + 2( f (a + 2h) + ... + f ( a + ( n − 2) h)) + 3n (5.12) + 4 ( f ( a + h) + ... + f ( a + (n − 1) h) ) + f (b)]. Приближенное равенство (5.12) называют составной или общей формулой Симпсона. Ее остаток, в предположении, что существует непрерывная производная f ( IV ) ( x) на [ a; b ] , представим в виде Rn ( f ) = − (b − a )5 (IV) f (ξ), ξ ∈ [ a; b ]. 180n 4 Отсюда получаем оценку погрешности (b − a )5 Rn ( f ) ≤ M 4 , M 4 = max f (IV) ( x) . 4 a ≤ x ≤b 180 n (5.13) Отметим, что оценки погрешностей (5.11) и (5.13) во многих случаях оказываются завышенными [6]. Если по каким-либо причинам достаточно сложно воспользоваться правилами (11) и (13), то поступают следующим образом: начинают вычисления с некоторым подобранным шагом, а затем проводят их с шагом, вдвое меньшим. При совпадении полученных значений с заданной степенью точности вычисления прекращают, а в качестве при40 ближенного значения интеграла берут любое из полученных; в противном случае процедура повторяется. Литература 1. Крылов, В. И. Вычислительные методы / В. И. Крылов, В. В. Бобков, П. И. Монастырный. Т. 1. – М: Наука, 1976. 2. Крылов, В. И. Приближенное вычисление интегралов / В. И. Крылов.–М.: Наука, 1967 3. Самарский, А. А. Численные методы / А. А. Самарский, А. В. Гулин. – М.: Наука, 1989. 4. Бахвалов, Н. С. Численные методы. / Н. С. Бахвалов, Н. П. Жидков, Г. М. Кобельков.--М.: Наука, 1987. 5. Сборник задач по методам вычислений / Под ред. П. И. Монастырного.– М.: Наука, 1994. 6. Бородич, Л.И. Справочное пособие по приближенным методам решения задач высшей математики / Бородич Л.И. и др. – Минск.: Выш. шк., 1986. 7. Бахвалов, Н. С. Численные методы в задачах и упражнениях /Н.С. Бахвалов, А. В. Лапин, Е. В. Чижонков.– М.: Высш. шк., 2000. Задание по теме 5 В приводимых ниже вариантах задач найти приближенное значение интегралов, используя указанную квадратурную формулу, с заданной точностью или шагом интегрирования; выполнить контроль полученных результатов с использованием специальных прикладных пакетов Mathcad, Matlab, Maple, Mathematica и т. п. Задачи по теме 5 Вариант 1 Вычислить интегралы по формулам трапеций и Симпсона и оценить погрешности: 3 dx ; k = 1,10; n = 30, 40, 50. 1. ∫ 4 k + x − 7 x 1 1 2. x dx ∫ k + x + 11x 5 ; k = 5,20; n = 10, 12, 16. 0 1 3. ∫x k exp( x 2 + 7)dx; k = 1,10; 0 41 n = 12, 16, 20. 10 4. exp(− x 2 + 9 x + k ) dx; ∫ 1 + kx 0 π 2 5. ∫ ( x 2 + kx + sin x) dx; k = 1,10; k = 1,10; n = 100, 160, 200. n = 20, 28, 32. 0 10 sin x 2 6. ∫ dx; 2 k + x 0 k = 25,40; n = 100, 120, 140. k = 3,15; n = 100, 108, 116. 7 cos x 2 7. ∫ dx; 2 kx + 3 x 0 1, 2 8. ln(k + x 2 ) ∫ 1 + x + x3 dx; 0 π 2 9. k + sin 2 x dx; 1 + kx ∫ 0 π 2 ∫ 10. 0 k + cos 2 x dx; k − sin x k = 40,55; n = 60, 80, 100. k = 10,20; n = 12, 16, 20. k = 7,17; n = 16, 24, 32. Вариант 2 Вычислить интегралы по формулам трапеций и Симпсона с заданной точностью, определяя шаг интегрирования по оценке остаточного члена: 1 1 dx 1. ∫ (k = 1,10) с точностью до ε = ⋅ 10−7. 2 2 0 k +x 10 2. dx ∫ k + x3 (k = 20,30) с точностью до ε = 0 3 1 ⋅ 10−8. 2 1 exp( x 2 ) 3. ∫ dx (k = 5,15) с точностью до ε = ⋅ 10−6. k+x 2 0 42 7 4. 1 kx + x 2 dx ( k = 11 , 25 ) с точностью до ε = ⋅ 10−7. ∫ exp( x 2 ) 2 0 π 2 5. sin x ∫ k + x dx (k = 1,10) с точностью до ε = 0 10 6. ∫ ( x + k ) sin x dx 2 (k = 5,19) с точностью до ε = 0 π 4 cos x 2 dx 7. ∫ k + x2 0 1 ⋅ 10−8. 2 1 ⋅ 10−8. 2 1 (k = 1,10) с точностью до ε = ⋅10 − 6. 2 7 8. 1 sin x dx ( k = 3 , 15 ) с точностью до ε = ⋅ 10−8. ∫ k + x2 2 0 8 9. 1 arcsin x + kx dx ( k = 30 , 40 ) с точностью до ε = ⋅ 10−6. ∫ k + x2 2 0 11 10. 1 arctg x + kx 2 −7 ∫ 1 + kx dx (k = 10,20) с точностью до ε = 2 ⋅10 . 0 Вариант 3 1. Получить формулы Ньютона – Котеса и соответствующие оценки погрешностей при числе узлов n = 1, 2, 3. 2. Рассмотрим формулы Ньютона – Котеса при числе узлов n = 1 (формула прямоугольников) и n = 2 (формула трапеций). Какая из них имеет лучшую точность? 3. Пусть весовая функция p (x) четна, узлы xi расположены симметрично относительно нуля, т. е. xn +1− i = − xi , i = 1, ..., n. Доказать, что в интерполяционной квадратурной формуле для вычисления интеграла I( f ) = a ∫ p( x) f ( x)dx −a коэффициенты, соответствующие симметричным узлам, равны, т. е. An +1− i = Ai , i = 1, ..., n. 43 1 4. Для вычисления ∫ f ( x)dx применяется составная формула 0 трапеций. Оценить минимальное число разбиений N, обеспечивающее точность 0,5 ⋅10 −3 на двух классах функций: 1) f ′′( x) ≤ 1; 1 2) ∫ f ′′( x) dx ≤ 1. 0 1 5. Найти оценку погрешности вычисления интеграла ∫ f ( x)dx 0 при f ( x) = 1 по составной квадратурной формуле 1 + x2 S ( f ) = ( f (0 ) + 4 f (0,1) + 2 f (0,2 ) + 4 f (0,3) + ... + 4 f (0,9 ) + f (1,0 )) / 30. 6. Оценить минимальное число разбиений отрезка N для вычис1 ления интеграла ∫ sin( x 2 )dx по составной квадратурной формуле тра0 пеций, обеспечивающее точность 10 −4. 7. Оценить минимальное количество узлов составной квадратур1 ной формулы трапеций для вычисления интеграла ∫ exp( x )dx, 2 обес- 0 −3 печивающее точность ε ≤ 10 . 8. Оценить минимальное количество узлов составной квадратур2 ной формулы Симпсона для вычисления интеграла ∫ f ( x)dx , обеспе0 чивающее точность ε ≤ 0,5 ⋅ 10 −4 на классе функций, удовлетворяющих условию sup f ( IV ) ( x) ≤ 1. x∈[0; 2 ] 9. Пусть f ∈ C (1) [ −1; 1] и P5 ( x) – алгебраический полином пятой степени, удовлетворяющий условиям P( xk ) = f ( xk ), P′( xk ) = f ′( xk ), k = 1, 2, 3, где x1 = −1, x2 = 0, x3 = 1. Рассмотрим квадратурную формулу следующего вида: S5 ( f ) = (7 f (− 1) + 16 f (0 ) + 7 f (1) + f ′(− 1) − 15 f ′(1)) / 15. Проверить, что [7] 44 1 ∫ P5 ( x)dx = S5 ( P5 ), −1 и доказать, что S5 ( f ) точна на полиномах пятой степени, но найдется полином степени 6, на котором она не точна. 1 10. Интеграл ∫ f ( x)dx от функции с параметром β : β 0 0 при x = 0; fβ = β x при x ∈ ( 0; 1] , где −1 < β < 1, вычисляется по составной квадратурной формуле трапеций с распределением узлов xq = ϕ(q / N ), ϕ(t ) = t α . Доказать, что 2 суммарная погрешность удовлетворяет соотношению β +1 R( f ) ≈ D ( α, β ) / N 2 , где D ( α, β ) – некоторая отличная от нуля функция от аргументов α и β. при α > Те м а 6 КВАДРАТУРНЫЕ ФОРМУЛЫ ТИПА ГАУССА Рассмотрим следующую оптимизационную задачу. При заданном числе n узлов построить квадратурную формулу b n a k =1 ∫ p ( x ) f ( x ) dx = ∑ A f ( x ), k k (6.1) точную для многочленов наиболее высокой степени N. Такие формулы называют квадратурами Гаусса. В нашем распоряжении имеется 2n свободных параметров (узлы xn и коэффициенты Ak ). Нетрудно убедиться в том, что, если почти всюду p ( x ) > 0 , то не существует формулы (6.1), точной для всех многочленов степени N = 2n. Действи2 2 f ( x ) = ( x − x1 ) ...( x − xn ) , получим, что тельно, взяв b ∫ ( x − x ) ...( x − x ) p ( x ) dx > 0 , а правая часть в формуле (6.1) будет 2 1 2 n a равна нулю. Можно попытаться построить квадратурную формулу, соответствующую значению N ≤ 2n–1. Установлено [2], что квадратурная формула (6.1) будет точна для всех многочленов степени 45 N ≤ 2n–1, при условии p ( x ) ≥ 0, a ≤ x ≤ b, если, во-первых, квадратурная формула (6.1) является интерполяционной, во-вторых, многочлен ω ( x ) = ( x − x1 ) ...( x − xn ) ортогонален по весу p ( x ) по всем многочленам степени меньше n. Второе утверждение позволяет определить узлы xn , а первое – коэффициенты An . Важную роль при построении формул Гаусса играют ортогональные многочлены на отрезке [a; b] с весом p ( x ) >0: Лежандра ([–1; 1], p ( x ) = 1 ), Чебышева ([0, ∞], p ( x ) = e ) , Эрмита ([ −∞, −x 1 [ −1, 1] , p ( x ) = 1 − x2 ) , Лагерра + ∞ ], p ( x ) = e− x . 2 При построении квадратурных формул Гаусса ключевым является следующее утверждение. Пусть x1 , ..., xn – нули ортогонального многочлена ψ n ( x ) степени n, и (6.1) – квадратурная формула, точная для многочлена степени n-1. Тогда (6.1) будет точна для многочленов степени 2n–1. Поэтому процесс построения квадратурных формул может быть разбит на два последовательных этапа: 1. Нахождение нулей ортогональных многочленов. 2. Определение квадратурных коэффициентов. Рассмотрим некоторые частные квадратурные формулы Гаусса. Квадратурная формула Гаусса 1 n −1 k =1 ∫ f ( x ) dx = ∑ A f ( x ) k (6.2) k имеет своими узлами корни многочлена Лежандра. 1 d Pn ( x ) = n ⋅ 2 n! n (x 2 − 1) n dx n , а коэффициенты Ak вычисляются по формуле Ak = 2 (1 − xk2 ) ( Pn′ ( xk ) ) 2 , k = 1, ..., n. Для остатка формулы (6.2) имеет место представление 46 2 ( n!)2 ( 2 n ) 2 Rn ( f ) = f ( ξ ) , ξ ∈ [ −1; 1] . ( 2n + 1)( 2n )! ( 2n )! 2 n +1 Квадратурные формулы Гаусса 1 ∫ (1 − x ) n ( x + 1) f ( x ) dx = ∑ Ak f ( xk ), α β (6.3) k =1 −1 где α > −1, β > −1 , имеют своими узлами корни многочлена Якоби степени n ( α ,β ) Pn ( x) ( −1) = n 2n n! (1 − x ) −α (1 + x ) β ( ) dn α+ n β+ n 1 − x ) (1 + x ) , n ( dx а для коэффициентов Ak справедливо представление Ak = 2α+β+1 Γ ( α + n + 1) Γ ( β + n + 1) 1 ⋅ , 2 ( α ,β ) 2 n!Γ ( α + β + n + 1) (1 − xk ) Pn ( xn ) ( ) ∞ где Γ ( x ) = ∫ e − t t x−1dt при x > 0. 0 1 Если α = β = − , то квадратурная формула (6.3) примет вид 2 1 2 n f ( x ) dx = ∑ f ( xk ) π k =1 1 − x2 1 ∫ −1 (6.4) и узлы xn являются корнями многочлена Чебышева Τn ( x ) = cos ( n arccos x ) . Остаточный член квадратурной формулы (6.4): Rn ( f ) = π 2 2 n −1 ( 2 n )! f( 2n) (ξ), − 1 ≤ ξ ≤ 1. Квадратурная формула Гаусса ∞ ∫e −∞ имеет своими степени n узлами − x2 n f ( x ) dx = ∑ Ak f ( xk ) (6.5) k =1 корни многочлена 47 Чебышева – Эрмита d n − x2 Η n ( x ) = ( −1) e e , dx n n x2 а для коэффициентов Ak и остатка Rn ( f ) справедливы представления Ak = 2n+1 n! π ( Η′ ( x ) ) 2 , Rn ( f ) = k n! π ( 2 n ) f ( ξ ). 2 n ( 2 n )! Квадратурная формула Гаусса ∞ n f ( x ) dx = ∑ Ak f ( xk ), ∫x e α −x (6.6) k =1 0 где α > 1, имеет своими узлами корни многочлена Чебышева – Лагерра (α) Ln d n α+ n − x = ( −1) x e ( x e ), dx n n −α x а коэффициенты Ak и остаток Rn ( f ) вычисляются по формулам Ak = n!Γ ( α + n + 1) ( xk L(n )′ ( xk ) α ) 2 , Rn ( f ) = n!Γ ( α + n + 1) ( 2 n ) f ( ξ ). ( 2 n )! Литература 1. Крылов, В. И. Вычислительные методы высшей математики / В. И. Крылов, В. В. Бобков, П. И. Монастырный. Т. 2. – Минск: Выш. шк., 1974. 2. Бахвалов, Н. С. Численные методы / Н. С. Бахвалов.–М.: Наука, 1975. 3. Кончепова, Н. В. Вычислительная математика в примерах и задачах / Н. В. Кончепова, И. А. Марон.–М.: Наука, 1975. 4. Сборник задач по методам вычислений.–Минск.: Университетское, 2000. 5. Бахвалов, Н. С. Численные методы в задачах и упражнениях / Н.С. Бахвалов, А. В. Лапин, Е. В. Чижонков.– М.: Высш. шк., 2000. Задание по теме 6 В приведенных ниже вариантах задач в соответствии с указаниями преподавателя выполнить одно или несколько требований: • построить квадратурную формулу Гаусса с заданным весом и для определенного числа узлов; 48 • оценить остаточный член квадратурной формулы при заданном числе узлов; • показать, что приведенная квадратурная формула точна для всех алгебраических многочленов заданной степени; • проверить свойства узлов и коэффициентов заданной квадратурной формулы; • написать программу для определения корней ортогональных многочленов. Задачи по теме 6 Вариант 1 Определить узлы и коэффициенты квадратурных формул при n = 1(1)10. 1. [a; b] = [–1; 1], p ( x ) = 1 1 − x 2 . 2. [a; b] = [–1; 1], p ( x ) = 1 − x 2 . 3. [a; b] = [0; 1], p ( x ) = 1 x. 4. [a; b] = [0; 1], p ( x ) = x . 5. [a; b] = [ 0, ∞ ) , p ( x ) = e − x . 6. [a; b] = [ 0, ∞ ) , p ( x ) = e − x x. 7. [a; b] = [ 0, ∞ ) , p ( x ) = e − x x . 8. [a; b] = ( −∞, ∞ ) , p ( x ) = e − x . 2 Вариант 2 Вычислить интеграл с заданной точностью, предварительно определив число узлов и написав программы для определения узлов и коэффициентов. 1 1. ∫ 0 x (e dx 0,1 x + 1,5 ) , ε = 10−4. 49 1 2. ∫ x sin x 2 dx, ε = 10−4. 0 1 3. ∫ x cos x 2 dx, ε = 10−4. 0 1 4. ∫ 1 − x 2 e x dx, ε = 10−4. −1 1 5. ∫ 1 − x 2 e− x dx, ε = 10−4. −1 1 6. x −4 ∫0 1 + x 2 dx, ε = 10 . Вариант 3 1. Методом ортогонализации построить многочлены Лежандра со старшим коэффициентом 1, ортогональные на отрезке [–1; 1] с весом p ( x ) ≡ 1. 2. Доказать, что ортогональный многочлен степени n имеет ровно n различных корней на отрезке [a; b]. 3. Доказать, что среди всех многочленов степени n вида Pn ( x ) = x + ... минимальную норму Pn 4 2 b = ∫ p ( x ) Pn2 ( x ) dx имеет ортоa гональный многочлен ψ n ( x ) со старшим коэффициентом 1. 4. Для ортогональных многочленов вида ψ n ( x ) = x 4 + ... доказать справедливость рекуррентного соотношения ψ ( x ) = ( x + bn ) ψ n−1 ( x ) − cnψ n−2 ( x ) с коэффициентом cn > 0. 5. Доказать, что ортогональные многочлены на симметричном относительно нуля отрезке [–1; 1] с четным весом p(x) обладают свойn ством ψ n ( − x ) = ( −1) ψ n ( x ) . . 50 СОДЕРЖАНИЕ Т Е М А 1 АЛГЕБРАИЧЕСКОЕ ИНТЕРПОЛИРОВАНИЕ. ПОЛИНОМ ЛАГРАНЖА......... 3 Т Е М А 2 КОНЕЧНЫЕ РАЗНОСТИ И РАЗНОСТНЫЕ ОТНОШЕНИЯ. ИНТЕРПОЛЯЦИОННЫЙ ПОЛИНОМ НЬЮТОНА ........................................................ 10 Т Е М А 3 ИНТЕРПОЛИРОВАНИЕ ПО РАВНООТСТОЯЩИМ ЗНАЧЕНИЯМ АРГУМЕНТА ........................................................................................................ Т Е М А 18 4 ИНТЕРПОЛИРОВАНИЕ СПЛАЙНАМИ .................................................. 26 Т Е М А 5 ИНТЕРПОЛЯЦИОННЫЕ КВАДРАТУРНЫЕ ФОРМУЛЫ С ФИКСИРОВАННЫМИ И РАВНООТСТОЯЩИМИ УЗЛАМИ ........................................... Т Е М А 6 КВАДРАТУРНЫЕ ФОРМУЛЫ ТИПА 51 36 ГАУССА....................................... 45 Учебное издание Монастырный Петр Ильич Азаров Алексей Иванович Игнатенко Марина Викторовна и др. ИНТЕРПОЛИРОВАНИЕ ФУНКЦИЙ И ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ Вычислительный практикум для студентов мех.-мат. фак. спец. 1-31 03 01 «Математика (по направлениям)», 1-31 03 02 «Механика (по направлениям)» Редактор Н.Ф. Акулич Технический редактор Т. К. Романович Корректор О. Н. Кохно Компьютерная верстка В. В. Власова Подписано в печать __.__.2006. Формат 60×84/16. Бумага офсетная. Печать офсетная. Усл.печ.л. ____. Уч.-изд.л. . Тираж 100 экз. Зак. Белорусский государственный университет. Лицензия на осуществление издательской деятельности №02330/0056804 от 02.03.2004. 220050, Минск, проспект Независимости,4. Отпечатано с оригинала-макета заказчика. Издательский центр «Белорусского государственного университета». Лицензия на осуществление полиграфической деятельности №02330/0056850 от 30.04.2006. 220030, Минск, ул. Красноармейская, 6. 52