Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Численные методы. Ч. 5

.pdf
Скачиваний:
2
Добавлен:
20.11.2023
Размер:
7.5 Mб
Скачать

Ф/-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Общее число пробных функций п = + 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

 

. —

А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