книги / Численные методы. Ч. 5
.pdfФ/-1/2 { X i-\ ) —Ф/-1/2 ( *i-l/2 ) “ Ф/-1/2 ( * / ) ” |
=0, |
и т.д. Система функций (1.10) позволяет повышать точность аппрок симации функций не за счет перестройки всей системы пробных функций, а добавлением новой функции (более высокого порядка) к уже применяемой системе аппроксимирующих функций.
1.4.1. Кусочно-непрерывные полиномы 1-й степени
Задание. Аппроксимировать методом Гапёркина на отрезке [0, п] функцию cos х с использованием иерархической системы кусочно непрерывных полиномов 1-й степени. Сформировать систему линей ных алгебраических уравнений относительно коэффициентов разло жения этой функции по заданнной системе функций; разработать вычислительную программу для определения коэффициентов разложе ния для 2, 4, 8, 64 сегментов постоянной длины; для указанной последовательности определить погрешности аппроксимации; ис следовать зависимость погрешности аппроксимации от длины И сегментов; исследовать сходимость процесса аппроксимации; оценить быстродействие вычислительной программы.
Разрешающие соотношения
Первоначально рассматривается процесс аппроксимации функ ции cos х с использованием двух полиномов первой степени:
( 1.11)
системы1 (1.10). Линейные кусочно-непрерывные функции (1.11) представлены на рис. 1.4; процедура формирования системы уравне ний для аппроксимации функции cos* линейными кусочно-непре рывными функциями описана в подразд. 1.2. Матрица коэффициен тов и правая часть системы линейных алгебраических уравнений от
1Общее число пробных функций п = т+ 1.
носительно |
коэффициентов |
an i =0,m разложения по этим двум |
||||
функциям имеют вид |
|
|
|
|||
'А/З |
h/6 |
0 |
0 |
' |
(l-co s h)/h |
|
- ( 1 - 2 COSA + COS2A)/A |
||||||
h/6 |
2И/3 |
h/6 |
0 |
|
||
0 |
h/6 |
2h/3 |
0 |
|
5 *(2COS2/J - COSA -COS3A)/A , |
|
0 |
0 |
0 |
h/3 |
|
- [ I + COS((/W-1)A )]/A |
Результаты расчетов
Результаты аппроксимации функции cos* системой кусочно непрерывных полиномов 1-й степени приведена на рис. 1.6-1.8. В табл. 1.4 приведены значения погрешности (1.1) аппроксимации функции cos х при различных значениях числа слагаемых в разложении (1.2). Эти же данные представлены в графическом виде на рис. 1.7.
Выводы
1.Процедура метода Галёркина использована для аппроксима ции заданной функции C O S J C иерархической системой кусочно-ли нейных функций. Сформирована система линейных алгебраических уравнений для определения коэффициентов разложения функции cos х по указанной системе функций.
2.Разработана вычислительная программа определения коэффи циентов разложения заданной функции по системе кусочно-линей ных функций.
3.С использованием разработанной программы определены ко эффициенты и построены разложения заданной функции cos х по ие рархической системе кусочно-линейных полиномов для 2, 4, 8, 16, 32
и64 сегментов постоянной длины.
4.Для указанной последовательности разложений определены погрешности аппроксимации заданной функции (см. табл. 1.4) со ответствующими линейными комбинациями кусочно-линейных функций.
5.Показано, что с уменьшением длин сегментов погрешность аппроксимации уменьшается (см. рис. 1.7). Установлено, что по
грешность пропорциональна второй степени длины сегментов (шага интегрирования).
6. Выполненное исследование показывает, что процесс аппрок симации функции cos х линейной комбинацией кусочно-линейных функций сходится равномерно на заданном отрезке [0, к].
7. На компьютере с процессором Intel® Pentium® 4 (тактовая час тота 2,2 ГГц, объем оперативной памяти 512 Мбайт) для аппрокси мации функции cos х на разностной сетке, содержащей 64 сегмента, с использованием кусочно-непрерывных полиномов первой степени требуется 2,5-10-3 с.
1.4.2. Кусочно-непрерывные полиномы 2-й степени
Задание. Аппроксимировать методом Галёркина на отрезке [О, к] функцию cos х с использованием иерархической системы ку сочно-непрерывных полиномов 2-й степени. Сформировать систему линейных алгебраических уравнений относительно коэффициентов разложения этой функции по заданнной системе функций; разрабо тать вычислительную программу для определения коэффициентов разложенш для 2, 4, 8, ..., 64 сегментов постоянной длины; для ука занной последовательности определить погрешности аппроксима ции; исследовать зависимость погрешности аппроксимации от дли ны h сегментов; исследовать сходимость процесса аппроксимации; оценить быстродействие вычислительной программы.
Разрешающие соотношения
Для использования на каждом сегменте кусочно-квадратичной аппроксимации заданной зависимости cos х число пробных функций по сравнению с (1.11) увеличивается до трёх за счет добавления функции1<р,_|/2(х) (рис. 1.14):
Фм (*) = (*/ - xVh >
Ф/-1/2М = “4 (* - *м )(* -*,)Л 2> |
(1'12) |
Ф,(*) = (* —
1Общее число пробных функций п = 2т + 1.
|
|
О |
я/4 я/2 Зя/4 |
л |
Рис. 1.14. Кусочно-непрерывные полиномы второй степени |
|
|||
|
на сегменте [0, я] |
|
|
|
При формировании новой системы уравнений (1.3) ранее вычис- |
||||
|
п |
л |
|
|
ленные интегралы |
|
и Jcp^^cosxdfr сохраняют |
свои |
|
значения: |
|
|
|
|
71 |
h |
71 |
1 -co sx1. |
|
{<Ро (*)<& = -> |
|ф 0 cos xdx = |
|
|
)ф м |
(* )ф , |
0 |
]ф U x)dx = ^ , |
/ ф м М ф , (* )< & = |
||
о |
|
о |
|
о |
|
|
|
"f |
J |
cosx |
. - 2 c o s x +cosx |
... . |
------- - |
|
<p,.cos*<& = |
-------- ^ |
------ — !---------- |
i = l,m - l; |
||
|
о |
|
|
h |
|
|
O N I ^
]ф «(*)Л |
= 4 , |
JcpCTc o s ^ = - 1 + COSX"1-' . |
|
0 |
^ |
0 |
" |
Дополнительно вычисляются интегралы
л |
4 |
‘ |
)2 (x -x,)dx = |
/ф -1/2(*)ф ,(x)dx = - - т |
J |
Xi - 1
4_ (д:-дг,.-,)4 |
h ( x - x l4)3 |
A |
. |
-— |
|
А3 |
4 |
3 |
=- , |
i = l,т; |
|
|
|
|
|||
}фы/2(*)фД*) ^ |
= 7Т J (* “ хм )1{x ~ x,)dx = |
||||
_4 |
|
=— , |
/ = 0,от-1; |
||
Л3 |
|
||||
|
3 |
|
|
||
\<$1п [x)dx =^ |
|(х-д:,..| )2(д:-х1.)2Л |
= |
|||
16 (* - * ,)5 |
[ h { x - Xi)' ( А2(* -* ,)3 |
|
8А |
. — |
|
А4 |
|
|
|
= — , / = 1,/и; |
|
|
|
|
15 |
|
|
^Ф/_1/2cos xdx = — |
| (JC- JC/_,)(JC- |
JC/) COSJC^ C= |
_4 |^2xcosx+(x2 -2 ) sinjc-(x/ +x/_1)(cosx+xsinx)+xJxI. , sin JC Л2
4 , |
ч 8 / • |
i = l,m. |
-(c o sx M + c o sx ,)-^ r (sinx,_1-sinx,.), |
Подстановка полученных значений в выражение (1.3) приводит к системе 2/w + l линейного алгебраического уравнения относитель но коэффициентов aj9i = 0,m разложения (1.2). Матрица коэффици
ентов и правая часть этой системы уравнений принимают вид
Га/ з |
А/3 |
А/6 |
0 |
0 |
0 |
1 |
А/3 |
8А/15 |
А/3 |
0 |
0 |
0 |
|
А/6 |
А/3 |
2А/3 |
А/3 |
А/6 |
0 |
|
0 |
0 |
А/3 |
8А/15 |
А/3 |
0 |
|
0 |
0 |
А/6 |
А/3 |
2А/3 |
0 |
|
0 |
0 |
0 |
0 |
0 |
А/3. |
|
f i b cosA)/A |
|
|
|
|
ч |
|
|
|
|
|
|
-4(1 + cos h)/h + 8sin/?//?2___________|
-( l-2cosh + cos2h)/h_______________
«-4(cosA + cos2A)/A-8(sinA-sin2A)/A^| >.
-(cosA -2cos2A + cos3A)/A
-[^l + cos((/w-l)A)Jy/A
В приведённой системе уравнений выделены столбцы и строки, добавление которых, по сравнению с системой уравнений, приведён ной в подразд. 1.2, обусловлено включением функции Фм/2(^) в раз
ложение (1.2).
Алгоритм решения
Текст Программы 2.4 на языке Си описывает вычислительный алгоритм, реализующий процедуру аппроксимации функции cosx с использованием иерархической системы кусочно-непрерывных по линомов 2-й степени.
Программа 1.4
//Аппроксимация функции. Система иерархических пробных функций
//Полиномы второй степени
// |
Ne |
число |
сегментов |
/ / |
с |
массив |
для коэффициентов |
//F массив правых частей
//х массив координат узлов
#define Ne 64
void main(void)
{double xO, xl, h, C[2*Ne+l] [2*Ne+l] , F[2*Ne+l], x[Ne+l]; int i , к ;
x 0 = 0 .0; |
// |
начальная |
точка |
xl=M_PI; |
// |
конечная точка |
|
h=(xl-xO)/Ne; |
// |
длина шага |
сегмента |
for(k=0; k<Ne+l; k++) x[k]=xO+h*k; for(k=0; k<2*Ne+l; k++)
for(F[k]=0.0, i=0; i<2*Ne+l; i++) C[k][i]=0.0;
for(k=0; k<Ne; k++)
{if(k==0)
{C [2*k] [2*k] =h/3.0 ; F[2*k]=(1.0-cos(h))/h;
}
else
{C[2*k] [2*k] =2.0*h/3.0 ;
F[2*k] = - (cos((k-1)*h)-2.0*cos(k*h)+cos((k+l)*h))/h;
}
C[2*k][2*k+l]=C[2*k+l](2*k]=h/3.0; C [2*k] [2*k+2] =C [2*k+2] [2*k] =h/6.0 ; C [2*k+l] [2*k+l]=8.0*h/15.0;
C [2*k+l] [2*k+2]=C[2*k+2] [2*k+l] =h/3.0 ;
F [2*k+l] =-4.0* (cos (k*h) +cos ((k+l) *h) )/h-8.0* (sin (k*h) - sin((k+l)*h))/ (h*h);
}
C[2*Ne] [2*Ne] =h/3.0;
F[2*Ne]=-(1.0+cos((Ne-1)*h))/h;
// Решение |
системы линейных алгебраических уравнений |
G A US S(С, |
F, 2*Ne+l); |
}__________________________________________________________
Реализация алгоритма
Заданный отрезок разбивается на четыре сегмента равной длины
M = G , U G 2 U G 3U G 4!
где G, = [0,я/4], G2 = [я/4,я/2], G3 = [я/2,Зя/4] и G4 = [Зя/4,я]. Заданная функция fix) представляется разложением (1.2). Соот
ношения (1.3) принимают вид системы линейных алгебраических уравнений
лп
f<P*<PA= / ф* C O S xdx |
(1.13) |
|
i 0 |
0 |
|
относительно коэффициентов ai, i = 0,1/2,1,3/2,..., 4.
Подсчитываются дополнительные значения коэффициентов, от меченные в приведённой выше системе линейных алгебраических уравнений:
л |
^ |
|
|
|
л |
|
|
|
л л |
/фоф1/2^ = - |
= 0 .2 6 1 7 9 9 , |
/ ф о Ф з / 2 = ]фоФ5/2Л = |фоФ7/ 2 ^ = 0 ; |
|||||||
О |
^ |
|
|
|
0 |
|
|
|
0 0 |
)ф ,/2Фodx = \ = 0,261799, |
J(pf/2^ |
= ^ |
= 0,418879, |
||||||
|
|
|
|
/ф у2Ф .Л = ^ = 0 ,2 6 1 7 9 9 , |
|
||||
|
|
|
|
0 |
|
** |
|
|
|
л |
л |
|
|
л |
|
л |
л |
|
л |
|ф1/2Фз/2 ^ |
= ]ф1/2ф2<& = |
|ф |/2Ф5/2<& = |
]ф |/2Ф3<& = |
J(p1/2(p7/2a ft= |ф |/2ф4й& = 0 , |
|||||
0 |
0 |
|
|
0 |
|
0 |
0 |
|
о |
|
\ |
|
|
4 |
|
8 |
|
|
|
|
J ф1/2 cos |
= —— (1 + cos h) + — sin h = 0 ,4 7 6 3 2 3 ; |
|||||||
|
о |
|
|
h |
|
h |
|
|
|
n |
|
|
h |
|
|
n |
|
|
h |
|ф|Ф./2dx =- =0,261799, |
J<p,cp3/2<fr = - |
= 0,261799, |
|||||||
о |
|
|
Э |
|
|
0 |
|
|
3 |
|
|
|
|
л |
|
л |
|
|
|
|
|
|
|
JV]4^5/2^ —f*Plty7/2^ |
= ^ ’ |
|
|||
|
|
|
|
0 |
|
0 |
|
|
|
я |
|
я |
|
|
л |
|
|
, |
|
|ф 3/2ф0^ |
= |
|ф 3/2ф|/2Л |
= 0 , |
|фз/2ф) |
|
= — = 0 ,2 6 1 7 9 9 , |
|||
я |
|
|
|
|
|
л |
|
, |
|
|ф з /2 ^ = — |
= 0 ,4 1 8 8 7 9 , |
|ф 3/2ф2<& = — = 0 ,2 6 1 7 9 9 , |
|||||||
о |
|
|
|
|
|
о |
|
3 |
|
|
Я |
|
|
Л |
|
л |
|
л |
|
|
|ф 3/2ф5/ 2 ^ = |
|<р3/2ф3с & = |
|ф 3/2ф7/2Л |
= |
/ф 3/2ф4с*с = 0 , |
||||
|
о |
|
о |
о |
|
|
|
о |
|
\ |
|
|
4 |
|
|
8 |
|
sin 2А ) = 0 ,1 9 7 2 9 9 ; |
|
J Фз/ 2 cos *abr = - - ( c o s А + cos 2А ) — ^ - ( s in А - |
д |
|
|
Л |
|
Д |
^ |
|
^ г Ф у г ^ — ® ’ |
^ФгФз/2^^ = |
^ФгФ5 /2 ^ = Т |
= 0>261799, |
||||
О |
|
|
0 |
|
0 * |
^ |
|
|
|
|
Л |
|
|
|
|
|
|
|
^ФгФт/г^ = ® > |
|
|
||
|
|
|
о |
|
|
|
|
Я |
Л |
|
Л |
|
|
Л |
|
|ф 5/2Ф(А= |фь/2Ф1/2^= \%/2%^ =|ф 5/2Фз/2^ = 0 5 |
|||||||
0 |
I |
|
0 |
0 |
Л |
0 |
|
Л |
|
|
|
QI |
|
||
/ф5/2Фidx =- |
|
=0,261799, |
j<p\n dx = — = 0,418879, |
||||
о |
|
|
|
|
о |
^ |
|
л |
h |
|
|
|
л |
|
л |
{ф 5/2 Ф .А = - |
= 0 ,2 6 1 7 9 9 , |
|
|ф 5/2Фб/2^ = |
{ ф 5/ 2 Ф А = 0 . |
|||
О |
^ |
|
|
|
0 |
|
0 |
Л |
4 |
|
|
|
8 |
|
|
|ф 5/2 cos xdx = — |
(cos 2А +cos ЗА) — f(sin 2h - sin ЗА) = -0,197299; |
||||||
о |
A |
|
|
|
A |
|
|
Л |
Л |
|
|
Л |
|
Л |
Ц |
]*ФзФ1/2^ = |
]ф зФ з/2^ = ® ’ |
|ф зФ 5/2^ = |
]ф зФ7/2^ = “ = 0, 261 799 J |
||||
0 |
0 |
|
|
0 |
|
0 |
*■* |
Л |
|
|
Л |
ЛЛ |
|
Л |
Л |
/ф7/2Фо^= ]"ф7/2Ф1/2^= <[ф7/2Ф1^= /ф7/2Фз/2^ =^7/гФг^ = ]ф7/2Ф5/2^ =
0 |
0 |
0 |
0 |
0 |
0 |
л |
* |
|
л |
о[, |
|
{ф 7/г Ф з ^ = - |
= 0 ,2 6 1 7 9 9 , |
|
= — |
= 0 ,4 1 8 8 7 9 , |
|
о |
|
Л I |
о |
^ |
|
|
|
|
|
|
|ф 7/2ф4А = - = 0,261799,
О^
|
71 |
4 |
8 |
|
|
J(p1/2cos xdx = |
(cos ЗА -1) - |
sin ЗА = -0,476323; |
|
Л |
Л |
Л |
П |
h |
|ф 4ф ^ |
= /ф4фу2л = |ф4ф5/2л = 0, |
|ф 4ф7/2л |
= - = 0,261799. |
Значения коэффициентов системы линейных алгебраических уравнений для построения аппроксимации функции cos х иерархиче ской системой кусочно-квадратичными пробными функций и правая часть этой системы приведены в табл. 1.7.
ON |
Таблица 1.7 |
О |
Матрица коэффициентов и правая часть системы линейных алгебраических уравнений для построения аппроксимации функции cos х иерархической системой кусочно-непрерывных полиномов второй степени
0,261799 |
0,261799 |
0,130899 |
0,0 |
0,0 |
0,0 |
0,0 |
0,0 |
0,0 |
|
0,372923 |
0,261799 |
0,418879 |
0,261799 |
0,0 |
0,0 |
0,0 |
0,0 |
0,0 |
0,0 |
|
0,476323 |
0,130899 |
0,261799 |
0,523599 |
0,261799 |
0,130899 |
0,0 |
0,0 |
0,0 |
0,0 |
|
0,527393 |
0,0 |
0,0 |
0,261799 |
0,418879 |
0,261799 |
0,0 |
0,0 |
0,0 |
0,0 |
|
0,197299 |
0,0 |
0,0 |
0,130899 |
0,261799 |
0,523599 |
0,261799 |
0,130899 |
0,0 |
0,0 |
|
0,0 |
0,0 |
0,0 |
0,0 |
0,0 |
0,261799 |
0,418879 |
0,261799 |
0,0 |
0,0 |
- |
0,197299 |
0,0 |
0,0 |
0,0 |
0,0 |
0,130899 |
0,261799 |
0,523599 |
0,261799 |
0,130899 |
- |
0,527393 |
0,0 |
0,0 |
0,0 |
0,0 |
0,0 |
0,0 |
0,261799 |
0,418879 |
0,261799 |
- |
0,476323 |
0,0 |
0,0 |
0,0 |
0,0 |
0,0 |
0,0 |
0,130899 |
0,261799 |
0,261799 |
- |
0,372923 |