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

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

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

Таблица 1.9

Матрица коэффициентов и правая часть системы линейных алгебраических уравнений для построения аппроксимации функции cos х иерархической системой кусочно-непрерывных полиномов третьей степени

0,261799 0,261799-

0,020562 0,130899

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,372923

0,261799 0,418879

0,0

0,261799

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,476323

- 0,020562

0,0

0,009228 0,020562

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,0

- 0,006112

0,130899 0,261799

 

 

,

- ,

 

0,0

0,0

0,0

0,0

0,0

0,0

0,527393

0,020562 0,523599 0261799 0 0205620,130899

 

0,0

0,0

0,0

0,261799 0,418879

0,0

0,261799

0,0

0,0

0,0

0,0

0,0

0,0

0,197299

0,0

0,0

0,0

- 0,020562

0,0

0,009228 0,020562

0,0

0,0

0,0

0,0

0,0

0,0

- 0,014756

0,0

0,0

0,0

 

 

 

,

-

,

 

0,0

0,0

0,0

0,0

0,130899 0,261799 0,020562 0,523599 0261799

0 0205620,130899

 

0,0

0,0

0,0

0,0

0,0

0,0

0,261799 0,418879

0,0

0,261799

0,0

0,0

0,0

- 0,197299

0,0

0,0

0,0

0,0

0,0

0,0

- 0,020562

0,0

0,009228 0,020562

0,0

0,0

0,0

- 0,014756

0,0

0,0

0,0

0,0

0,0

0,0

0,130899 0,261799 0,020562 0,523599 0,261799- 0,020562 0,130899 - 0,527393

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,261799 0,418879

0,0

0,261799 - 0,476323

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,0

- 0,020562

0,0

0,009228 0,020562 ^0,006112

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,0

0,130899 0,261799 0,020562 0,261799 - 0,372923

 

Л

Л

 

71

 

п

 

 

} Ф7/2 Ф^ = J<P7/2 <P3/A =

f (p7/2 <p'V2 ^ =

f ф7/2 ф'7/2^

= 0 i

 

o

o

o

o

 

 

 

 

л

я

л

я

 

 

 

 

J(p'7/2(P0dx = |ф'7/2ф|/2<яЬс = |ф7/2ф1/2^ = |ф7/2ф|<^Х= 0>

 

o

o

o

o

 

 

 

 

л

л

л

я

 

я

 

 

|ф'/2ф3/2^ = J<P7/2<P3/2<^X: = J(P7/2(P2^=

JФ7/2Ф5/2^

= JФ7/2Ф5 / 2 = 0»

 

0

0

0

0

 

0

 

 

Я

 

Ь 3

 

ЯГ

 

 

|ф7/2ф3бЬс = “ — = ”^ J020562 ,

J Ф7/2Ф7 / 2 = 0»

 

|(ф'7/2 fd x = ^ -

=0,009228,

|ф'7/2ф4л = ? - =0,020562

 

 

105

 

 

 

30

 

*, ,

(2й2-24)(cos3A-cos4A)

12(sin3/H-sin4A)

|ф'7/2 cosxdx =4---------^ 5 -------------- - + — ---------------1= -0,006112;

л

я

 

я

 

п

 

h2

|ф4ф1/2^ = |ф4Фз/2Л = |ф4Ф5/2^ = 0 >

^

Ф ^ = ТТ = 0,020562 .

0

0

 

0

 

о

 

^

Значения коэффициентов системы линейных алгебраических уравнений, используемой для построения аппроксимации функции cos х иерархической системой кусочно-непрерывных полиномов третьей степени, и правая часть этой системы приведены в табл. 1.9.

Результаты расчётов

Решением этой системы уравнений являются коэффициенты

а0 =0,999777, д1/2 = 0,070434, а\/2 = -0,00988, а, =0,706949,

я3/2 = 0,029175, а'ъ,2= -0,023848

а2 =0,0, а5/2 =-0,029179,

а5/2 = -0,023849, д3 = -0,706949, а1/2 = -0,070434,

alj2 =-0,009879,

а4= -0,999779

разложения cos х по иерархической системе кусочно-непрерывных полиномов третьей степени. В табл. 1.10 приведены значения по­ грешности (1.1) аппроксимации функции cos* при различных значе­ ниях числа слагаемых в разложении (1.2). Эти же данные представ­ лены в графическом виде на рис. 1.18.

Таблица 1.10

Погрешность 8Шаппроксимации функции cos х иерархической системой кусочно-непрерывных полиномов при различном числе т сегментов

т

h

5m

т

h

6m

2

1,570796

0,325789-10'2

16

0,196350

0,883963-10-6

4

0,785398

0,222766-10'3

32

0,098175

0,557239-10'7

8

0,392699

0,141048-Ю’4

64

0,049087

0,169180-10"7

С использованием формулы (В.1) приближенно определяется порядок погрешности аппроксимации функции cos* разложением (1.2). Для иерархической системы кусочно-непрерывных полиномов 3-й степени порядок погрешности аппроксимации оценивается зна­ чением (для прямолинейного участка)

Ь= (in 0,325789 • 10-2 - 1п0,557239 -10-7)/(In 1,570796 - In 0,098175) =

=3,95882.

Это показывает, что погрешность аппроксимации методом Галёркина функции cos* иерархической системой кусочно-непре­ рывных полиномов 3-й степени погрешности можно приближенно оценить как величину, пропорциональную четвёртой степени длины h сегментов, т.е.

8-= / - X a^ | = 0 (A4)-

В силу этого 5т ->0 при —>0 или т <». Это позволяет утвер­ ждать, что процесс аппроксимации функции COSJC иерархической системой кусочно-непрерывных полиномов 3-й степени сходится равномерно на отрезке [0, я].

Рис. 1.18. Зависимость от длины h сегментов погрешности аппроксимации функции cos х иерархической системой пробных функций 3-й степени

На рис. 1.19 представлена зависимость времени / выполнения расчетов от числа т сегментов разностной сетки.

Рис. 1.19. Зависимость времени / выполнения расчетов от числа иг сегментов для иерархической системы кусочно-непрерывных функций 2-й степени

Выводы

1. Процедура метода Галёркина использована для аппроксима­ ции функции cos х иерархической системой кусочно-непрерывных полиномов 3-й степени. Сформирована система линейных алгебраи­ ческих уравнений для определения коэффициентов разложения функции cos х по указанной системе функций.

2.Разработана вычислительная программа определения коэффи­ циентов разложения заданной функции по иерархической системе кусочно-непрерывных полиномов 3-й степени.

3.С использованием разработанной программы определены ко­ эффициенты и построены разложения функции COSJC по иерархиче­ ской системе кусочно-непрерывных полиномов 3-й степени для 2, 4, 8, 16, 32 и 64 сегментов постоянной длины.

4.Для указанной последовательности разложений определены

погрешности аппроксимации заданной функции (см. табл. 1.10) с помощью иерархической системы кусочно-непрерывных полино­ мов 3-й степени.

5. Показано, что с уменьшением длин сегментов погрешность ап­ проксимации уменьшается (см. рис. 1.18). Установлено, что погреш­ ность аппроксимации пропорциональна четвёртой степени длин сег­ ментов (шагам интегрирования).

6. Выполненное исследование показывает, что процесс аппрок­ симации функции cos х иерархической системой кусочно-непрерыв­ ных полиномов 3-й степени сходится равномерно на заданном отрез­ ке [0, тс].

7. На компьютере с процессором Intel® Pentium® 4 (тактовая частота 2,2 ГГц, объем оперативной памяти 512 Мбайт) для аппрок­ симации функции cos х на разностной сетке, содержащей 64 сегмен­ та, с использованием иерархической системы кусочно-непрерывных полиномов второй степени требуется 3,8-10"2 с.

1.4.4. Кусочно-непрерывные полиномы 4-й степени

Задание. Аппроксимировать методом Галёркина на отрезке [0, к] функцию cos х с использованием иерархической системы ку­ сочно-непрерывных полиномов 4-й степени. Сформировать систему линейных алгебраических уравнений относительно коэффициентов разложения этой функции по заданнной системе функций; разрабо­ тать вычислительную программу для определения коэффициентов

разложения для 2, 4, 8, 64 сегментов постоянной длины; для ука­ занной последовательности определить погрешности аппроксима­ ции; исследовать зависимость погрешности аппроксимации от дли­ ны h сегментов; исследовать сходимость процесса аппроксимации; оценить быстродействие вычислительной программы.

Разрешающие соотношения

Для повышения порядка аппроксимации функции cos х система функций (1.15) на каждом из сегментов дополняется кусочно-не­

прерывными полиномами1

четвёртой степени (рис. 1.20):

Ч>м (*) = (*/ -* )/А ,

 

Ф/-1/2(*) = - 4 ( *

- tx ~ x ,)/h 2,

 

Фы/2(*) = “4 (х - х,_, ){х- x,_l/2 \x - x ,) /h 2,

(1.16)

ф 'i/2(х )= - Н х - х,_, )(*- *м/2f (х - х, )/h2,

 

Ф/(^) = (^ -

)/* -

 

Рис. 1.20. Кусочно-непрерывные полиномы четвертой степени на сегменте [0, я]

1Общее число пробных функций п = 4т+ 1.

Это, в свою очередь, требует вычисления дополнительных инте­ гралов для формирования системы уравнений (1.3):

я 2 х>

/ф ' 1/2 (*)ф, (*)<& = ТГ J(* - *М )(* - *,-|/2 Д * - ) 2^ =

П” .

_2_ (■* xiУ , 2h(x-xif

| 5А2(дг-дг,)4

| А3(дс-дг,.)3

-

h

■ Г~ ■

А3

6

5

 

16

12

 

— ,

1= 1,т:

 

 

 

120

 

 

п

 

2 Х‘*Р

- Xi+1/2

 

-*,41 )2<& =

 

 

/фГ+1/2(*)ф,■(*)<&

= 7 1

J ( * _Х1)(х

 

 

 

п

 

ft

 

 

 

 

 

 

2_ (-У--У,+|)6 , 2//(jc-

JC,+I )s

t 5h2(x -x M У | hz{x-xM)3

_A^_

h3

6

5

 

16

 

 

12

 

120

 

 

 

i = 0,/w -l;

 

 

 

 

 

я

 

g

 

 

 

 

 

 

 

|ф '|/2 (*)ф,-1/2 (*№ = 74

|( X “ *i-l )2 (* " X i-\J2 f(X~Xif < b =

 

 

n

 

 

 

 

 

 

 

 

_8_ (дг-дг,)7

| А(дс—дг,.)6 | 13А2(дг-дг,.)5 | ЗА3(х-д:,.)4

| A4(.t-x,)3

_A^

A4

7

2

20

8

 

12

 

105’

 

 

 

 

/ = l,m;

 

 

 

 

 

П g Jf,

/фм/2(*Ж-|/2

= 7 7

J(* x i-l У(*-

П

 

ft

 

{x-x._V2f

 

 

 

В

 

12

64

|[ф'|/2 (*)f dx = T

i \ X~ */-l

о

h

 

X i-V 2 У ( х ~

X i )2^

=

и"

;э|

II О

тн

 

 

x -x ,fd x =

-X , - J

9

*■'(•^-^м/г)7 ! Л4 14

 

1

х1 J* <7

^

--------

ю

 

г

 

оо °

>*|

-1

=

А5

.

.

2520

, 1=1,т;

 

 

 

=-p-{(4jc3 -2 4 A)COSA + (A4 -12A2)sin A -

-(2JC/_1/2 + jt,_, + A,.)[(3A2 - 6)cos x + (A3 - 6*)sin x\ +

+(A2_i/2 +2A'|._]/2JC/_I + 2X,._1/2A. + A,._JA, ) [2ACOS A + (A2 -2)sin A]-

~ { X i - \ X f - V 2 + X ? - V 2 X i + 2 A /_ 1A/_ 1 2 A J )(cOS A + A sin A ) + Ay_, A A( sin A } ' =

=

48-A2 ,

v 5Л2 -48 / .

\

. -j—

--------(cos A;-_. + cos A-)

------- 5— (sin A(_, -sinAj,

i = \,m,

 

2h

h

 

 

Система 4ш + 1 линейных алгебраических уравнений относительно коэффициентов ai,i = 0,m, разложения (1.2) получается после подста­ новки значений интегралов в выражение (1.3). Матрица коэффициентов и правая часть этой системы уравнений принимают вид

Л/3

А/З

—А2/30

А3/120

А/6

0

0

0

0

0

А/3

8А/15

0

A3/l 05

А/З

0

0

0

0

0

 

-А2/30

0

2A3/l 05

0

а2/зо

0

0

0

0

0

 

А3/ 120 А3/105

0

А5/2520

А3/120

0

0

0

0

0

 

h/в

А/З

Л2/30

Л3/120

2А/3

А/З

- а2/зо

А3/120

А/6

0

 

0

0

0

0

А/З

8Л/15

0

А3/Ю5

А/З

0

 

0

0

0

0

- а2/зо 0

2А3/105

0

л2/зо

0

 

0

0

0

0

А3/120

A3/l05

0

А5/2520 А3/120

0

 

0

0

0

0

Л/6

А/З

а2/зо

А3/120

2А/З

0

 

0

0

0

0

0

0

0

0

0

А/З

(l-cosA )/A

 

- 4 (l + cosA)/A+8sinA/A2

 

(2A2 —24) (1-cos A)/A2 + 12sinA/A

 

|(48-A 2)(l + cosA)/2A + (5A2-48)sinA/A2

|

-(l-2cosA+cos2A)/A

 

< -4(cosA + cos2A)//?-8(sinA- sin2A)/A2

l

(2A2 -24)(cosA -cos2A)/A2 + 12(sinA + sin2A)/A

 

|(48-A 2)(cosA + cos2A)/2A-(5A2 -48)(sinA -sin 2A)/A2

- (cos A - 2 cos 2A + cos 3A)/A

-^1 + C O S ((/W -1)A)J/A

В приведённой системе уравнений выделены столбцы и строки, добавление которых, по сравнению с системой уравнений, приведён­ ной в подразд. 1.4.3, обусловлено включением функции

в разложение (1.2).

Алгоритм решения

Текст Программы 1.6 на языке Си описывает вычислительный ал­ горитм, реализующий процедуру аппроксимации функции COSJC с ис­ пользованием иерархической системы кусочно-непрерывных полино­ мов 4-й степени.

Программа 1.6

//Аппроксимация функции. Система иерархических пробных функций

//Полиномы четвёртой степени

//Neчисло сегментов

//С массив для коэффициентов

//F массив правых частей

//х массив координат узлов

#define Ne 64

 

void main(void)

 

{ long double xO, x l f h,

C[4*Ne+l] [4*Ne+l] , F[4*Ne+l], x[Ne+l];

int i , k ;

 

for(k=0; k<Ne+l; k++)

x[k]=xO+h*k;

for(k=0; k<4*Ne+l; k++)__________________________________________

for(k=0; k<Ne; k++)

{ if(k==0) { C[4*k][4*k]=h/3.0;

F [4*k] = (1.0-cos(h))/h;

else

}

{ C[4*k][4*k]=2.0*h/3.0;

 

F [4*k]= - (cos((k-1)*h)-

2.0*cos(k*h)+cos((k+1)*h))/h;

}

C [4*k] [4*k+l]=C[4*k+l] [4*k]=h/3.0; C [4*k+l] [4*k+1]=8.0*h/15.0;

C [4*k] [4*k+2]=C[4*k+2] [4*k]=-h*h/30.0; C [4*k+l] [4*k+2]=C[4*k+2] [4*k+l]=0.0;

C [4*k+2] [4*k+2]=2.0*h*h*h/105.0;

C [4*k+2] [4*k+4]=C[4*k+4] [4*k+2]=h*h/30.0; C[4*k+4] [4*k]=C[4*k] [4*k+4]=h/6.0; C[4*k+l][4*k+4]=C[4*k+4][4*k+l]=h/3.0;

C [4*k] [4*k+3]=C[4*k+3] [4*k]=h*h*h/120.0;

C [4*k+l] [4*k+3]=C[4*k+3] [4*k+l]=h*h*h/105.0; C [4*k+2] [4*k+3]=C[4*k+3] [4*k+2]=0.0;

C [4*k+3] [4*k+3]=C[4*k+3] [4*k+3]=h*h*h*h*h/2520.0; C[4*k+4] [4*k+3]=C[4*k+3] [4*k+4]=h*h*h/l20.0;

F[4*k+l]=-4.0*(cos(k*h)+cos((k+1)*h))/h - 8 .0*(sin(k*h)- sin((k+1)*h))/ (h*h);

F [4*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;

F [4*k+3] = (48.0-h*h)* (cos(k*h)+cos((k+1)*h))/ (2.0*h)- (5.0*h*h-

48 . 0)*(sin(k*h)-sin((k+1)*h))/ (h*h);

}

C[4*Ne][4*Ne]=h/3.0;

F[4*Ne]=-(1.0+cos((Ne-1)*h))/h;

// Решение

системы линейных алгебраических уравнений

G A USS (С,

F, 4*Ne+l);

Ь _______________________________________________________

Реализация алгоритма

Заданный отрезок разбивается на четыре сегмента равной длины

[0,Jt]=G, UG2UG3UG4,

где G, =[0,л/4], G2 =[тс/4 ,л/2], G3 =[л/2,З д/4] и G4 =[Зл/4 ,д]. Заданная функция cos х представляется разложением (1.2). Соотношения (1.3) принимают вид системы линейных алгебраических уравнений

лл

]<Р*ФА= }ф* C O S xd x,

(1.17)

о

о