Вторая пачка часть 126


Например, при использовании ин-тер¬по¬ляционной схемы Ла¬гран¬жа, при¬спо¬соб¬лен¬ной для осредненных квадратных трех¬членов (akx2 + bkx + ck), где , , , , производная может быть вычислена при m = 3, k = 1, 2 для функции, определенной в точках 1, 2, 3, 4 пу¬тем усред¬нения коэффициентов пара¬бол, про¬ве¬ден¬ных че¬рез точки 1, 2, 3 и 2, 3, 4: y'(x2) = 2ax + b, a = (a1+ a2)/2 , b = (b1+ b2)/2, c = (c1+ c2)/2 . Интерполирующий многочлен, построенный по двум па¬раболам, в этом случае будет вы¬чис-лять¬ся по фор¬муле F2(x) = (ax2+ bx + c). Ин¬тег¬ри¬ро¬ва¬ние про¬из¬во¬дится путем осреднения ин¬те¬гра¬лов от парабол меж¬ду границами не¬за¬висимых ко¬о¬рдинат, т.е. для каждого ин¬тер¬вала вдоль аб¬с¬ц謬с¬сы, поскольку полученные ре¬зуль¬таты на¬кап¬ли¬ва¬ют¬ся для вычисления опре¬де¬лен¬но¬го интеграла. Рассмотренный алгоритм реализован в про¬це¬ду¬ре DI¬FINT, которая в зависимости от способа об¬ра¬ще¬ния к ней вы¬¬полняет интерполяцию, диф¬фе¬рен¬цирование или ин¬те¬гр謬рование функции од-ной пе¬ременной. Формальные параметры про¬цедуры. Входные: x[1:n], y[1:n] (тип real) - массивы таб¬лич¬ных значений ар¬гу¬¬мен¬та и функции, причем зна¬чения xi расположены в во第рас¬тающем порядке и xi xj для i j; jt (тип integer) - пବраметр, за¬да¬ю¬щ¬ий операцию: при jt = 1 вы¬пол¬ня¬ется ин¬¬тер¬по¬ли¬ро¬вание, при jt = 2 и jt = 3 со¬от¬вет¬ствен¬но диф¬¬ф嬬рен¬ци¬рование и интегрирование; xk (тип real)- точ¬ка, для ко-торой строится по¬ли¬ном или вычисляется приз¬вод¬ная, при xk ??[x1,xn-1] осуществляется опе¬ра¬ция эк-стрବпо¬ли¬ро¬ва¬ния, при jt = 3 значение xk не¬су¬щест¬вен¬но; x1, x2 (тип real) - нижний и верх¬ний пределы ин¬те¬гр謬ро¬вания, в случае jt = =1, 2 зна¬че¬ния x1, x2 не¬су¬щест¬вен¬¬ны. Выходные: res (тип re¬al) - зна¬че-ние результата. PROCEDURE DIFINT (X,Y:MAS1;N,JT:INTEGER; XK,X1,X2:REAL; VAR RES : REAL); VAR CA,CB,CC,A,B,C,S1,S2,T1,T2,T3,SUM : REAL; J,JS,J1,J2,I : INTEGER; LABEL ST,INT,TERM,NO5,NO6,NO9,INTRP,DIFF, NO17, LAGR; BEGIN ST: IF JT=3 THEN GOTO INT; IF XK > X[N-1] THEN BEGIN J:=N-1; JS:=1; GOTO TERM END; IF XK < X[2] THEN BEGIN J:=2; JS:=1; GOTO TERM END; {***** ОПРЕДЕЛЕНИЕ МЕСТА АРГУМЕНТА В ТАБЛИЦЕ *****}; JS:=2; FOR I:=2 TO N DO BEGIN IF XK < X[I] THEN GOTO TERM; J:=I; END; NO5: CA:=A; CB:=B; CC:=C; JS:=33; J:=J+1; GOTO TERM; NO6: A:=(CA+A)/2; B:=(CB+B)/2; C:=(CC+C)/2; NO9: IF JT=2 THEN GOTO DIFF; INTRP: RES:=XK*(A*XK+B)+C; RETURN; DIFF: RES:=2*A*XK+B; RETURN; INT: SUM:=0; S1:=X1; J1:=2; J2:=N; FOR I:=1 TO N DO BEGIN IF X1 < X[I] THEN GOTO NO17; § 6
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz