МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ МИКОЛАЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ІМЕНІ В.О.СУХОМЛИНСЬКОГО МЕХАНІКО-МАТЕМАТИЧНИЙ ФАКУЛЬТЕТ КАФЕДРА КОМП‘ЮТЕРНИХ СИСТЕМ І МЕРЕЖ “ЗАТВЕРДЖУЮ” Проректор з навчальної роботи ___________________________ “_____”_______________2012 р. А.В.Мельник Алгоритмы и методы вычислений Методические указания по выполнению практических работ по разделу “Приближение функций” НИКОЛАЕВ 2012 Учебное пособие составлено в соответствии с программой курса “ Алгоритмы и методы вычислений”, читаемого студентам специальности “Компьютерные сети и системы “. В учебном пособии рассматриваются методы вычислений, используемые в инженерной практике, которые отличаются большим объемом вычислительной работы. В пособии отобраны численные методы для решения на ПЭВМ задач математического анализа, встречающихся в инженерных расчетах и знакомых студентам из курса “Высшей математики”. При этом учтено, что по численным методам алгебры имеется достаточно обширная литература, поэтому эти разделы в пособие не включены. Описание методов ориентировано на конкретную реализацию соответствующих алгоритмов на ПЭВМ. Особенности алгоритмов иллюстрируются на примерах. Рекомендовано кафедрой естественных дисциплин и компьютерных технологий. Автор: к.т.н. Мельник А.В. Рецензент: к.ф.-м.н. Выжол Ю.А. 2 Приближение функций Практическое задание 1 .1. Построение интерполяционного полинома Лагранжа. Теоретические формулы В задачах математического моделирования очень часто возникает необходимость заменить используемую в расчетах функциональную зависимость y (x) приближенной функцией ( x, a ) , по которой легко вычисляются значения исходной функции и которая в определенном смысле близка к y (x) . После такой замены все расчеты выполняют, используя зависимость ( x, a ) , причем близость y (x) и ( x, a ) обеспечивается подбором a a , a ,..., a 0 1 n . свободных параметров В простейшем варианте лагранжевой интерполяции, когда функция y (x) x задана в узлах некоторой сетки i , параметры a определяют из условия совпадения ( x, a ) со значениями функции в фиксированном числе узлов. Интерполяционный многочлен Лагранжа имеет общий вид: Lx a 0 a1 x a 2 x 2 ... a n x n , где n – количество узлов интерполяции; ai i 0,1, ..., n неизвестные постоянные коэффициенты, которые надо найти. Окончательно многочлен Лагранжа рассчитывается по формуле: L x y 0 x x1 ...x xn x x0 x x2 ...x xn x x0 x x1 ...x xn1 y1 ... y n xn x0 xn x1 ...xn xn1 x0 x1 ...x0 xn x1 x0 x1 x2 ...x1 xn где x0 xn , y 0 y n - значение таблицы функции. Пример: Построить интерполяционный полином Лагранжа 2-й степени по трем целочисленным координатам и найти его значения в промежуточных точках. Найденные значения сравнить со значениями функции в этой точке. Для n=2 многочлен Лагранжа имеет вид: L x y 0 x x0 x x2 x x0 x x1 x x1 x x2 y1` y3 . x0 x1 x0 x2 x1 x0 x1 x2 x2 x0 x2 x1 Пусть задана таблица значений функции в 20-ти точках y f x : 3 i 0 1 2 3 4 5 6 7 8 9 10 Xi 1 1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 1,9 2 Yi 1,99 1,18 0,39 -0,32 -0,94 -1,4 -1,69 -1,77 -1,64 -1,33 -0,88 i 11 12 13 14 15 16 17 18 19 20 Xi 2,1 2,2 2,3 2,4 2,5 2,6 2,7 2,8 2,9 3 Yi -0,36 0,14 0,55 0,79 0,82 0,66 0,36 0,01 -0,29 -0,45 Выберем три точки с координатами xi 1,2,3 равномерно расположенные по отрезку (1,3) и определим соответствующие им значения yi i 0 1 2 xi 1 2 3 yi 1,99 -0,88 -0,45 Тогда полином Лагранжа будет иметь вид: Lx 1,99 x 2x 3 0,88 x 1x 3 0,45 x 1x 2 1 21 3 2 12 3 3 13 2 Практическое задание 1.2. Интерполяционный полином Ньютона Пусть нам задана функция для равностоящих значений аргумента x0 , x0 h, ... x0 n h известны значения функции f x y1 y 0 , y 2 y1 ... y n y n 1 разделение разностей 1 порядка y i y i 1 y i Из этих разностей можно организовать разность 2 порядка 2 y 0 y1 y 0 2 y1 y 2 y1 , , ... y n 1 y n y n 1 Так же можно определить разности 3 порядка. Интерполяционный полином Ньютона имеет вид f x0 n h f x0 x x0 x x1 2 x x0 x x1 x xn1 n x x0 y 0 y0 y0 2 h 2h n !h n 4 Обычно разности рассчитывают в виде таблицы f y y0 y 0 2 2 y 0 3 3 y 0 y1 y1 2 y1 3 y1 y2 y n 2 2 y n 2 3 y n 3 y n 1 y n 1 yn yn y0 y n 1 y 0 Практическое задание 1.3. Интерполяция сплайнами Пусть функция задана таблицей своих значений xi , yi iN0 N 1 точка . Поставим задачу соединить их «гибкой» линией, т.е. 4 x 0 Из этого следует, что x многочлен 3-й степени. S1 S 2 x0 1 x1 2 Sn xn 1 x2 xi , yi xn xi 1 x xi 1 кубический сплайн имеет вид- На i - том интервале S i x a i bi x xi 1 _ ci x xi 1 d i x xi 1 2 3 S i 1 x a i 1 bi 1 x xi ci 1 x xi d i x xi 2 S x S i x для x xi 1 , xi т.е. S x определяется 4 массивами коэффициента ai, bi, ci, d i i 1, 2, ... n т.е. всего неизвестных 4 N . Будем находить коэффициент из условий: 1) Равенство сплайна значения функции в узлах интерполяции S xi y i S x 0 S1 x 0 y 0 i 1, 2, ...n 1 S x n S n x n y n 2) Непрерывность сплайна во внутренних узлах S i 1 xi S i 1 xi i 1, 2, ... n 1 3) Непрерывность 1 производной во внутренних узлах 5 S i xi S i1 xi 4) Непрерывность 2 производной во внутренних узлах S i xi S i1 xi Всего 4n 1 2 4 n2 условий Еще два условия можно получить положив гладкость на концах 5) S x 0 0, S x n 0 или 2) S x 0 f a , S x n f x n . Практическое задание 1.4. Среднеквадратичная аппроксимация функции полиномом на множестве точек Теоретические формулы На практике порядок аппроксимирующего полинома m выбирают поменьше, а число точек n побольше. В этом случае определитель системы равен 0 и нельзя построить интерполяционный полином. Тогда используют точечный метод наименьших квадратов, принимая за меру отклонения невязку Qm , т.е. сумму квадратов отклонений полинома Pm в точках хi от значений функции в этих точках m Pm ak k x k i n Qm Pm xi f xi 2 i 0 Так как Qm - есть функция коэффициента a 0 ,...........a m , то ставится задача подобрать эти коэффициенты так, чтобы отклонение было минимальным. Такой полином уже называется аппроксимирующим, а процесс его построения точечной квадратичной аппроксимацией. Применим такой прием: найдем частные производные по c i и приравняем к нулю. 1 2 m 1 2 n Qm c 0 xim c1 xim 1 c 2 xim 2 ...c m y i xim 0 Q0 i 0 n Qm c 0 xim c1 xim 1 c 2 xim 2 ...c m y i 0. Qm i 0 6 X 1...N x1 , x 2 ..., x n y1 , y 2 ..., y n Введем обозначения S k x 0 x1 ...x n k k Y 1...N k 0, 1,...2M . k t k x 0 y 0 x1 y1 ... x n y n k k k Тогда система будет a : a 0 s 2 m a1 s 2 m 1 ... a m s m t m m 1 ai; j a 0 s 2 m 1 a1 s 2 m 2 ... a m s m 1 t m 1 a 0 s m a1 s m 1 ...a m s 0 t 0 AI , M 2 S0 n 1 Пример:Построить аппроксимирующий полином 2-й степени методом наименьших квадратов Аппроксимирующий полином 2-й степени в общем случае имеет вид: y ax 2 bx c, где а, b, с – параметры подлежащие определению. Согласно методу наименьших квадратов, эти коэффициенты вычисляются из критерия минимума суммы квадратов отклонений: F i2 y i ax i2 bx i c min . n n i 1 i 1 2 Для нахождения коэффициентов a, b, c, исходя из заданного условия, необходимо решить систему: n n n n 4 3 2 a x b x c x x i2 y i , i i 1 i 1 i 1 i 1 i 1 n n n n 3 2 a x b x c x xi y i , 1 i i i 1 i 1 i 1 i 1 n n n 2 1 a x1 b x i cn y i . i 1 i 1 i 1 Практическое задание 1.5. Среднеквадратичное приближение функций на отрезке. Теоретические формулы. Пусть полиномы Pm x и функция f x определяет на отрезке a, b. . Примем за меру отклонения величину b m Pm x f x 2 dx, a 7 m Выберем: Pm c i x m i i 0 Эта функция І m есть функция коэф. c i . Чтобы І m было минимальным, частные производства должны быть равны 0 1 2 1 2 1 2 I m b Pm x f x c0 x m ... ci x m c0 a I m b Pm x f x Ix m dx 0 c1 a I m b Pm x f x x m dx 0 c m a b t k x k f x dx a или учитывая, что b k 1 a k 1 S k x dx ; k 1 a b k 0,1,...m k Получим : b m s 2 m c0 s1c1 ... s m c m x f x dx t m a b s c s c ... s c 2 m 1 0 2 1 m 1 m a xf x dx t m1 b s m c0 s m 1c1 ... s 0 c m x m f x dx t 0. a Эта система имеет единственное решение. Практическое задание 1.6. Приближение на отрезке ортогональной системой функций. Теоретические формулы Определение. Система интегрируемых функций n называются ортогональной на отрезке a, b , если b x x dx m n m , n 0 при m n a b Число m , m m2 x dx m x a 8 называется нормой функции. Если норма функции равна 1, то такая система называется ортонормированной. Для ортонормированной системы выполняется условие: b m n mn a 1 m n 0 m n где mn - символ Кронекера mn Очевидно всякую систему функций можно нормировать разделив каждую функцию на ее норму. n , n , n n n n 0, ... m будет --------. m 1, x, x 2 , ... на отрезке 0, 1 0 1. xm m 1 2m x dx 0 xm 2 m 1 x m 1 2 m 1 и нормированная система функций имеет вид 5 x 2 , ... 2 m1 x m , 1, 3x, Для таких систем задача о квадратичной аппроксимации получает наиболее простое решение: или, учитывая св-во ортогональности n i 1 n f x i 0 x i C 0 0 x i 0 x i 0. i 1 или f , 0 C 0 0 2 0 2 f , m C m m 0 Тогда, n Ck xi k xi f , k i 1 k 2 n x i 1 k 0, ... m 2 k i а m 2 f x c k k x f f f , f f , , f , f k 1 2 m ck k 2 2 k 1 9 f, m c k k 0 m 2 k ck k k 0 т. к. f , k c k k , c k 2 k 2 2 Поэтому в данном случае и не надо решать систему уравнений. Если функции ортонормированы , т.е. i 1 , то вообще система упрощается. Ортогональная система функций - Чебышева. В точках ортогональности xi : T 0, T1 x a, Tk x a k Tk 1 x Bk Tk 2 x n 1 n где a xi , n i 1 ak x T i i 1 n T 2 2 k 1 k 1 i 1 k 2, 3, ... m 1 xi xi n Bk x T x T x k 2 i i 1 n T k 1 i 2 k 2 i 1 i xi n Ck f x T x i i 1 n i T x i 1 C0 k 2 i f x i m Заметим, что n n i 1 i 1 обычная x m , x k xim x ik xim k 0, т.к. x m m система xi 0 – не для ортогональна, всех i т.к. система: , x k c k f , x m 0 m n k 0 Поэтому среднеквадратичную апроксимацию полиномами мы рассматриваем отдельно и получаем систему уравнений, решаемую методом Гаусса. В самом деле из условия минимума интеграла 2 m I m ci i x f x dx a i 0 b для определения коэффициента уравнений 1 I m m ci i x f x j x dx 0, 2 c j a i 0 b ci i 0, ... m имеет систему m 1 j 0, 1, 2 ... m или после несложных преобразований система принимает вид 10 m b b i 0 a a ci i x j xdx f x j xdx В силу ортогональности b x xdx 0 i при j i j a поэтому все слагаемые левой части уравнений (5) за исключением j го обращаются в 0. Следовательно b b ci x dx f x j x 2 j a a или, вспоминая определенные нормы b f x x dx j ci a j x 2 а если система артонормирована, то b c j f x j x dx j 0, 1, 2, ... m. a В этом случае коэффициент c j называется коэффициентом Фурье функции f x относительно заданной ортогональной системы j x . Такое разложение дает наилучшее приближение функции в квадратичном смысле (т.к. вторая производная >0). Можно найти, что m d 2 I m 2 j x dc 2j 0. 2 j 0 Пример: Пусть функция определенная на системе точек i xi yi 1 0 4 2 1 0 3 3 1 4 4 2 Аппроксимируем f x - полиномами P0, P1, P2, P3. Решение: Составим полиномы Чебышева: 11 T0 1 T1 x a T2 x a 2 T1 x b2 T0 x a2 T1 x 2 a2 2 b2 2,5 T2 x x 2 2,5 2 T3 x a 3 T2 x b3T1 x 4 a3 x g x i 1 4 i g x i 1 b3 2 2 i 2 2 9 10 4 i 1 Q0 c 0 T0 x 7 4 7 Q0 4 9 9 9 9 1 3 4 4 4 4 4 2 9 i T3 g 32 x i c0 0 c1 3 10 72 5 Q1 c 0 T0 c1T1 c2 5 6 c3 1 3 3 47 x 10 20 5 109 18 Q2 x 2 x 6 30 5 1 17 2 13 Q3 x x 3 x x 4 совпадает в точках x i u y i . 3 6 2 Q1 12