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

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

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

сообразно использовать логарифмические координаты для большей наглядности представления результатов (см. рис. В.2).

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

вконце учебного пособия).

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

Существенную помощь при подготовке настоящего пособия ока­ зали студенты направления «Прикладная механика» Борзакова Ната­ лья (гр. ВВТм-11), Дудин Сергей и Чиннов Николай (гр. ДПМб-09), принимавшие участие в реализации алгоритмов и выполнении вычис­ лительных экспериментов.

1.АППРОКСИМАЦИЯ ФУНКЦИИ

СИСПОЛЬЗОВАНИЕМ МЕТОДА ГАЛЁРКИНА

Под аппроксимацией заданной функции/ (г) понимается нахожде­ ние функции f m(х) из некоторого класса (например, среди алгебраиче­ ских многочленов заданной степени), в том или ином смысле близкой к/(х) и дающей ее приближенное представление. Функция f m (х) может определяться, например, следующим образом:

т

/ » W = Z ° - (Р/(*)’

ы\

где ф, (х) - пробные функции. Близость функции f(x) и ее прибли-

т

жения ]Гя.ф. (JC) оценивается с использованием какой-либо подхо-

;=1

т

1/ - ^ ^ ,Ф / • При использовании метода Галёркина

наиболее удобной является чебышёвская норма

 

П1

Sm=

( 1 .1 )

Функция / (x) на отрезке [а, Ъ] приближенно представляется раз­ ложением

 

f { X) ~ f m{X) = Y ;aWi(X)-

 

(1.2)

 

 

;=1

 

 

 

 

Для определения коэффициентов я, используется условие орто­

гональности погрешности

т

 

 

 

 

 

 

 

 

 

/ M

- Z ^ . M

 

 

 

 

i=i

 

 

 

каждой пробной функции ф;. на отрезке [а, Ь],

 

 

"

т

в

о

т

^ ) Е а/(Р/(дг>&

J

 

1/ М

фф Л ^^)л) ^=- | ф Л

к =\,т.

Полученные выражения представляют собой систему т линей­ ных алгебраических уравнений

1 ] в/1ф/(*)ф*(*)Л

= ]/(* )ф * (* )Л * к = 1,т.

(1.3)

(=1 а

а

 

относительно т искомых коэффициентов ап i = 1,/и разложения (1.2).

Вдальнейшем рассматривается построение приближения (1.2)

сиспользованием кусочно-непрерывных пробных функций. Проце­

дура аппроксимации заключается в разбиение отрезка [я, b] на т сег­ ментов равной длины h = (b -a )/m

[a,b\ = Gx UG2U ...u G m.,U G m,

где G, =[х0,х,], G2=[*p *2], Gm.t =[xm_2,xm_{], Gm=[xm_l,xm];

x0 =a, xm=b. Для каждого из этих сегментов выбираются кусочно-не­ прерывные функции, которые в дальнейшем используются для по­ строения разложения (1.2). Порядок формирования систем пробных функций на основе кусочно-непрерывных полиномов рассматривается ниже.

1.1. Кусочно-постоянные функции

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

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

Заданный отрезок [0,л] разбивается на т сегментов Gi =[*м ,*,],

i = 1,/и, равной длины h = xi - JCM =п/т. На каждом из сегментов оп­ ределяется кусочно-постоянная пробная функция1

1Число пробных функций совпадает с числом т сегментов, т.е. п = т.

 

 

 

fl,

x e G n .

-—

(1.4)

 

 

ф' м =

о,

 

,=1’я -

 

 

 

 

 

Для формирования системы уравнений (1.3) с учетом определе-

 

 

 

 

 

 

 

Л

ния (1.4) пробных функций вычисляются интегралы

Jcp^ (лг) ф,- (л:)

 

л

 

 

 

 

 

о

 

 

 

 

 

 

 

и

(jt)cosx<ix:.

 

 

 

 

 

 

о

 

 

 

 

 

 

 

Если к = /,

т.е. ср* (л:) = ф;. (х),

 

 

 

 

Л

Л

 

х !

 

x i

 

 

|ср,(х)ф; (х )Л = ^ ] (x )d x =

](x)dx= j l dx = xi -x .^= h .

 

О

0

 

дг,_,

дгу_,

 

 

Е с л и к * /,

ф у н к ц и и

ф* ( х ) и

ф;. ( х )

о т л и ч н ы о т

н у л я н а р а з н ы х

 

 

 

 

л

 

 

 

сегментах и, следовательно,

|ф, (х)ф* (х) dx = 0. Иными словами,

 

 

 

 

 

IК

k = i,

 

 

 

/фД*)ф*(*)А = 0,

к * L

 

Для того же сегмента G,= [JC/_I, JC,-] интеграл в правой части фор­ мулы (1.3) с учетом определения (1.4) пробных функций определяет­ ся выражением

лХк

|ф А(JC)COS*<&= Jco sxdx = s i n = s i n ( ^ ) - s i n ( ^ _ , ) =

о**-i

= sin (kh) - sin [(к -1) A].

Подстановка полученных значений в выражение (1.3) приводит к системе п линейных алгебраических уравнений

ахh

+

а20

+

аъ0

+

+

ал0

= sin (Л),

ах0

+

a2h

+

аъ0

+

+

ап0

= sin(2A)-sin(A),

ах0

+

а20

+

аък

+

+

ап0

= sin(3A)-sin(2A),

ах0 + а20 + аъ0 +

+ anh = -sin [(/w -l)A ],

относительно коэффициентов a .,i = l,w, разложения (1.2). Матрица

коэффициентов и правая часть этой системы уравнений имеют вид

 

о

о

о

О А О

0

0

0

А

0

0

0

0

А

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

sin (Л)

sin (2А)- sin (h)

sin(3A)-sin(2A) ►

-sin[(/w -l)A ]

Ниже приведён фрагмент программы на языке Си, реализующей процедуру аппроксимации функции cos х с использованием кусочно­ постоянных пробных функций.

Программа 1.1

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

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

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

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

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

#define Ne 64 void main(void)

{ double x O , xl, h, C[Ne][Ne], F[Ne], x[Ne+l]; int i , k ;

x0= 0 .0; // начальная точка xl=M_PI; // конечная точка h=(xl-xO)/Ne; // длина шага сегмента

for(k=0; k<Ne+l; k++) x[i]=xO+k*h; for(k=0; k<Ne; k++)

{ F [k]=sin((k+1)*h)-sin(k*h); for(i =0 ; i<Ne; i++)

{if (i==k) C[k][i]=h; else C[k] [i]=0.0;

//Решение

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

G A USS(С,

F, N e ) ;

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

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

[о,я]=<7, и е 2 ис7,и<?4.

где <7,=[0,л/4], G2=[n/4,n/2], G} =[л/2,Зл/4] и G4 = [3я/4,я]. На

каждом из этих сегментов в соответствии с выражением (1.4) опре­ деляются кусочно-постоянные пробные функции (рис. 1.1).

Заданная функция f( x ) представляется разложением (1.2), где п = т =4. Соотношения (1.3) принимают вид системы линейных ал­ гебраических уравнений

4

я

71

___

 

Z *J<P * (x )<Pi(x )d x = J*P* (^ )C0SAT£*r,

k = 1,4,

(1 .5 )

'=1

0

0

 

 

относительно коэффициентов an i = 1,4.

В соответствии с выражениями (1.5) подсчитываются значения интегралов (с учетом определения (1.4) пробных функций):

л л л л

|ф ?(х)А = J<p\(x)dx= | ф32(д:)dx= Jcp^ (JC)<^C= h = л/4 = 0,785398,

0

0

0

0

 

л

л

л

 

J<pi W <P2W a

= | ф. (*)ф3 (*)<&= /ф| (■*)ф4(-г)л = °.

 

0

0

0

 

л

л

л

 

|ф 2 (* )ф | ( * ) < & = /ф 2 ( х )фз {x)dx= J(p2 ( дс) ф 4 {x)dx = 0,

 

0

0

о

 

л

л

л

 

|фз(*)ф. (x)dx=|ф 3(*)ф2 (*)<& = |фз(л:)ф4 (*)<& = 0,

 

0

0

0

 

л

л

л

 

|ф 4(х)ф, (x)dx= |ф 4 (^)ф2 (x)dx = |ф 4 (*)ф3 (x)dx = 0,

 

0

0

0

ля/4

|ф, (x)cos;«£c = Jcos;tc& = smA = sm(ft/4) = V2/2 = 0,707107,

оо

л

л/2

 

PNRPU

 

= sin(rc/2)-sin(rc/4) = I - V 2/2 =

Jcp2(x)c° sxcfcc= JcosxA = sin x |^

Оп/4

=0,292893,

лЗл/4

J(p3(x )c o s x (ic = J cosx<i* = s in x |^ 4 = sin (3rc/4)-sin(rc/2) = >/2/2-1 =

Ол/2

=-0,292893,

л

л

Jcp4 (JC)COSjcrfr = Jcosxdfr = sin jc|"^4 = sin7t:-sin(3K/4) = 0 - V 2/2 =

ОЗл/4

= -0,707107

9K-Y)

Ф-(х)

1

1

1 1

1 1

1

 

1

I 1 1----1----1----

0

л/'4

л/2

Зл/4

л

0

Л;Ч

л/2 Зл/4

л

 

 

а

 

 

 

 

б

 

 

Ф?(х)

 

 

 

 

ф4(Х )

 

i ----

1----1----

г—

 

 

0

л/4

л/2 3TC/4 л

0

rc/4 л/2 Зл/4 л

 

 

в

 

 

Рис. 1.1. Пробные кусочно-постоянные функции на отрезке [0, л]

Подстановка полученных значений в выражение (1.5) приводит к системе четырёх линейных алгебраических уравнений

0,785398а, +0,0а2 +0,0а3 + 0,0а4 = 0,707107, 0,0а, +0,785398а2 +0,0а3 + 0,0а4 =0,292893,

'0,0а, +0,0а2 +0,785398а3 +0,0а4 =-0,292893, 0,0л, + 0,0л2 + 0,0л3 + 0,785398я4 = —0,707107

относительно коэффициентов я, разложения (1.2) (табл. 1.1).

Таблица 1.1

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

0,785398

0,0

0,0

0,0

0,707107

0,0

0,785398

0,0

0,0

0,292893

0,0

0,0

0,785398

0,0

- 0,292893

0,0

0,0

0,0

0,785398

-0,707107

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

Использование Программы 1.1 позволило найти решение этой системы уравнений:

я, =0,900317, а2=0,372923, а3=-0,372923, а4 = -0,900317.

Аппроксимация функции / ( X) = C O S A : на отрезке [0, к] представ­ лением (1.2) при т = 4 показана на рис. 1.2, а. Аппроксимация той же функции с использованием т = 64 кусочно-постоянных функций приведена на рис. 1.2, б. На рис. 1.3, а изображена зависимость от координаты х погрешности

4

Д = C O S JC - 5 > /< P / ( JC) i=\

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

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

/> = (1п0,636620 - In 0,024539)/(In 1,570796 - In 0,049087) = 0,939455.

 

 

 

 

 

Таблица 1.2

 

Погрешность 5Шкусочно-постоянной аппроксимации

 

функции cos х при различном числе т

 

т

h

8m

I т

h

8m

2

1,570796

0,636620-10+о

16

0,196350

0,978598-10'1

4

0,785398

0,372923-10^

32

0,098175

0,490480-10_|

8

0,392699

0,193839-10^

64

0,049087

0,245388-10“'

О

7г/4

л/2

371/4

х

б

Рис. 1.2. Аппроксимация cos х кусочно-постоянными функциями с использованием 4 (а) и 64 (б) сегментов на отрезке [0, л]

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

В силу этого 8Ш—>0 при h —> 0 или т —> ©о. Это позволяет ут­ верждать, что процесс аппроксимации функции cos х линейной ком­ бинацией кусочно-постоянных функций (1.2) сходится равномерно на отрезке [0, к].

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

а

б

Рис. 1.3. Погрешность кусочно-постоянной аппроксимации функции cos х с использованием 4 сегментов

на отрезке [0, л] (а) и зависимость погрешности аппроксимации от длин сегментов (б)