
книги / Численные методы. Ч. 5
.pdfфункций приближенно оценивается как величина второго порядка относительно длин h сегментов одинаковой длины, т.е.
8 = / - |
= о ( л !). |
Таблица 1.4
Погрешность Ъткусочно-линейной аппроксимации функции cos х при различном числе т сегментов
т |
h |
5m |
т |
h |
5m |
|
2 |
1,570796 |
0,215854 10° |
16 |
0,196350 |
0,321687 |
10 2 |
4 |
0,785398 |
0,523867-10 '1 |
32 |
0,098175 |
0,803448-10_3 |
|
8 |
0,392699 |
0,129161 10_| |
64 |
0,049087 |
0,200814 |
10’3 |
О |
тт/4 |
я/2 |
Зтг/4 х |
|
|
а |
б |
Рис. 1.7. Погрешность кусочно-линейной аппроксимации функции cos х с использованием 4 сегментов на отрезке [0, я] (а) и зависимость
погрешности аппроксимации от длин сегментов (б)
В силу этого 6т —>0 при И —>0 или т —>°°. Это позволяет ут верждать, что процесс аппроксимации функции cos х линейной ком бинацией кусочно-линейных функций (1.2) сходится равномерно на отрезке [0, я].
Рис. 1.8. Зависимость времени / выполнения расчетов от числа т сегментов разностной сетки
На рис. 1.8 представлена зависимость времени t выполнения рас четов от числа т сегментов разностной сетки.
Выводы
1.Процедура метода Галёркина использована для аппроксима ции заданной функции cos* линейной комбинацией кусочно-линей ных функций. Сформирована система линейных алгебраических уравнений для определения коэффициентов разложения функции cos * по указанной системе функций.
2.Разработана вычислительная программа определения коэффи циентов разложения заданной функции по системе кусочно-линей ных функций.
3.С использованием разработанной программы определены ко эффициенты и построены разложения заданной функции cos* по системе кусочно-линейных функций для 2, 4, 8, 16, 32 и 64 сегментов постоянной длины (см. рис. 1.6).
4.Для указанной последовательности разложений определены по грешности аппроксимации заданной функции (см. табл. 1.4) соответст вующими линейными комбинациями кусочно-линейных функций.
5.Показано, что с уменьшением длин сегментов погрешность аппроксимации уменьшается (см. рис. 1.7). Установлено, что по грешность аппроксимации имеет второй порядок относительно дли ны сегментов (шага интегрирования).
6. Выполненное исследование показывает, что процесс аппрок симации функции cos х линейной комбинацией кусочно-линейных функций сходится равномерно на заданном отрезке [0, тс].
7. Для аппроксимации функции COSJC с использованием кусочно линейных функций на разностной сетке, содержащей 64 сегмента, на компьютере с процессором Intel® Pentium® 4 (тактовая частота 2,2 ГГц, объем оперативной памяти 512 Мбайт) требуется 2,5-10-3 с.
1.3. Кусочно-квадратичные функции
Задание. Аппроксимировать методом Галёркина на отрезке [О, к] функцию cos х с использованием кусочно-квадратичных проб ных функций. Сформировать систему линейных алгебраических уравнений относительно коэффициентов разложения этой функции по заданнной системе функций; разработать вычислительную про грамму для определения коэффициентов разложения для 2, 4, 8, 64 сегментов постоянной длины; для указанной последовательности
определить погрешности аппроксимации; исследовать зависимость погрешности аппроксимации от длины h сегментов; исследовать сходимость процесса аппроксимации; оценить быстродействие вы числительной программы.
Разрешающие соотношения
Заданный отрезок [0, тс] разбивается на т сегментов G,
/ = 1,т, равной длины h =xi - хм = тс/ти, где |
= (/ -1) %/т, |
|
xi - in/т . На каждом сегменте |
определяются три кусочно |
квадратичные пробные функции:
ф,-1 (х)
( 1.8)
Всё множество пробных функций для отрезка [0, тс] может быть представлено следующим образом1:
1Общее число пробных функций п = 2т + 1.
|
|
|
|
|
|
х,)/й2, |
xeG ,, |
||
|
Ф |
. М |
1 |
А |
' А |
* ' |
|
хй G,; |
|
|
|
|
|
|
0, |
|
|||
|
2(*-*М/2 )(*-*,-. )А 2, |
хе G,, |
|
||||||
|
ф /(*)= 2(X ~ Х,+1 /2 |
)(X - Х|+, )//г , |
x eG f+1, |
|
|||||
|
|
|
|
0, |
|
|
х«ёG,.uGj+l, |
|
|
|
Ф м/2(^)=— -— |
^ |
--------- . |
* e G ,> |
i= 1>w; |
||||
|
/ |
\ ( 2 ( ^ — Х т-\/2 )(■*• — Х т-1 ) / ^ » |
Х ^ |
G m’ |
|||||
|
< м * ) Н { |
|
|
|
' 0, |
|
х<£ Gm. |
||
|
Для формирования системы уравнений (1.3) с учетом определе- |
||||||||
|
|
|
|
|
|
|
|
|
л |
ния (1.8) пробных функций вычисляются интегралы |
JcpA.(JC) ( JC) |
||||||||
|
л |
|
|
|
|
|
|
|
о |
|
|
|
|
|
|
|
|
|
|
и |
(x)cos xdx. Первый из этих интегралов для k - i - О |
||||||||
|
о |
|
|
|
|
|
|
|
|
|
|
Л |
|
|
4 Х'г |
2 |
|
|
|
|
|
\^>l{x)dx =- j |
j( x - x 1/2) |
[ x - x ,f dx = |
|
||||
|
_4 |
(дг-х,)5 | h (x - x ,)4 | h2(x - x ,)3 |
2h |
||||||
|
A4 |
|
|
|
|
|
12 |
|
15 |
Если k = i - 1, функции <p,_, (x) и ф. (x) отличны от нуля на общем
сегменте [хы ,х(],
|
|
X |
1 |
1 |
|
|
A* т |
||
4_ |
X i-\/2) |
/г2( х - х ,_1/2)3 |
||
|
|
|
|
А |
Л4 |
30' |
Если k = i - 1/2, функции Ф,_1/2(*) и Ф,(*) отличны от нуля на
общем сегменте
71 |
8 |
J |
2 |
|
/ф,-./2 |
( х)Ф, ( х)dx = - - Г |
j ( х - хм f (х - хм/2) ( x - Xi)dx = |
||
п |
” . |
|
|
|
|
(* -* i)5 ЗА (х-х,)4 |
| А2(х-х,.)3 |
h_ |
|
|
|
|
|
15' |
-Ч-1 Если £ = /, функции Ф*(*) = Ф,(*) отличны от нуля на общем
сегменте [х,_„х,+1],
\(^t (x)dx =~ \{ x - x Ml2) \ x - x ^ ) 2d x + ^ } (x - x i+1/2)2(x -j:w )2dc =
_4 ( x - x ,,) 5 A (x -x f_,)4 |
^ ( x - x , . , ) 3 |
|
|
A4 |
|
12 |
|
(* -* ,+ .)5 + h{x ~ x,+ S +? { х ~ *,+, )3 |
4A |
||
|
|
12 |
15' |
При A-1/2 = /-1 /2 |
функции (pt_,/2 (x) = (p,_iy2 (JC) отличны от нуля |
||
на общем сегменте [х(._р х(], |
|
|
|
)фы/2 |
= |
*,У dx = |
|
п |
|
|
|
16 ( x - Xif |
| А (х -х,)4 t |
А2(х-х,.)3 |
8А |
А4 |
|
|
15' |
Если А = / + 1/2, функции ф1+1/2 (х) и ф.(х) отличны от нуля на общем сегменте [х,,xi+1 ],
л |
8 |
Л,+1 |
|
|
|
2 |
}ф|+|/2(*)ф; (*)<& = —ТТ J ( x - x ,) ( x - x ,+l/2)(x - x ,+1) |
dx = |
|||||
8_ {х ~ хм )5 , Щ х ~ хм У |
, ^2(* - * м )3 |
h_ |
||||
V |
5 |
|
8 |
6 |
|
15 |
Если k = i +1, функции |
ф1+| (х) и |
ср, (х) отличны от нуля на об |
||||
щем сегменте [x, ,xj+1], |
|
|
|
|
|
|
|
4 |
1 |
|
|
2 |
|
|ф,+|(* )ф ,(* )А = Т7 J ( x - x ,) ( x - x w/2) |
( x - x M)dx = |
|||||
|
|
•t.-i |
|
|
|
|
|
4_ (х ~ хмц)5 |
h2 (x ” xw/2)3 |
h_ |
|
||
h2 |
|
|
|
30' |
|
|
Для k = i = m значение интеграла |
|
|
|
|||
Я |
^ |
Xm |
|
2 |
j |
|
| ф ™ ( * ) < & = Т 4 - |
J |
X m-\/2) |
A = |
|
||
|
, Н х ~ хт-\) ^ 2( x - x m_,) |
2A |
||||
|
|
|
|
12 |
|
15' |
Для прочих соотношений индексов к и i функции срЛ(х) и ф. (х) |
||||||
|
|
|
п |
|
|
|
не имеют общих сегментов, т.е. |ф*фXdx = 0. |
|
|
||||
|
л |
|
о |
|
|
|
|
|
|
|
|
|
|
Интегралы |
|ф Л.(x)cosx<ix: в правой части выражения (1.3) с уче- |
|||||
|
0 |
|
|
|
|
|
том формул (1.8) определяются формулами
л^ *1
]ф0 cos xdx =— J (x - x 1) ( x - x 1/2)cosx<ir =

^ 2 XCOSAT+ (AC2 -2)sin x -(x1/2 +^,)(cosjc + xsinx) + xl/2A:1sinA:J ' =
3cos xn+ cos x, |
(, |
4 v |
4 . |
|
= --------- |
1----------- |
[ l - ? |
J S.n ,0 - F sm*,; |
|
2 xk |
|
|
|
2 X*+| |
« « * = * J (x - ^ .,)(x - x t.V2)cosxdc+-^- J (дс—jqttV2)(x-Ajbrt)ooexcfc=
j[^2xcos;t+(;c2 -2) sinj:-(xt_1+ хк_ц2)(cosx+ xsinx) + xk_y2xkAsinxj * +
y^2xcosx+(x2 -2 )sin x -(x t+V2 + xi+1)(cosx + xsin x) + xt+V2x,(+lsinxj'*' =
= ------ |
---------■£-*--------- |
--- |
+ ^ r ( sm xk-\ ~ sm xk+i), k = l,m - u |
|
K |
4 |
x> |
|
Jcpt4/2cosxdx =- - |
j |
J (х -х * _ ,)(х -х 4)со8хА = |
|
|
|
x*-l |
—“ ["2XCOSJC+ (X2 -2 )8 тх -(х л +xJt_1)(cosx+Jcsinx) + xitxjt_1sinx"| * =
8 ( . |
• |
\ |
4 / |
\ |
, \— |
= — ^-(sinjc*., -sinx*)— |
(cosx^ +cosxk), |
k = \,m; |
|||
h |
|
h |
|
|
|
к |
2 |
J (x -x m.,)(x -x m.l/2)cosxA = |
|||
f(pmC0Sxdx = - j |
оП xm,
-^-[2xcosx+(x2-2)sinx-(xml +*„H/2)(cosx+xsinx)+X(FMXiH/2 sin x jj =
cosxm, |
+3cosx_ |
4 . |
4"i . |
W-l |
W I |
n t |
|
+ — Sinjfm-1 + P - T T siDJCm-
Подстановка полученных значений в выражение (1.3) приводит к системе 2/я + 1 линейного алгебраического уравнения
2h |
Л |
h |
Л |
L |
^ Л |
а0 — + ai/2 — |
|
+ аз/20 |
+ а20 + ---+ ат0 = |
3+cosA —4—sin А,
АА2
А |
8А |
А |
- |
л |
. |
л |
|
"0Т5+а,/215 + а |15 + аз/2° |
2° |
|
т° = |
|
|||
=-^-sinA“ (l+cosA), |
|
|
|
|
|||
h |
h |
Ah |
h |
h |
+ |
+a |
n |
-an— +0,,,— + o.— + a,/2---- CL— |
0 = |
||||||
°30 |
^/215 |
15 |
; 15 |
^30 |
|
|
|
l+6cosA+cos2/? |
4 . |
|
|
|
|
||
= -------------------------- |
|
|
7-sin2«, |
|
|
|
hh
лn /2 8 /2 / 2 a00+al/20+a, — +aj/2— +a2— +...+am0 -
8 |
|
|
4 |
|
|
= — (sin 2h- sin h)- —(cosh +cos 2h), |
|
||||
. |
A |
h |
h |
Ah |
|
a00+aV20-al— +ch/2— +a2 — +...+am0= |
|||||
_ COSA+6COS2A+COS3/J |
4(sinA-sin3A) |
|
|||
" |
|
h |
+ |
h2 |
’ |
|
|
|
|
2/? |
|
ao0+ al/20+ a,0+ a3/20+---+am— = |
|
||||
cos("(w -l)Al-3 |
4 |
r , |
|
°L „
относительно коэффициентов а, разложения (1.2). Матрица коэффи циентов и правая часть этой системы уравнений имеют вид
2A/15 |
A/15 |
-h/30 |
0 |
0 |
0 |
Л/15 |
8A/15 |
A/15 |
0 |
0 |
0 |
-h/30 |
A/15 |
4A/15 |
A/15 |
-h/30 |
0 |
0 |
0 |
A/15 |
8A/15 |
A/15 |
0 |
0 |
0 |
-h/30 |
A/15 |
4A/15 |
0 |
0 |
0 |
0 |
0 |
0 |
2A/15 |
(3 + cosA)/A--4sinA/A 2
8sin A/А2 -4(l+cosA)/A
(1+ 6 cos A + cos 2h)/h - 4 sin 2h/h2
•8(sin2A-sinA)/A2-4(cosA + cos2A)/A
(cos A +6cos 2A + cos3h)/h+4(sinA - sin 3h)/h2
[cos(m - \)h - 3]/h+4sin[(»i - l)h]/h2
Алгоритм решения
Ниже приведён фрагмент программы на языке Си, реализующей процедуру аппроксимации функции cos х с использованием кусочно квадратичных пробных функций.
Программа 1.3
//Аппроксимация функции. Кусочно-квадратичные пробные функции
//Ne - число сегментов
//С массив для коэффициентов
//F массив правых частей
//х массив координат узлов
#define Ne 64
void main(void)
{double xO, xl, h, C[Ne][Ne], F[Ne], x[Ne+l]; int i , k ;
х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*kJ=2.0*h/15.0;
F [2*k] = (3.0+cos(h))/h - 4 .0*sin(h)/ (h*h) ;
}
else
{C[2*k] [2*k]=4.0*h/15.0;
F[2*k]= (cos((k-1)*h)+6.0*cos(k*h)+cos((k+1)*h))/h+
4 . 0 * (sin((k-1)*h)-sin((k+1)*h))/ (h*h);
}
C [2*k] [2*k+l]=C[2*k+l] [2*k]=h/15.0; C [2*k] [2*k+2]=C[2*k+2] [2*k]=-h/30.0; C[2*k+1] [2*k+l]=8.0*h/15.0;
C[2*k+l] [2*k+2]=C[2*k+2] [2*k+l]=h/l5.0;
F[2*k+l]= - 4 . 0*(cos(k*h)+cos((k+1)*h))/ h - 8 .0*(sin(k*h)- sin((k+1)*h))/ (h*h);
}
C[2*Ne][2*Ne]=2.0*h/15.0;
F [2*Ne] = (cos((Ne-1)*h)-3.0)/h+4.0*sin((Ne-1)*h)/ (h*h);
//Решение |
системы линейных алгебраических уравнений |
G A USS (С, |
F, Ne+1); |
1__________________________________________________________
Реализация алгоритма
Первоначально заданный отрезок разбивается на четыре сегмен та равной длины
[0,K] = G 1 UG2 UG3UG4,
где G,=[0,Jt/4], G2=[K/ 4 ,п/2], G3=[n/2,Зя/4] и G4 =[3д/4,д]. На
каждом из этих сегментов в соответствии с выражением (1.8) опре деляются кусочно-линейные пробные функции (рис. 1.9).
Заданная функция f(x) представляется разложением (1.2). Соот ношения (1.3) принимают вид системы линейных алгебраических уравнений
лл
X ai |
= |ф * cos xdx |
(1 .9 ) |
оо
относительно коэффициентов ах, / = 0,1/2,1,3/2,..., 4.