1 - BLVL.RU

advertisement
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
МИКОЛАЇВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
ІМЕНІ В.О.СУХОМЛИНСЬКОГО
МЕХАНІКО-МАТЕМАТИЧНИЙ ФАКУЛЬТЕТ
КАФЕДРА КОМП‘ЮТЕРНИХ СИСТЕМ І МЕРЕЖ
“ЗАТВЕРДЖУЮ”
Проректор з навчальної роботи
___________________________
“_____”_______________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 ) со значениями функции в фиксированном числе узлов.
Интерполяционный многочлен Лагранжа имеет общий вид:
Lx   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  xn1 
 y1
 ...  y n
xn  x0 xn  x1 ...xn  xn1 
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
Тогда полином Лагранжа будет иметь вид:
Lx   1,99
x  2x  3  0,88 x  1x  3  0,45 x  1x  2
1  21  3
2  12  3
3  13  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  xn1  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 iN0
 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 массивами коэффициента ai, bi, ci, 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 i1 xi 
4) Непрерывность 2 производной во внутренних узлах

S i xi   S i1 xi 
Всего 4n  1  2  4 n2 условий
Еще два условия можно получить положив гладкость на концах
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
ai; 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
AI , 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 m1

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 m1 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 xdx   f x j xdx
В силу ортогональности
b
  x xdx  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 
a2
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
Download