Министерство образования и науки Российской Федерации ВОСТОЧНО-СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ
–2...
70 downloads
163 Views
219KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Министерство образования и науки Российской Федерации ВОСТОЧНО-СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ
–2– Рецензент Л.В. Найханова, к.т.н., доцент Методические указания содержат краткое описание теории аппроксимации функции применительно к среднеквадратичному и равномерному приближениям. Приведены образцы применения к конкретным задачам. Даны варианты заданий для самостоятельного решения задачи аппроксимации функции с использованием компьютера. Методические указания предназначены для студентов специальностей 230105 – «Программное обеспечение вычислительной техники и автоматизированных систем», 010500 – «Математическое обеспечение и администрирование информационных систем» и 230101– «Вычислительные машины, комплексы, системы и сети».
Основы вычислительной математики
Выпуск 7: Аппроксимация функций Методические указания
Составители: Ширапов Д.Ш., Ширапов Б.Д., Ябжанова С.Б.
Издательство ВСГТУ Улан-Удэ, 2006
Ключевые слова: функция, многочлен, приближение, аппроксимация, погрешность, табличная функция, оценка, минимизация, узловая точка.
–3– СОДЕРЖАНИЕ 1. Постановка задачи и основные определения ……..4 2. Среднеквадратичное приближение ……………….5 2.1. Пример применения ……………………………..7 2.2. Практические рекомендации…………………….9 2.3. Задания для решения…………………………….10 3. Равномерное приближение ……………………….11 3.1. Вычисление функций разложением в ряды Тейлора …………………………………13 3.2. Многочлены Чебышева………………………….14 3.3. Экономизация степенных разложений…………16 3.4. Пример применения……………………………...17 3.5. Задания для решения…………………………….18 Используемая литература………………………………21 Рекомендуемая литература…………………………….21
–4– 1. Постановка задачи и основные определения Ставится следующая задача – найти аналитическое выражение для описания функции у=f(x), заданной таблично, т.е. дискретному множеству значений аргумента {x0, x1,…, xn} соответствует множество значений функций {y1, y2,…, yn}. Найденная формула может быть использована для исследования функции различными методами математического анализа, также для описания каких-то физических, химических и т.д. явлений. Существуют два основных способа получения таких выражений. Первый. Значения функции yi в узловых точках xi могут быть получены различным образом, в результате эксперимента, либо вычислены. Если при этом аналитическое выражение строится таким образом, чтобы значения функции у=f(x) и искомого аналитического выражения совпадали в узловых точках xi , то такая аппроксимация называется «интерполированием» [1-5]. Второй. Функция у=f(x) задана таблично или аналитически. Но в последнем случае формула может иметь очень сложный и громоздкий вид, который не позволяет достаточно просто исследовать эту функцию методами математического анализа. Тогда имеет смысл найти более простое аналитическое описание функции у=f(x), которое упростит процедуру исследования функций. В этом случае значения функции у=f(x) и искомого аналитического выражения необязательно совпадают в узловых точках xi . Методы «аппроксимации функции», удовлетворяющие условиям построения 2-го способа, и будут предметом рассмотрения данного методического указания. Сформулируем задачу аппроксимации (приближения) функций. Пусть задана функция у=f(x) и требуется приближенно заменить функция f(x) другой функцией ϕ(х) таким
–6–
–5– образом, чтобы отклонение ϕ(х) от f(x) (в некотором определенном смысле) было наименьшим в заданной области. В этом случае функцию f(x) называют аппроксимируемой, а функцию ϕ(х) – аппроксимирующей. Аппроксимация может быть точечной или непрерывной. Аппроксимация называется точечной, если аппроксимирующая функция строится на дискретном множестве точек {x0, x1,…, xn}. Аппроксимация называется непрерывной (или интегральной), если функция ϕ(х) строится на непрерывном множестве точек. При постановке задачи аппроксимации предварительно должны быть решены следующие вопросы: 1. Выбор узловых точек xi , если имеется некоторая свобода в их выборе. В некоторых случаях удобно использовать равностоящие значения аргумента, то есть xi - xi-1 =h=const. В других случаях, специальное распределение узлов xi , что позволяет уменьшить погрешность аппроксимации. 2. Выбор класса функций. На практике чаще всего используют многочлены вида ϕ(х)=a0 + a1x + a2x2 +…+ amxm. (1) Такие приближения называют многочленными. Другой класс аппроксимирующей функции ряд Фурье имеет вид ϕ(х)= a0/2 +
m
∑ (a k cos kx + b k sin kx ) .
k =1
3. Критерий близости между аппроксимируемой функцией f(x) и аппроксимирующей функцией ϕ(х). 2. Среднеквадратичное приближение Среднеквадратичное приближение – это способ аппроксимации, при котором критерий близости исходной функции f(x) и аппроксимирующей её функции ϕ(х) определяется как сумма квадратов отклонений f(x) от ϕ(х) на заданной
системе точек и ищется такая функция ϕ(х), для которой эта сумма будет минимальна. Отметим, что такой подход часто используется в случае, когда исходная табличная функция f(x) получена экспериментально и требуется описать эту функцию аналитически, вид которого известен, но параметры, от которых зависит это выражение, подлежат определению. Другими словами, в качестве аппроксимирующей функции берется известная функция ϕ(х; a0 , a1 , …, am), зависящая от параметров ai . Пусть функция у=f(x) задана таблично. Требуется подобрать такие значения параметров a0 , a1 , …, am , при которых сумма квадратов отклонений функций f(x) и многочлена ϕ(х) при всех значениях xi (i=0,1,2,…, n) n
S= ∑ [ϕ( x i ; a 0 , a 1 ,..., a m ) − y i ] 2
(2)
i=0
будет минимальна. Так как значения аргументов xi заданы, функция S(a0 , a1 , …, am) будет зависеть только от параметров a0 , a1 , …, am . Тогда задача сводится к задаче нахождения минимума функции S. Из курса математического анализа известно, что для нахождения минимума функции (2) надо найти частные производные этой функции по параметрам аi и приравнять их нулю, тогда получим ∂S/∂a0=0, ∂S/∂a1=0, …, ∂S/∂am=0. (3) Формула (3) представляет собой систему алгебраических уравнений, состоящих из (m+1) – уравнений и (m+1) – неизвестных a0 , a1 , …, am . Если функция S(a0 , a1 , …, am) зависит от аргументов линейно, то решается система линейных алгебраических уравнений (СЛАУ) одним из методов [1-4, 6]. В противном случае (3) представляет систему нелинейных алгебраических уравнений, которая решается методами, описанными в [2, 3]. Способ определения параметров ai описанным выше образом называется методом наименьших квадратов.
–8–
–7– 2.1. Пример применения В качестве аппроксимирующей функции выберем квадратный многочлен ϕ(х)= a0 + a1х + a2х2 , (4) в котором зависимость от неизвестных a0 , a1, a2 является линейной. Тогда формула (2) принимает вид n
S(a0 , a1 , a2)=
∑ [a i =0
0
+ a 1 x i + a 2 x i2 − y i ] 2 .
х 0.75 1.5 2.25 3.0 3.75 у 2.5 1.2 1.12 2.25 4.28 Требуется найти многочлен второй степени вида (4), который даст наилучшее среднеквадратичное приближение табличной функции f(x). Решение. В этом примере m=2, n=4. Вычислим все члены матрицы в формуле (5) и правой части СЛАУ. Они таковы: 4
n
∑x
i
= 0.75+1.50+2.25+3.00+3.75=11.25,
i =0 n
∑x
2 i
=0.752+1.502+2.252+3.002+3.752=30.94,
i =0 n
∑x
3 i
=0.753+1.503+2.253+3.003+3.753=94.92,
∑x
4 i
=0.754+1.504+2.254+3.004+3.754=309.76,
∑y
i
= 2.5+1.2+1.12+2.25+4.28=11.35,
Откуда, вычисляя частные производные, получим ∂S/∂a0=2 ∑ [a 0 + a 1 x i + a 2 x i2 − y i ] =0, ∂S/∂a1=2 ∑ [a 0 + a 1 x i + a 2 x i2 − y i ]x i =0,
∂S/∂a2=2 ∑ [a 0 + a 1 x i + a 2 x i2 − y i ]x i2 =0. i =0
Раскрыв скобки и проведя простейшие преобразования, получим систему из трех линейных уравнений относительно трех неизвестных a0 , a1, a2: n n n 2 + + + = a (n 1) a x a x yi ∑ 1∑ i 2∑ i 0 i =0 i =0 i =0 n n n n 2 3 (5) + + = a x a x a x x i yi . 0∑ i ∑ 1∑ i 2∑ i = = = = i 0 i 0 i 0 i 0 n n n n a 3 4 2 + + = x a x a x x i2 y i ∑ 1∑ i 2∑ i i 0∑ i =0 i =0 i =0 i =0 Решая СЛАУ (5) найдем коэффициенты a0 , a1, a2 аппроксимирующей функции (4). Образец. Пусть функция у=f(x) задана таблично:
i =0 4
i =0 4 i =0 4
i =0 4 i =0 4
∑ x i y i = 29.00, i =0
4
∑x i =0
2 i
y i = 90.21.
В результате система (5) примет вид 5a 0 + 11.25a 1 + 30.94a 2 = 11.35, 11.25a 0 + 30.94a 1 + 94.92a 2 = 29.00, 30.94a + 94.92a + 309.76a = 90.21. 0 1 2
(6)
Решив СЛАУ (6), найдем, что a0=5.54 , a1=-4.73, a2=1.19. Таким образом, функция, аппроксимирующая наилучшим образом в среднеквадратичном смысле, такова ϕ(х)=5.54-4.73х+1.19х2 .
–9–
– 10 –
Проведем оценку относительной погрешности аппроксимации в заданных точках (в процентах) по формуле ∆yi= |δi/yi|100% = | [ϕ(хi)-yi]/yi |100%. (7) Результаты оценки приведены в таблице 1. Таблица 1 хi
yi
ϕ(хi)
δi
0.75 1.50 2.25 3.00 3.75
2.50 1.20 1.12 2.25 4.28
2.66 1.12 0.92 2.06 4.54
0.16 -0.08 -0.20 -0.19 0.26
∆yi , (%) 6.4 6.7 17.9 8.4 6.1
2.2. Практические рекомендации При решении практических задач аппроксимации следует придерживаться следующих правил: 1. Для выбора степени многочлена (1) можно начать с многочлена 1-й степени ϕ(х, a0 , a1)= a0х + a1. Определив коэффициенты a0 , a1 методом наименьших квадратов, вычисляют максимальную по модулю величину относительной погрешности ∆yi|m по формуле (7). Если она не превышает заданную точность ε, то за многочлен аппроксимации принимается ϕ(х)= a0х + a1. В противном случае увеличивается степень m многочлена на единицу, и расчет повторяется и т.д. 2. По таблично заданной функции строится график этой функции, что дает первичное представление о степени m многочлена (1). Затем производится уточнение степени аппроксимирующего многочлена методом наименьших квадратов.
2. 3. Задания для решения
Упражнения. Методом наименьших квадратов аппроксимировать линейным и квадратичным многочленами следующие табличные функции и определить максимальную по модулю погрешность аппроксимации: 1.
2.
3.
4.
хi yi
0 2.8
1 6.1
2 10.9
3 4 18.1 27.3
5 38
Ответ: ϕ1(х)=7.0514х – 0.4285; max(∆yi|m=1)=115.3% . ϕ2(х)=0.9743х2 + 2.18х + 2.82; max(∆yi|m=2)=2.1% . хi yi
0 4.2
1 8.8
2 16.3
3 4 24.6 36.5
5 48.4
хi yi
0 1.9
1 5.2
2 9.8
3 17.3
5 37.5
хi yi
0 1.1
1 3.9
2 9.2
3 4 16.8 25.3
5 35.7
хi yi
0 3.2
1 7.8
2 15.3
3 4 23.6 35.5
5 47.4
4 25.7
5.
6. хi 0 yi 1.1
1 4.9
2 11.2
3 4 18.8 29.3
5 40.7
– 11 –
– 12 –
7.
хi 0 yi 1.1
1 5.9
2 13.2
3 4 21.8 33.4
5 45.4
Определение. Критерий близости функций при равномерном приближении определяется величиной абсолютного отклонения ∆= max |ϕ(х) - f(x)| аппроксимирующего многоa ≤ x ≤b
члена ϕ(х) от функции f(x).
8.
хi 0 yi 2.1
1 6.9
2 13.7
3 4 23.4 33.6
5 47.5
Таким образом, равномерная аппроксимация f(x) многочленом ϕ(х) с точностью ε означает, что ∆< ε. В этом случае гарантированно выполняется max |ϕ(х) - f(x)|< ε при люa ≤ x ≤b
9.
хi 0 yi 3.1
1 5.8
2 11.2
3 4 17.7 27.4
5 37.5
бых xє[a, b]. Возможность построения многочлена ϕ(х), равномерно приближающего функцию f(x), определяется теоремой Вейерштрасса.
хi 0 yi 4.7
1 9.8
2 19.3
3 4 27.6 38.5
5 54.4
Теорема Вейерштрасса. Если функция f(x) непрерывна на отрезке [a, b], то для любого ε>0 существует многочлен ϕ(х), степень которого зависит от ε, абсолютное отклонение которого от функции f(x) на отрезке [a, b] меньше ε.
10.
3. Равномерное приближение Как следует из предыдущего §2, метод наименьших квадратов позволяет для функции f(x), заданной таблично, найти близкий в «среднем» многочлен ϕ(х). Однако значения функций f(x) и аппроксимирующего многочлена ϕ(х) в некоторых точках могут сильно различаться между собой. В то же время в некоторых задачах, как практических, так и теоретических, требуется, чтобы на всем отрезке [a, b], на котором задана функция f(x), отклонение аппроксимирующего многочлена ϕ(х) от заданной функции было по абсолютной величине меньше, чем заданная точность ε>0, т.е. выполнялось условие |ϕ(х) - f(x)|< ε, xє[a, b]. (8) При выполнении условия (8) говорят, что ϕ(х) равномерно аппроксимирует функцию f(x) на отрезке [a, b].
Из теоремы Вейерштрасса следует, что при заданной точности аппроксимации ε можно найти соответствующий многочлен степени m, равномерно приближающий заданную функцию f(x). Возможен и другой подход, при котором степень аппроксимирующего полинома m фиксирован и требуется подобрать такой многочлен степени m, чтобы на заданном на отрезке [a, b] величина абсолютного отклонения ∆ была минимальна, то есть ∆= ∆min . (9) Такой многочлен ϕ(х) называется многочленом наилучшего равномерного приближения. Выполнение (9) осуществляется за счет подбора коэффициентов a0 , a1 , …, am многочлена (1). Можно показать, что для непрерывной и замкнутой на ограниченном множестве функций f(x) такой многочлен ϕ(х) существует и является единственным [4].
– 14 –
– 13 – Формулу (9) можно записать в виде ∆= min ( max |ϕ(х) - f(x)|). ϕ (x)
a ≤ x ≤b
Задачи такого типа называются минимаксными. 3.1. Вычисление функций разложением в ряды Тейлора Для вычисления элементарных функций, таких как sinx, cosx, tgx, lnx и т.д., на компьютере можно воспользоваться рядом Тейлора, который на отрезке [a, b] имеет вид f(x)=f(a)+
(n) f (a) f '' (a) f ' (a) (x − a)n + R n , (10) (x − a)2 + ... + (x − a) + n! 2! 1!
где х=а – базовая точка, относительно которой ищется разложение. При а=0 выражение (10) называется рядом Маклорена. Rn – остаточный член, определяющий погрешность разложения (10) при ограничении (n+1) членом в разложении и имеет вид n +1 b−a max R n ≤ max f (n +1) . (11) a≤x≤b (n + 1)! a ≤ x ≤ b Зная значения функции f(x) и ее производных лишь в одной базовой точке х=а , с помощью ряда (10) можно вычислить значение этой функции на всем отрезке [a, b], на котором сходится этот ряд. Однако ряд Тейлора (10) обладает следующим основным недостатком. Позволяя вычислить с очень высокой точностью значение f(x) вблизи базовой точки, в остальной части интервала точность будет гораздо меньше и для увеличения точности придется брать в ряде (10) очень много членов. Поэтому, на практике, вместо (10) используются более эффективные разложения, в частности, многочлены Чебышева [7]. В этом случае погрешность распределяется достаточно равномерно на всем отрезке [a, b], где вычисляется функция f(x).
3.2. Многочлены Чебышева Многочлены Чебышева Tn(x) степени n выражаются формулой n n 1 Tn(x)= x + x 2 − 1 + x − x 2 − 1 , (12) 2 (-1≤х≤1, n=0, 1, 2, …). Проведя, соответствующие вычисления с (12), можно получить T0(x)=1, T1(x)=х, T2(x)=2х2-1, T3(x)=4х3-3х, (13) T4(x)=8х4-8х2+1, T5(x)=16х5-20х3+5х,… Что очень важно, многочлены Чебышева любой степени вычисляются с помощью рекуррентного соотношения Tn+1(x)=2хTn(x) – Tn-1(x), (n=1, 2, 3, …), при этом коэффициент старшего члена выражается формулой аn=2n-1. Другим важным свойством многочленов Чебышева является то, что они могут выражаться через элементарные тригонометрические функции Tn(x)=cos(n·arccosx), (n=0, 1, 2, …). (14) Это означает, что разложение функции f(x) по многочленам Tn(x) является другой интерпретацией разложения четной функции в ряд по косинусам, что позволяет переносить многие свойства рядов Фурье в область степенных рядов. С помощью (14) можно получить выражения (12) и (13). Корни многочлена Чебышева на отрезке [–1, 1] вычисляются по формуле 2k − 1 xk=cos π , (k=0, 1, 2, …,n). 2n При этом корни расположены неравномерно на отрезке [-1, 1], сгущаясь к его концам. Точки экстремума многочленов Tn(x) вычисляются по формуле kπ xk=cos , (k=1, 2, …,n-1), n
(
) (
)
– 15 –
– 16 –
при этом в точках максимума Tn(x)=1, а в точках минимума Tn(x)= –1. Это еще одно важное свойство, означающее, что всегда выполняется условие |Tn(x)|≤1 при любых n и x, что удобно для проведения различных оценок погрешностей при использовании многочленов Чебышева. Рассмотрим многочлен Чебышева, полученный делением на коэффициент при старшем члене (при xn) аn=2n-1 1 T n ( x) = n -1 Tn(x). 2 Если наряду с многочленом T n ( x) рассмотреть любые другие многочлены Pn(x) степени n , у которых коэффициент при старшем члене равен единице (как и у T n ( x) ), тогда
ошибку, допуская большое среднеквадратичное отклонение. В заключение, приведем формулы для различных выражений степеней х с помощью многочленов Чебышева, полученные из формулы (13), которые понадобятся при решении упражнений. Они таковы
можно показать, что у многочлена T n ( x) максимальное отклонение на отрезке [–1, 1] будет наименьшим по сравнению с любым другим многочленом Pn(x) [7]. Это означает, что 1 (15) max Pn ( x) ≥ max T n ( x) = n −1 . -1≤ x ≤1 -1≤ x ≤1 2 Поэтому говорят, что многочлены Чебышева T n ( x) являются наименее уклоняющимися на отрезке [-1, 1]. Выражение (15) называется принципом минимакса. Это означает, что для многочлена T n ( x) наибольшее значение на отрезке [-1, 1] будет наименьшим по сравнению с наибольшими значениями любых других многочленов Pn(x). Отметим основную разницу между среднеквадратичным и равномерным (чебышевским) приближениями. Среднеквадратичное приближение уменьшает среднюю квадратичную ошибку, допуская большие ошибки в отдельных точках интервала. Чебышевское приближение уменьшает наибольшую
1= T0, х= T1, х2=( T0+T1)/2, х3=( 3T1+T3)/4, х4=(3T0+4T2+T4)/8, х5=(10T1+5T3+T5)/16, …
(16)
3.3. Экономизация степенных разложений Одно из важных приложений многочленов Чебышева – их использование для эффективного вычисления степенных рядов, основанное на свойстве наилучшей сходимости этих многочленов по сравнению с любыми другими многочленами. Суть заключается в следующем. Одна и та же функция f(x) может быть разложена в различные степенные ряды в зависимости от способа их построения. Эти ряды описывают одну и ту же функцию, но обладают различной скоростью сходимости. Теоретически эти разложения равнозначны, так как в пределе будет получена одна и та же функция. Но с практической стороны, время вычисления функции на компьютере с одинаковой точностью с помощью этих рядов может отличаться в десятки и сотни раз. Например, разложение функции f(x) в конечный ряд Тейлора (17) f(x)=b0+b1x+b2x2+…+bmxm , как правило, имеет плохую сходимость почти всюду кроме окрестности базовой точки. Напротив, разложения в ряд по многочленам Чебышева (18) f(x)=с0+с1Т1(х)+с2 Т2(х)+…+cm Тm(х) имеют наилучшую сходимость. Это означает, что погрешность (18), при одинаковых членах в рядах (17) и (18), будет наименьшей и равномерно распределенной на всем интервале.
– 17 –
– 18 –
Это дает возможность получить большую точность даже с малым числом членов ряда.
Из (22) и (23) следует, что для обеспечения требуемой точности ε ≈ 1/5 при вычислении функции y=ln(1+x) с использованием разложения в ряд Тейлора требуется степень многочлена в два раза больше, чем при использовании ряда свернутого с помощью многочленов Чебышева. Результаты вычислений по (22) и (23) приведены в таблице 2. Таблица 2
3.4. Пример применения Образец. Получить наиболее эффективное степенное разложение для функции y=ln(1+x) на отрезке [0, 1] при заданной точности вычисления ε ≈ 1/5. Решение. Ряд Маклорена для этой функции имеет вид (19) y=ln(1+x)≈x-x2/2+x3/3-x4/4+x5/5+R6 , где остаточный член R6 оценивается формулой (11). Так как ряд (19) знакопеременный, то погрешность замены бесконечного ряда конечным по модулю меньше первого отброшенного члена (20) | R6|< x6/6≤1/6 (при 0≤х≤1). к Заменив в (19) члены х с помощью формул (16), получим разложение y=ln(1+x)≈Т1–(T0+T1)/4+(3T1+T3)/12– –(3T0+4T2+T4)/32+(10T1+5T3+T5)/80= (21) =–11T0(x)/32+11T1(x)/8 –3T2(x)/8+ +7T3(x)/48–T4(x)/32+T5(x)/80. Согласно (20) отбрасывание члена x5/5 в (19) даст ошибку