- •Выполнил:
- •Алгоритм решения
- •Реализация алгоритма
- •Z ai |ф*ФА = /ф* cosxdx’ к = 0,4,
- •Разрешающие соотношения
- •Алгоритм решения
- •Результаты расчётов
- •Разрешающие соотношения
- •Алгоритм решения
- •Реализация алгоритма
- •2.1. Аппроксимация решения кусочно-линейными функциями
- •Алгоритм решения
- •Результаты расчетов
- •Разрешающие соотношения
- •Алгоритм решения
- •Реализация алгоритма
- •Разрешающие соотношения
- •Алгоритм решения
- •Реализация алгоритма
- •3.1. Явная разностная схема
- •Алгоритм решения
- •Реализация алгоритма
- •Разрешающие соотношения
- •Программа 3.2
- •Реализация алгоритма
- •Алгоритм решения
- •Реализация алгоритма
разложения для 2, 4, 8, 64 сегментов постоянной длины; для ука занной последовательности определить погрешности аппроксима ции; исследовать зависимость погрешности аппроксимации от дли ны h сегментов; исследовать сходимость процесса аппроксимации; оценить быстродействие вычислительной программы.
Разрешающие соотношения
Для повышения порядка аппроксимации функции cos х система функций (1.12) на каждом из сегментов дополняется кусочно-непре рывными полиномами1 Ф-_1/2М третьей степени (рис. 1.17):
Ф,-1 (*)=(*, ~x)/h,
Ф/-1/2(*) = - 4 ( х - хм )(х - X,.)/ h2
(1.14)
Ф/-1/2(•*) = ~4 ( х ~ X i-1Х* —x i - 1/2Л’*' —X i ) / Ь >
Ф ,(х)=(х-х,_,)//г.
Рис. 1.17. Кусочно-непрерывные полиномы третьей степени на сегменте [0, к]
1Общее число пробных функций п = Ът + 1.
Это, в свою очередь, требует вычисления дополнительных инте гралов для формирования системы уравнений (1.3):
|
л |
|
|
|
4 |
х, |
|
|
|
|
|
|
{фм/2Мф, {x)dx = - — |
|(х - xw )2 (*- хн г \х - x i)dx = |
|
||||||||
_4 |
(*-*,-i)5 , |
3h (x - x ^ )A [ t f j x - x ^ f |
У |
|
. |
т - |
|||||
Л3 |
5 |
|
|
8 |
|
6 |
“ 30- |
1 = 1т; |
|||
|
я |
|
|
|
4 |
|
|
|
|
|
|
|
J q U М ф» |
= тз |
/(*-■*/X*- л',>1/2X*-*,>. |
|
|
|
|||||
_4 |
( х - х ж )5 |
| 3h {x -xM)4 | Л»2(дс-х|Ч.,)3 |
|
|
|
|
|||||
Л3 |
|
5 |
|
8 |
|
6 |
= _ 30’ |
/ = 0’т _ 1 ; |
|||
н |
|
|
|
1 6 |
j(* - хн X (* - х--'пh - х<f dx= |
||||||
|
/ ф;-1/2 Ы ф н рМ * = ^? |
||||||||||
16 |
{ x - x ,f |
| М *-*,)5 |
! ^2( ^ - ^ ) 4 |
, ^(-^--У/)3 |
= 0, / = 1,т ; |
||||||
h4 |
6 |
|
2 |
|
2 |
6 |
|||||
|
|
|
|
|
|
||||||
jk-l/2Wf^ |
)(*- */-1 )2(Х- Xl-V2 } ( x - x i) 2dx = \ т |
(х -* ,)7 + |
|||||||||
| /г(х-х,)6 |
| 13/г2(х-х,.)5 | 3/?3(х-дг,)4 |
( /г4(х -х ,)3 |
|
2Л3 |
, |
— |
|||||
2 |
|
|
20 |
|
|
8 |
12 |
|
|
/ = 1,/я; |
|
|
|
|
|
|
105 |
|
|||||
|
|
|
|
4 |
х* |
|
|
Xk) |
c |
o |
s = |
|ф*-1/2cosxdx = ~ 7 J |
J(x “ **-■Xх xk“ -v2X* - |
= --p-|(3x2 - 6 )COSJC+ (JC3 -6x)sin x - ( x kA +**-1/2 + x k-i)x
X^2JCCOSX + (X2 - 2 ) sin *]} + (**-Л-1/2 + x k-\/2x k + * Л -i)x
x(cos x + x s i n x ) - хк_ххк_шхкsin =
j — {cos**,, -co sx A:)+^-(sinA:A:_1-l-sinx*), &= l,w . h
Система 3/w + l линейных алгебраических уравнений относи тельно коэффициентов ai9 i = 0,т, разложения (1.2) получается после подстановки полученных значений интегралов в выражение (1.3). Матрица коэффициентов и правая часть этой системы уравнений принимают вид
А/З |
А/З |
-А 2/30 |
А/6 |
0 |
0 |
0 |
0 |
А/3 |
8А/15 |
0 |
А/З |
0 |
0 |
0 |
0 |
-А 2/ 30 |
0 |
2A3/l05 |
А2/30 |
0 |
0 |
0 |
0 |
А/б |
А/З |
а2/ зо |
2А/3 |
А/З |
-А 2/30 |
А/6 |
0 |
0 |
0 |
0 |
А/З |
8А/15 |
0 |
А/З |
0 |
0 |
0 |
0 |
- а2/ зо |
0 |
2A3/l05 |
А2/30 |
0 |
0 |
0 |
0 |
А/6 |
А/З |
а2/ зо |
2А/3 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
А/З |
(1-cos h)jh
- 4 ( l + cosA)//H-8sinA/A2
(2h2-2 4 )(l-co sA )/A 2 + 12sinA/A
-(l-2 c o sA + cos2A)/A
<-4(cosA + cos2A)/A-8(sinA-sin2A)/A2
(2A2 -2 4 (cosA-cos2A)/A2 + 12(sinA + sin2A)/A
-(cos A - 2 cos 2A + cos 3A)/A
-[ l + cos((/w-l)A)]/A
Вприведённой системе уравнений выделены столбцы и строки, добавление которых, по сравнению с системой уравнений, приведён
ной в подразд. 1.4.2, обусловлено включением функции <p-_i/2M
в разложение (1.2).
Алгоритм решения
Текст Программы 1.5 на языке Си описывает вычислительный алгоритм, реализующий процедуру аппроксимации функции cos* с использованием иерархической системы кусочно-непрерывных по линомов 3-й степени.
Программа 1.5
//Аппроксимация функции. Система иерархических пробных функций
//Полиномы третьей степени
//Neчисло сегментов
//С массив для коэффициентов
//F массив правых частей
//х массив координат узлов
#define Ne 64
void main(void)
{double xO, xl, h, C[3*Ne+l] [3*Ne+l] , F[3*Ne+l], x[Ne+l]; int i , k ;
for(k=0; k<Ne+l; k++) x[k]=xO+h*k; for(k=0; k<3*Ne+l; k++)
for(F[k]=0.0, i=0; i<3*Ne+l; i++) C[k][i]=0.0; for(k=0; k<Ne; k++)
{if(k==0)
{C [3*k] [3*k] =h/3.0;___________________________________________
}
else
{C [3*k] [3*k]=2.0*h/3.0;
F[3*k]= - (cos((k-1)*h)-2.0*cos(k*h)+cos((k+1)*h))/h;
}
C [3*k] [3*k+l] =C [3*k+l] [3*k] =h/3 .0 ; C [3*k+l] [3*k+l]=8.0*h/15.0;
C [3*k] [3*k+2]=C[3*k+2] [3*k]=-h*h/30.0? C [3*k+l] [3*k+2]=C[3*k+2] [3*k+l]=0.0; C[3*k+2][3*k+2]=2.0*h*h*h/105.0;
C [3*k+2] [3*k+3]=C[3*k+3] [3*k+2]=h*h/30.0; C[3*k+3][3*k]=C[3*k][3*k+3]=h/6.0;
C [3*k+l] [3*k+3]=C[3*k+3] [3*k+l]=h/3.0;
F[3*k+l]= - 4 . 0*(cos(k*h)+cos((k+1)*h))/h - 8 .0*(sin(k*h)- s i n ((k+1)*h))/(h*h);
F [3*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;
}
C[3*Ne][3*Ne]=h/3.0;
F[3*Ne]= - (1.0+cos((Ne-1)*h))/h;
// Решение системы линейных алгебраических уравнений G A USS (С, F, 3*Ne+l);
1__________________________________________________________
Реализация алгоритма
Заданный отрезок разбивается на четыре сегмента равной длины
M = G, UG2UG3UG4,
где G, = [0,я/4], G2 = [я/4,я/2], G3 = [тс/2,Зтс/4] и G4 =[3л/4,я]. Заданная функция COSJC представляется разложением (1.2). Соотношения (1.3) принимают вид системы линейных алгебраических уравнений
л л
Е а>J<р*фА= |ф* cosxdx |
(1.15) |
|
' о |
о |
|
|
I |
I |
относительно коэффициентов а,, i = 0,1/2,1/2,1,3/2,3/2,..., 4. Подсчитываются дополнительные значения коэффициентов, от
меченные в приведённой выше системе линейных алгебраических уравнений:
лА2
|фоФ1/2<& = —ттг = —0,020562,
о30
л |
л |
л |
^ФоФз/г^^- = |
|ф о Ф 5/2^ = |
| ф о Ф 7/2^ = 0 i |
0 |
0 |
0 |
я я л л
|ф ,/2 Ф ;/2 ^ = К 2Ф'з/2^= \ (Vn(V'mdX= |ф1/2Ф7/2^ = °;
0 |
0 |
0 |
|
0 |
я |
|
И 2 |
|
я |
/фугФо^ = ”*— = ""0,020562, |
^Фi/2Ф1/2^^ = 0 > |
|||
|(ф;/2 )2 ^ |
= 7^7 = 0,009228, |
/ф ^Ф .Л = ^ = 0,020562, |
||
|
105 |
|
|
30 |
71 |
|
Л |
71 |
л |
|ф1/2Фз/2^ = |
{ф1/2Фз/2^ = |
{ф угФ г^ = |
|ф|/2Ф5/2^ = 0? |
|
0 |
|
0 |
0 |
0 |
я |
я |
я |
я |
Я |
{ф|/гФ5/2^Г= |*Ф1/2Ф3 = ^Ф1/2Ф7/2^^ = |ф1/2Ф7/2^Г= /ф 1/2Ф4 = ^ » 0 0 0 0 0
*г , |
|
(lh2-24)(1-COS/J) |
12sin/? |
|
Гф' |
cosxdx =^----------4} --------- - +}±E1!L = _o,006112; |
|||
о |
|
h |
|
h |
/ф .ф '^Л = ^ |
= 0,020562, |
)ф,фу2^ = ~ 30 = -0,020562, |
||
|
|
71 |
71 |
|
|
|
/ ф l Ф 5/2 d x = |
^ Ф 1Ф 7/2 |
= ^ 5 |
|
|
0 |
0 |
|
я |
|
я |
я |
я |
|фз/гФ1/2^= /ф3/2Ф3 / 2 = /ф3/2ф5 / 2 = /ф 3/2Ф7 / 2 = ®* |
||||
0 |
|
0 |
0 |
0 |
|
я |
я |
я |
|
|
]У3/2Фо<&=|ф'3/2ф|/-2л = | ф;/2ф;/2л = о, |
|||
|
0 |
0 |
0 |
|
я |
|
Н 3 |
|
я |
{фз/гФА |
= - — = -0,020562, |
|фз/2Фз/2 ^ = 0, |
||
J(фз/2)2^ |
= 777 = °’009228’ |
|
/ ф > 2=*0,020562= ^ 7 , |
|
|
105 |
|
30 |
|ф'э/2ф5/2<&= {фз/2ф 5/2^= |ф з/2Ф з^= /ф ,^Ф7/2<Л:= |
{ф 'з/зФ м ^ - / ф 'з /з Ф ^ -0 |
||||
О |
о |
о |
о |
о |
О |
|
\ |
|
(2h2-24) (cos h -cos 2/?) |
12(sin/? + sin2/z) |
ЛЛ1._Г, |
|||||
|
J(p;/2 cos |
|
i |
^ |
------------- - + — ----- --------- 1= -0,014756; |
|||||
|
|
|
]*Ф2Ф|/2^* = О, |
|ф 2Фз/2^ ~ т т = 0,020562, |
||||||
|
|
|
0 |
|
|
0 |
JU |
|
|
|
|
|
|
71 |
|
h2 |
|
\ |
|
= 0 ; |
|
|
|
|
|ф гФ 5/2^ = ------- ~ -0 ,0 2 0 5 6 2 , |
j ф2Ф7/2^ |
||||||
|
|
|
о |
|
30 |
|
0 |
|
|
|
|
n |
|
|
я |
Я |
|
Я |
|
|
|
|
/фб/гФуг^* = |
/ф б/гФ з/г^ = / Ф5/2 Ф 5 /2 ^ = |
/ф 5/гФ 7/2^ = 0» |
|||||||
|
0 |
|
|
0 |
0 |
0 |
|
|
|
|
я |
л |
|
|
|
к |
я |
я |
|
|
я |
|ф5/гФо<^Г = |
J (P5/2(Pl/2C^X = |
|ф5/2Ф1/2^Х:= |ф5/2Ф|<^Х' == |ф5/2Фз/2^= |
JФб/гФз/г^* ^ 0, |
|||||||
0 |
|
0 |
|
|
0 |
0 |
0 |
|
|
о |
|
|
J”Ф5/2 Ф2 |
= |
= —0,020562, |
J"Ф5/2 Ф5/2 |
= 0 , |
||||
|
jj*(ф5/2 |
)2 ^ = 7 ^ 7 |
= 0,009228, |
}ф;/2Ф3^ |
= ^~ =0,020562 |
|||||
|
|
|
|
105 |
|
|
|
30 |
|
|
|
|
|
/ф5/2Ф7 / 2 —]*Ф5/2Ф7/2^ ~ |ф5/гФ4^ “ 0 , |
|
|
|||||
|
|
|
О |
|
О |
О |
|
|
|
|
|
"г л' |
^ |
(2/72 -2 4 )(COS2/Z- |
COS3//) |
12(sin 2А-h sin3/Z) |
|
||||
|
J<p5/2 cosдсЛ= --------- —/ 2---------------+ —Ь*---- ---------- L= -0,014756; |
|||||||||
|
Г |
|
|
Л |
|
71 |
|
h2 |
|
|
|
|фзФ ^2^= |фзФз/2^ = 0, |
|ф 3ф'5/2с& |
= — = 0,020562, |
|||||||
|
O |
|
n |
|
|
n |
|
30 |
|
|
/фзФ'т/з^ = - — = -0,020562;
n |
з и |
Таблица 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 |