книги / Численные методы. Ч. 5
.pdfРезультаты расчётов
Решением этой системы уравнений являются коэффициенты:
а0=1,00249 а]/2=0,067545, а, =0,708864, а3/2= 0,027978, я2=0,0,
а5/2 = -0,027979 я3 = -0,708859, а7/2 =-0,067548, а4 = -1,002489
разложения cos JC по иерархической системе кусочно-непрерывных полиномов 2-й степени. В табл. 1.8 приведены значения погрешности (1.1) аппроксимации функции COSJC при различных значениях числа слагаемых в разложении (1.2). Эти же данные представлены в графическом виде на рис. 1.15.
Таблица 1.8 Погрешность 8т аппроксимации функции cos JC иерархической
системой кусочно-непрерывных полиномов при различном числе т сегментов
т |
h |
sm |
т |
h |
8m |
2 |
1,570796 |
0,274816-10'1 |
i6 |
0,196350 |
0,592882-10^* |
4 |
0,785398 |
0,324429-10'2 |
32 |
0,098175 |
0,725684-10'5 |
8 |
0,392699 |
0,454903-10'3 |
64 |
0,049087 |
0,933514-Ю-6 |
Рис. 1.15. Зависимость от длины сегментов погрешности аппроксимации функции cos х иерархической системой пробных функций 2-й степени
С использованием формулы (В.1) приближенно определяется по рядок погрешности аппроксимации функции cos* разложением (1.2). Для иерархической системы кусочно-непрерывных полиномов второй степени порядок погрешности аппроксимации оценивается значением
6= (1п0,274816-Ю-1-In 0,933514-Ю-6)/ /(In 1,570796 - In 0,049087) = 2,96908.
Это показывает, что погрешность аппроксимации методом Галёркина функции cosx иерархической системой кусочно-непре рывных полиномов 2-й степени погрешности можно приближенно оценить как величину, пропорциональную третьей степени длины h сегментов, то есть
В силу этого Ът—>0 при h —> 0 или т —> °°. Это позволяет ут верждать, что процесс аппроксимации функции cos х иерархической системой кусочно-непрерывных полиномов 2-й степени сходится равномерно на отрезке [0, л].
На рис. 1.16 представлена зависимость времени t выполнения расчетов от числа т сегментов разностной сетки.
Рис. 1.16. Зависимость времени t выполнения расчетов от числа т сегментов для иерархической системы кусочно-непрерывных функций 2-й степени
Выводы
1.Процедура метода Галёркина использована для аппроксима ции функции cos л* иерархической системой кусочно-непрерывных полиномов 2-й степени. Сформирована система линейных алгебраи ческих уравнений для определения коэффициентов разложения функции cos х по указанной системе функций.
2.Разработана вычислительная программа определения коэффи циентов разложения заданной функции по иерархической системе кусочно-непрерывных полиномов 2-й степени.
3.С использованием разработанной программы определены ко эффициенты и построены разложения функции COSJC по иерархиче ской системе кусочно-непрерывных полиномов 2-й степени для 2, 4, 8, 16, 32 и 64 сегментов постоянной длины.
4.Для указанной последовательности разложений определены по грешности аппроксимации заданной функции (см. табл. 1.8) с помощью иерархической системы кусочно-непрерывных полиномов 2-й степени.
5.Показано, что с уменьшением длин сегментов погрешность ап проксимации уменьшается (см. рис. 1.15). Установлено, что погреш ность аппроксимации пропорциональна третьей степени длин сегмен тов (шагам интегрирования).
6.Выполненное исследование показывает, что процесс аппрок симации функции cos х иерархической системой кусочно-непрерыв ных полиномов 2-й степени сходится равномерно на заданном отрез
ке [0, тс].
7. На компьютере с процессором Intel® Pentium® 4 (тактовая час тота 2,2 ГГц, объем оперативной памяти 512 Мбайт) для аппрокси мации функции cos х на разностной сетке, содержащей 64 сегмента, с использованием иерархической системы кусочно-непрерывных по линомов второй степени требуется 1,4-10"2 с.
1.4.3. Кусочно-непрерывные полиномы 3-й степени
Задание. Аппроксимировать методом Галёркина на отрезке [О, ж] функцию cos х с использованием иерархической системы ку сочно-непрерывных полиномов 3-й степени. Сформировать систему линейных алгебраических уравнений относительно коэффициентов разложения этой функции по заданнной системе функций; разрабо тать вычислительную программу для определения коэффициентов
разложения для 2, 4, 8, 64 сегментов постоянной длины; для ука занной последовательности определить погрешности аппроксима ции; исследовать зависимость погрешности аппроксимации от дли ны h сегментов; исследовать сходимость процесса аппроксимации; оценить быстродействие вычислительной программы.
Разрешающие соотношения
Для повышения порядка аппроксимации функции cos х система функций (1.12) на каждом из сегментов дополняется кусочно-непре рывными полиномами1 Ф-_1/2М третьей степени (рис. 1.17):
Ф,-1 (*)=(*, ~x)/h,
Ф/-1/2(*) = - 4 ( х - хм )(х - X,.)/ h2
(1.14)
Ф/-1/2(•*) = ~4 ( х ~ X i-1Х* —x i - 1/2Л’*' —X i ) / Ь >
Ф ,(х)=(х-х,_,)//г.
Рис. 1.17. Кусочно-непрерывные полиномы третьей степени на сегменте [0, к]
1Общее число пробных функций п = Ът + 1.
Это, в свою очередь, требует вычисления дополнительных инте гралов для формирования системы уравнений (1.3):
|
л |
|
|
|
4 |
х, |
|
|
|
|
|
|
{фм/2Мф, {x)dx = - — |
|(х - xw )2 (*- хн г \х - x i)dx = |
|
||||||||
_4 |
(*-*,-i)5 , |
3h (x - x ^ )A [ t f j x - x ^ f |
У |
|
. |
т - |
|||||
Л3 |
5 |
|
|
8 |
|
6 |
“ 30- |
1 = 1т; |
|||
|
я |
|
|
|
4 |
|
|
|
|
|
|
|
J q U М ф» |
= тз |
/(*-■*/X*- л',>1/2X*-*,>. |
|
|
|
|||||
_4 |
( х - х ж )5 |
| 3h {x -xM)4 | Л»2(дс-х|Ч.,)3 |
|
|
|
|
|||||
Л3 |
|
5 |
|
8 |
|
6 |
= _ 30’ |
/ = 0’т _ 1 ; |
|||
н |
|
|
|
1 6 |
j(* - хн X (* - х--'пh - х<f dx= |
||||||
|
/ ф;-1/2 Ы ф н рМ * = ^? |
||||||||||
16 |
{ x - x ,f |
| М *-*,)5 |
! ^2( ^ - ^ ) 4 |
, ^(-^--У/)3 |
= 0, / = 1,т ; |
||||||
h4 |
6 |
|
2 |
|
2 |
6 |
|||||
|
|
|
|
|
|
||||||
jk-l/2Wf^ |
)(*- */-1 )2(Х- Xl-V2 } ( x - x i) 2dx = \ т |
(х -* ,)7 + |
|||||||||
| /г(х-х,)6 |
| 13/г2(х-х,.)5 | 3/?3(х-дг,)4 |
( /г4(х -х ,)3 |
|
2Л3 |
, |
— |
|||||
2 |
|
|
20 |
|
|
8 |
12 |
|
|
/ = 1,/я; |
|
|
|
|
|
|
105 |
|
|||||
|
|
|
|
4 |
х* |
|
|
Xk) |
c |
o |
s = |
|ф*-1/2cosxdx = ~ 7 J |
J(x “ **-■Xх xk“ -v2X* - |
= --p-|(3x2 - 6 )COSJC+ (JC3 -6x)sin x - ( x kA +**-1/2 + x k-i)x
X^2JCCOSX + (X2 - 2 ) sin *]} + (**-Л-1/2 + x k-\/2x k + * Л -i)x
x(cos x + x s i n x ) - хк_ххк_шхкsin =
j — {cos**,, -co sx A:)+^-(sinA:A:_1-l-sinx*), &= l,w . h
Система 3/w + l линейных алгебраических уравнений относи тельно коэффициентов ai9 i = 0,т, разложения (1.2) получается после подстановки полученных значений интегралов в выражение (1.3). Матрица коэффициентов и правая часть этой системы уравнений принимают вид
А/З |
А/З |
-А 2/30 |
А/6 |
0 |
0 |
0 |
0 |
А/3 |
8А/15 |
0 |
А/З |
0 |
0 |
0 |
0 |
-А 2/ 30 |
0 |
2A3/l05 |
А2/30 |
0 |
0 |
0 |
0 |
А/б |
А/З |
а2/ зо |
2А/3 |
А/З |
-А 2/30 |
А/6 |
0 |
0 |
0 |
0 |
А/З |
8А/15 |
0 |
А/З |
0 |
0 |
0 |
0 |
- а2/ зо |
0 |
2A3/l05 |
А2/30 |
0 |
0 |
0 |
0 |
А/6 |
А/З |
а2/ зо |
2А/3 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
А/З |
(1-cos h)jh
- 4 ( l + cosA)//H-8sinA/A2
(2h2-2 4 )(l-co sA )/A 2 + 12sinA/A
-(l-2 c o sA + cos2A)/A
<-4(cosA + cos2A)/A-8(sinA-sin2A)/A2
(2A2 -2 4 (cosA-cos2A)/A2 + 12(sinA + sin2A)/A
-(cos A - 2 cos 2A + cos 3A)/A
-[ l + cos((/w-l)A)]/A
Вприведённой системе уравнений выделены столбцы и строки, добавление которых, по сравнению с системой уравнений, приведён
ной в подразд. 1.4.2, обусловлено включением функции <p-_i/2M
в разложение (1.2).
Алгоритм решения
Текст Программы 1.5 на языке Си описывает вычислительный алгоритм, реализующий процедуру аппроксимации функции cos* с использованием иерархической системы кусочно-непрерывных по линомов 3-й степени.
Программа 1.5
//Аппроксимация функции. Система иерархических пробных функций
//Полиномы третьей степени
//Neчисло сегментов
//С массив для коэффициентов
//F массив правых частей
//х массив координат узлов
#define Ne 64
void main(void)
{double xO, xl, h, C[3*Ne+l] [3*Ne+l] , F[3*Ne+l], x[Ne+l]; int i , k ;
for(k=0; k<Ne+l; k++) x[k]=xO+h*k; for(k=0; k<3*Ne+l; k++)
for(F[k]=0.0, i=0; i<3*Ne+l; i++) C[k][i]=0.0; for(k=0; k<Ne; k++)
{if(k==0)
{C [3*k] [3*k] =h/3.0;___________________________________________
}
else
{C [3*k] [3*k]=2.0*h/3.0;
F[3*k]= - (cos((k-1)*h)-2.0*cos(k*h)+cos((k+1)*h))/h;
}
C [3*k] [3*k+l] =C [3*k+l] [3*k] =h/3 .0 ; C [3*k+l] [3*k+l]=8.0*h/15.0;
C [3*k] [3*k+2]=C[3*k+2] [3*k]=-h*h/30.0? C [3*k+l] [3*k+2]=C[3*k+2] [3*k+l]=0.0; C[3*k+2][3*k+2]=2.0*h*h*h/105.0;
C [3*k+2] [3*k+3]=C[3*k+3] [3*k+2]=h*h/30.0; C[3*k+3][3*k]=C[3*k][3*k+3]=h/6.0;
C [3*k+l] [3*k+3]=C[3*k+3] [3*k+l]=h/3.0;
F[3*k+l]= - 4 . 0*(cos(k*h)+cos((k+1)*h))/h - 8 .0*(sin(k*h)- s i n ((k+1)*h))/(h*h);
F [3*k+2] = (2.0*h*h-24.0) * (cos (k*h) -cos ((k+1) *h) )/ (h*h) + 12 . 0*(sin(k*h)+sin((k+1)*h))/h;
}
C[3*Ne][3*Ne]=h/3.0;
F[3*Ne]= - (1.0+cos((Ne-1)*h))/h;
// Решение системы линейных алгебраических уравнений G A USS (С, F, 3*Ne+l);
1__________________________________________________________
Реализация алгоритма
Заданный отрезок разбивается на четыре сегмента равной длины
M = G, UG2UG3UG4,
где G, = [0,я/4], G2 = [я/4,я/2], G3 = [тс/2,Зтс/4] и G4 =[3л/4,я]. Заданная функция COSJC представляется разложением (1.2). Соотношения (1.3) принимают вид системы линейных алгебраических уравнений
л л
Е а>J<р*фА= |ф* cosxdx |
(1.15) |
|
' о |
о |
|
|
I |
I |
относительно коэффициентов а,, i = 0,1/2,1/2,1,3/2,3/2,..., 4. Подсчитываются дополнительные значения коэффициентов, от
меченные в приведённой выше системе линейных алгебраических уравнений:
лА2
|фоФ1/2<& = —ттг = —0,020562,
о30
л |
л |
л |
^ФоФз/г^^- = |
|ф о Ф 5/2^ = |
| ф о Ф 7/2^ = 0 i |
0 |
0 |
0 |
я я л л
|ф ,/2 Ф ;/2 ^ = К 2Ф'з/2^= \ (Vn(V'mdX= |ф1/2Ф7/2^ = °;
0 |
0 |
0 |
|
0 |
я |
|
И 2 |
|
я |
/фугФо^ = ”*— = ""0,020562, |
^Фi/2Ф1/2^^ = 0 > |
|||
|(ф;/2 )2 ^ |
= 7^7 = 0,009228, |
/ф ^Ф .Л = ^ = 0,020562, |
||
|
105 |
|
|
30 |
71 |
|
Л |
71 |
л |
|ф1/2Фз/2^ = |
{ф1/2Фз/2^ = |
{ф угФ г^ = |
|ф|/2Ф5/2^ = 0? |
|
0 |
|
0 |
0 |
0 |
я |
я |
я |
я |
Я |
{ф|/гФ5/2^Г= |*Ф1/2Ф3 = ^Ф1/2Ф7/2^^ = |ф1/2Ф7/2^Г= /ф 1/2Ф4 = ^ » 0 0 0 0 0
*г , |
|
(lh2-24)(1-COS/J) |
12sin/? |
|
Гф' |
cosxdx =^----------4} --------- - +}±E1!L = _o,006112; |
|||
о |
|
h |
|
h |
/ф .ф '^Л = ^ |
= 0,020562, |
)ф,фу2^ = ~ 30 = -0,020562, |
||
|
|
71 |
71 |
|
|
|
/ ф l Ф 5/2 d x = |
^ Ф 1Ф 7/2 |
= ^ 5 |
|
|
0 |
0 |
|
я |
|
я |
я |
я |
|фз/гФ1/2^= /ф3/2Ф3 / 2 = /ф3/2ф5 / 2 = /ф 3/2Ф7 / 2 = ®* |
||||
0 |
|
0 |
0 |
0 |
|
я |
я |
я |
|
|
]У3/2Фо<&=|ф'3/2ф|/-2л = | ф;/2ф;/2л = о, |
|||
|
0 |
0 |
0 |
|
я |
|
Н 3 |
|
я |
{фз/гФА |
= - — = -0,020562, |
|фз/2Фз/2 ^ = 0, |
||
J(фз/2)2^ |
= 777 = °’009228’ |
|
/ ф > 2=*0,020562= ^ 7 , |
|
|
105 |
|
30 |
|ф'э/2ф5/2<&= {фз/2ф 5/2^= |ф з/2Ф з^= /ф ,^Ф7/2<Л:= |
{ф 'з/зФ м ^ - / ф 'з /з Ф ^ -0 |
||||
О |
о |
о |
о |
о |
О |
|
\ |
|
(2h2-24) (cos h -cos 2/?) |
12(sin/? + sin2/z) |
ЛЛ1._Г, |
|||||
|
J(p;/2 cos |
|
i |
^ |
------------- - + — ----- --------- 1= -0,014756; |
|||||
|
|
|
]*Ф2Ф|/2^* = О, |
|ф 2Фз/2^ ~ т т = 0,020562, |
||||||
|
|
|
0 |
|
|
0 |
JU |
|
|
|
|
|
|
71 |
|
h2 |
|
\ |
|
= 0 ; |
|
|
|
|
|ф гФ 5/2^ = ------- ~ -0 ,0 2 0 5 6 2 , |
j ф2Ф7/2^ |
||||||
|
|
|
о |
|
30 |
|
0 |
|
|
|
|
n |
|
|
я |
Я |
|
Я |
|
|
|
|
/фб/гФуг^* = |
/ф б/гФ з/г^ = / Ф5/2 Ф 5 /2 ^ = |
/ф 5/гФ 7/2^ = 0» |
|||||||
|
0 |
|
|
0 |
0 |
0 |
|
|
|
|
я |
л |
|
|
|
к |
я |
я |
|
|
я |
|ф5/гФо<^Г = |
J (P5/2(Pl/2C^X = |
|ф5/2Ф1/2^Х:= |ф5/2Ф|<^Х' == |ф5/2Фз/2^= |
JФб/гФз/г^* ^ 0, |
|||||||
0 |
|
0 |
|
|
0 |
0 |
0 |
|
|
о |
|
|
J”Ф5/2 Ф2 |
= |
= —0,020562, |
J"Ф5/2 Ф5/2 |
= 0 , |
||||
|
jj*(ф5/2 |
)2 ^ = 7 ^ 7 |
= 0,009228, |
}ф;/2Ф3^ |
= ^~ =0,020562 |
|||||
|
|
|
|
105 |
|
|
|
30 |
|
|
|
|
|
/ф5/2Ф7 / 2 —]*Ф5/2Ф7/2^ ~ |ф5/гФ4^ “ 0 , |
|
|
|||||
|
|
|
О |
|
О |
О |
|
|
|
|
|
"г л' |
^ |
(2/72 -2 4 )(COS2/Z- |
COS3//) |
12(sin 2А-h sin3/Z) |
|
||||
|
J<p5/2 cosдсЛ= --------- —/ 2---------------+ —Ь*---- ---------- L= -0,014756; |
|||||||||
|
Г |
|
|
Л |
|
71 |
|
h2 |
|
|
|
|фзФ ^2^= |фзФз/2^ = 0, |
|ф 3ф'5/2с& |
= — = 0,020562, |
|||||||
|
O |
|
n |
|
|
n |
|
30 |
|
|
/фзФ'т/з^ = - — = -0,020562;
n |
з и |