Публикация в Пинск

advertisement
УДК 37:004
ОБ ОДНОМ ПОДХОДЕ АППРОКСИМАЦИИ ФУНКЦИИ ОТ ДВУХ ПЕРЕМЕННЫХ
А.П. Худяков, 1 курс
Научный руководитель – В.М. Мадорский, к.ф.-м.н., доцент
Брестский государственный университет имени А.С. Пушкина
Модификация эрмитовской аппроксимации легко распространяется на случай
восстановления функции от двух переменных. Пусть задана прямоугольная область
D  x, y : a  x  b; c  y  d . В этой области определена некоторая неизвестная функция
f ( x, y ). Построим в D сетку Dh  xk , yl : a  x0  x1  ...  xn  b; c  y0  y1  ...  ym  d .
Пусть на сетке заданы значения функции f ( x, y ), которые обозначим через f k ,l  f ( xk , yl ).
Сплайн g ( x, y ), приближающий функцию f ( x, y ) будем искать в виде:
p
q
g p ,q ( x, y )  g kp,,lq ( x, y )   aik, ,jl ( x  xk 1 ) i ( y  yl 1 ) j ;
(1)
i 0 j 0
Т.е.
на
каждом
xk 1  x  xk ;
прямоугольнике
yl 1  y  yl .
xk 1  x  xk ; yl 1  y  yl
функция
f ( x, y )
g ( x, y) степени p  q. Таким образом,
для каждого полинома необходимо определить ( p  1)( q  1) коэффициентов. А для этого
нужно построить ( p  1)( q  1) соотношений.
Потребуем, чтобы выполнялось следующее условие:
(2)
g ( xk , yl )  f k ,l ; k  0, n; l  0, m.
Тем самым получим четыре соотношения для каждого полинома, используя угловые
точки прямоугольной области:
(3)
g kp,,lq ( xs , yt )  f s ,t ; s  k  1, k ; t  l  1, l; k  1, n; l  1, m.
Используя (1) получим:
g kp,,lq ( xk 1 , yl 1 )  a0k,,0l  f k 1,l 1 ;
восстанавливается двумерным полиномом
k ,l
p ,q
q
g kp ,,lq ( xk 1 , yl )   a0k,,lj ( yl  yl 1 ) j  f k 1,l ;
j 0
p
g kp ,,lq ( xk , yl 1 )   aik, 0,l ( xk  xk 1 ) i  f k ,l 1 ;
k  1, n; l  1, m.
(4)
i 0
p
q
g kp,,lq ( xk , yl )   aik, ,jl ( xk  xk 1 ) i ( yl  yl 1 ) j  f k ,l ;
i 0 j 0
Для полной определенности задачи необходимо построить еще ( p  1)( q  1)  4
соотношений для каждого полинома. Данные соотношения можно получить, если известны
значения производных от функции f ( x, y ) в узлах сетки. Однако в данной постановке задачи
эти значения неизвестны, но их можно приближенно вычислить, используя метод
неопределенных коэффициентов. Опишем процедуру вычисления приближенных значений
смешанных производных от функции f ( x, y ).
Пусть M – максимальный порядок вычисляемых смешанных производных. Вычислим
производные
f k(,sl ,t )  f k(,sl ,t ) ( x, y); s  0, M ; t  0, M  s; k  0, n; l  0, m.
(5)
Используя значения функции f ( x, y ), заданные на слоях сетки y  y j , ( j  0, m), с
помощью метода неопределенных коэффициентов вычислим чистые производные по x:
f k(,sl ,0)  f k(,sl ,0) ( x, y); s  1, M ; k  0, n; l  0, m.
(6)
Аналогично,
используя
значения
функции
f ( x, y ),
заданные
на
слоях
сетки
x  xi , (i  0, n), вычислим чистые производные по y:
(7)
f k(,0l ,t )  f k(,0l ,t ) ( x, y); t  1, M ; k  0, n; l  0, m.
Далее, используя приближенные значения первой производной по y (7) от функции
f ( x, y ), заданные на слоях сетки y  y j , ( j  0, m), с помощью метода неопределенных
коэффициентов вычислим производные:
(8)
f k(,sl ,1)  f k(,sl ,1) ( x, y); s  1, M  1; k  0, n; l  0, m.
Аналогично, используя приближенные значения первой производной по x (6) от функции
f ( x, y ), заданные на слоях сетки x  xi , (i  0, n), вычислим производные:
f k(,1l,t )  f k(,1l,t ) ( x, y); t  2, M  1; k  0, n; l  0, m.
Подобным образом вычисляются все остальные производные.
Вычислим производную порядка (s,t) от полинома (1):
p q
i!
j!
g (ps,,qt ) ( x, y )  g kp,,lq( s ,t ) ( x, y )  
aik, ,jl ( x  xk 1 ) i  s ( y  yl 1 ) j t ;
(
i

s
)!
(
j

t
)!
i  s j t
(9)
(10)
xk 1  x  xk ; yl 1  y  yl .
Потребуем, чтобы в угловых точках каждого частичного прямоугольника
[ xk 1 , xk ]  [ yl 1 , yl ] производные полинома (10) равнялись вычисленным ранее
приближенным значениям производных от функции f ( x, y ) :
g kp,,lq( s ,t ) ( xk 1 , yl 1 )  s!t!a sk,,tl  f k(s1,t,l)1 ;
q
s! j! k ,l
g kp ,,lq( s ,t ) ( xk 1 , yl )  
a s , j ( yl  yl 1 ) j  f k(s1,t,l) ;
(
j

t
)!
j t
p
t!i! k ,l
(11)
g kp,,lq( s ,t ) ( xk , yl 1 )  
ai ,t ( xk  x k 1 ) i  f k(,sl,t1) ;
(
i

s
)!
is
p q
i!
j!
g kp,,lq( s ,t ) ( xk , yl )  
aik, ,jl ( x k  xk 1 ) i ( yl  yl 1 ) j  f k(,sl ,t ) ;
(
i

s
)!
(
j

t
)!
i  s j t
r  1, M ; s  r ,0 ; t  r  s; k  1, n; l  1, m.
Для полной определенности задачи необходимо построить ( p  1)( q  1) соотношений.
Таким образом, необходимо, чтобы выполнялось условие:
2( M  2)( M  1)  ( p  1)( q  1),
(12)
где M – высший порядок вычисляемых смешанных производных, (p,q) – степень полинома
(1). Также для того, чтобы задача не стала переопределенной, необходимо ограничить сверху
число уравнений, отбросив лишние уравнения. Объединяя (4) и (11), получим nm СЛАУ
порядка ( p  1)( q  1) :

s!t!a sk,,tl  f k(s1,t,l)1 ;

q
s! j! k ,l

a s , j ( yl  yl 1 ) j  f k(s1,t,l) ;

(
j

t
)!

j t
p

t!i! k ,l

ai ,t ( xk  xk 1 ) i  f k(,sl,t1) ;


i  s (i  s )!
p q

i!
j!
 
aik, ,jl ( xk  xk 1 ) i ( yl  yl 1 ) j  f k(,sl ,t ) ;
 i  s j t (i  s )! ( j  t )!
 r  0, M | 2 M ( M  1)  ( p  1)( q  1)  2( M  1)( M  2);

s  r | 2r (r  1)  4(t  1)  ( p  1)( q  1)  2r (r  1)  4(t  1),0;

t  r  s; k  1, n; l  1, m.

(13)
Решив системы (13), например, методом Гаусса [], получим искомые коэффициенты
полинома (1). Отметим, что в случае равномерной сетки по обеим осям матрица для системы
(13) одинакова для всех прямоугольников сетки. Это позволяет один раз построить LUразложение для матрицы системы и пользоваться этим разложением при нахождении всех
коэффициентов […].
Приведем сравнительную характеристику алгоритмов аппроксимации: бикубического
сплайна и модификации эрмитовской аппроксимации функций от двух переменных. В
качестве тестовой была выбрана следующая функция:
(14)
f ( x, y)  sin(( x  y) 2 )  arctg ( xy)
Оценка погрешности осуществлялась по формуле
b d
1
R
( f ( x, y)  g p ,q ( x, y)) 2 dxdy .


(b  a)( d  c) a c
(15)
При восстановлении функции на равномерной сетке формула имеет вид:
b d
1
( f ( x, y)  g p ,q ( x, y)) 2 dxdy 


(b  a)( d  c) a c
1 n m
( f ( xi , y j )  g p ,q ( xi , y j )) 2 ,

nm i 1 j 1
(16)
где ( xi , y j ) – середина частичного прямоугольника [ xi 1 , xi ]  [ y j 1 , y j ].
В таблице 1 приводятся результаты численного эксперимента восстановления функции
(14) на прямоугольной области [0; 3.14]  [0; 3.14] указанными выше алгоритмами.
Таблица 1 Точность восстановления функции от двух переменных (14)
Число точек разбиения прямоугольной области
Алгоритм
восстановления
50×50
100×100
250×250
500×500
Бикубический
сплайн
Модификация
эрмитовской
аппроксимации
0.03839356
0.00980709
0.00157862
0.00039499
6.384570E-6
1.037862E-7
1.932895E-9
3.60386E-10
Из таблицы 1 видно, что восстановление при помощи модификации эрмитовской
аппроксимации намного точнее, чем при использовании бикубических сплайнов. Однако
восстановление первым алгоритмом требует значительных временных затрат, а также
большого объема памяти для хранения коэффициентов. В то же время восстановление
бикубическими сплайнами осуществляется очень быстро и не требует много памяти.
Поэтому при решении задач следует выбирать между точностью и скоростью.
Список использованных источников
1 Калиткин, Н.Н. Численные методы. М: Наука - 1978. 510 с.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Список использованных источников
1 Бахвалов, Н.С. Жидков Н.П. Кобельков Г.М. Численные методы.
Лаборатория базовых знаний. 2003 . 632 с.
2 Березин, Н.С.; Жидков, Н.П. Методы вычислений в 2 томах. М.:
физико-математической литературы; Издание 2-е. 1962. 680 с.
3 Бобков В.В., Крылов В.И., Монастырный П.И. Начала теории
вычислительных методов. Дифференциальные уравнения. – Мн.: Наука и
техника, 1982. – 286 с.
4 Богачев К.Ю. Практикум на ЭВМ. Методы решения линейных систем и
нахождения собственных значений. М.: МГУ им. М.В. Ломоносова. 1998. 137 с.
5 Ваннер Г., Нерсетт С., Хайрер Э. Решение обыкновенных
дифференциальных уравнений. Нежесткие задачи: Пер. с англ. – М.: Мир, 1990.
– 512 с.
6 Ваннер Г., Хайрер Э. Решение обыкновенных дифференциальных
уравнений. Жесткие и дифференциально-алгебраические задачи. Пер. с англ. –
М.: Мир, 1999. – 685 с.
7 Жанлав Т., Пузынин И.В. О комбинации метода установления и метода
Ньютона для решения нелинейных дифференциальных задач // Ж. вычисл.
матем. и матем. физ. – 1994. – Т.34, № 2. – С. 175 – 184.
8 Икрамов Х.Д. Численное решение матричных уравнений. Под
редакцией Д.К. Фаддеева. – М: Наука. Главная редакция физикоматематической литературы, 1984. – 192 с.
9 Калиткин, Н.Н. Численные методы. М: Наука - 1978. 510 с.
10 Кацман Ю. Я. Прикладная математика. Численные методы. Учебное
пособие. – Томск: Изд. ТПУ, 2000. – 68 с.
11 Копченова Н.В. Вычислительная математика в примерах и задачах. М.:
Лань. 2008. 367 с.
12 Мадорский, В.М. Квазиньютоновские процессы для решения
уравнений. Брест УО БрГУ им. А.С. Пушкина. 2005. 186 с.
13 На Ц. Вычислительные методы решения прикладных граничных задач:
Пер. с англ. – М.: Мир, 1982 – 296 с.
14 Ортега Дж., Пул. У. Введение в численные методы решения
дифференциальных уравнений / Пер. с англ.; Под ред. А.А. Абрамова. – М.:
Наука. Гл. ред. физ.-мат. лит., 1986. – 288 с.
15 Самарский А.А. Введение в численные методы. Лань. 2005. 288 с.
Download