книги / Численные методы. Ч. 5
.pdfсообразно использовать логарифмические координаты для большей наглядности представления результатов (см. рис. В.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, л] (а) и зависимость погрешности аппроксимации от длин сегментов (б)