Доставка цветов в Севастополе: SevCvety.ru
Главная -> Справочник по алгоритмам

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [32] 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78

4p=-3p-8p + 4 2p=-5p --г-y->+-о-У"~

4p-+3p -8p-

- „ I 2рЧЗр-р-1

-{/iH--To--{/2

В этих формулах p=(x -хс) г и x = xo+ph. Вычисление 1/(х) по последней формуле реализовано программой 4.32, в которой ординаты у2, У-\, Уо, У] и у2 обозначены как А, В, С, D и Е.

Программа 4.32.

Формулы численного дифференцирования для узлов у(х) существенно проще приведенных, так как в узлах Р принимает фиксированные значения. Особенно простыми являются формулы для центрального узла (Р = 0) (см. табл. 4.1).Эти формулы удобны для численного дифференцирования таблично заданных функций в точке х=хп.

Частные производные функции ряда переменных /(Х, JC2, .... х„) вычисляются по приведенным выще формулам, если задавать приращение одно:й из jiepeMCHHbix и оставлять неизменными (равными заданным значениям) остальные переменные.

Анализ чувствительности функции f{xi, Х2..... х„) к изменению ее параметров х,.

100 110

10 PRINTВЫЧИСЛЕНИЕ ПЕРВОЙ ПРОИЗВОДНОЙ/ТнБЛИЧНО ЗнДйННОй

20 PRINTN=3-5 ОРДИНАТАМИ ФУНКЦИИ ПРИ РАВНОМЕРНОМ

30 PRINTРАСПОЛОЖЕНИИ УЗЛОВ ИНТЕРПОЛЯЦИИs PRINT"

40 INPUTВВЕДИТЕ X0=W!INPUTВВЕДИТЕ ШАГ Н=Н

50 INPUTЗАДАЙТЕ ЧИСЛО ОРДИНАТ Н=Н

60 IF N=3 GOTO 100

re IF N=4 GOTO 110

80 IF N=5 GOTO 120

INPUTПОВТОРИТЕ ВВОД N=N:GOTO 66 INPUTBBEAHTE ОРДИНАТЫ V-l, VO, VI A, B..C:GOTO 130 INPUTВВЕДИТЕ ОРДИНАТЫ V-bVO/VI/V2A,B.-C.,IisGOTO 130 INPUT ВВЕДИТЕ ОРДИНАТЫ V-1V- Ь V0, V1V2 А.» В, С, В.. E INPUTBBEAHTE :»:=Xs LETF-tX-MVH 140 IF N=4 GOTO 180 150 IF N=5 GOTO 210 160 LETF=<;CP-.5>жА-2жржВ+<;р+. SwO/H 170 PRINTDVVDy,= F: GOTO 130

180 LETF= t - С Зжр*Р-6жР+г ) т-Ь+ < ЗжРжР-4жр- l)wBy2>

190 иЕтЕ=<;-<зжржр-гжр-г>жсг+<зжр*р-п*Вь>

200 LETF=*;F+E)/-H:G0T0 170

210 LETF= ( < < гжр-3 ) жр-1 > жр+1 ) *А>--12

220 1£ТР=Р-«;<;(4жр-3>жР-8>жр+4>жВ--6

230 ЬЕТР=р+<гжржр-5)жржс/-г

240 LETF=F-<;< <;4жР+3>жр-8>жр-4>жП-6 250 LETF=F+< ( (2жр+3>жр-Пжр-1 >жЕ.1г 260 LETF=F>-H:G0T0 178: END

П р" и м е p. Найти производную у{х) в точке лг = 0,51 функции у(х), заданной при ,vii = 0,5 и /г = 0,02 пятью значениями у1:у-} = = 0,35889029. у , = 0,35553253, у о = = 0,35206533, 4(1=0,34849251 и ;У2 = 0,344818. Введя эти данные, получим у(0,51)= = -0,1786491875.

Х2, .... х„ основан на вычислении абсолютного приращения функции по формуле

.V(.V..Vo, ...:.v„) =

.V., + ... +

Ах„,

Таблица 4.1

Формулы численного дифференцирования (производные в центральных узлах)

Число узлов

Производные

Погрешности

</=(!/-!/-)/2Л y"={y,-2yo+y-i)/h

-AV /12

y=.(-y2 + 8y,-8yLt+y-2)/\2h

v"=(- г>216v 1 - 30 vo-F16v , - V 2)/12ft

.V" = CV2-2.v, --2.v , -{/ 2)/2ft=

{/ = (.V3-9v2 + 45vi -45v-, -(-9v 2-{/ 3)/60A

V" = (2(/3 - 27.Vj.-- 270v, - 490.% + 270.v , - 27.v 2 -I- 2(/ :,) /1 ЫИг

.V" = (- .V3 + 8(/2 - 13.V, 13.V , - 8v 2 + .V- з)/8

7 ft v/120



Где коэффициенты df/dxi являются абсолютными коэффициентами чувствительности к изменению параметра jc,. Применяют и относительные коэффициенты чувствит1ельности

ит -МП. (4.24)

dXi/x,. Axi/Xi

С их помощью легко вычисляется относительное приращение функции при заданных относительных изменениях параметров (переменных) Axi/Xio:

д/ .. •

(, Axi Ах-, , „ Ахп

Вычисление трех частных производных и относительных коэффициентов чувствительности функции f{xi, Х2.....Хп) ряда переменных можно организовать следующим образом.

1. Будем считать переменные х,. лгг, .... Хп переменными массива Х{1) и организуем ввод числя переменных Л и начальных значений переменных xw, хю, х„о.

2. Вводим приращение Ах = И.

3. Организуем цикл вычислений частных производных по каждой переменной с управляющей переменной 2, .... N. Внутри

цикла задаем Х1=(хю-2Н), (хю - К).....

(а-,( + 2Л) (для 5 узлов) и для этих значений Xi, обращаясь к подпрограмме вычисления

f(xi. Х2.....х„), находим ординаты \.2~У-2,

/ 1=1/ ....., /2=1/8- После этого вычисляем

производные )(х1в)у(хц, f"(xm)=y"(xia), f"{Xif,)=y"{xm) по формулам табл. 4.1 и коэффициенты Si (4.24) и выводим их на печать.

4. После выхода из цикла идем к п 2 н повторяем вычисления (если это необходимо).

При yV=l по этому алгоритму вычисляются три производные и коэффициент S функции одной переменной f{x).

Программа 4.33.

Пример. Найти три производные функ-ции ндрмального распределения i{x)=f{x) = - е " /-\l2n в точце Хс=0,5. Подпрограмма вычисления f {х) при л:=Х(1) записывается со строки 400. Задав .Н = 0,001, получим Выдачу в виде

D1F/DX1 = -1,760326635- Ю",

D2F/DX2= -2,640406667- Ю",

D3F/DX3 = 4,845-10-,

S=-2,500000002 .10-,

F(XI0)=3,3520653268-10.

Точные значения производных и функции f(xo):

Л. dx

= -0,1760326633,

i-=-0,2640489951,

-=.= 0,48408982, . •

/(xc)=0,3520653267. •

Если значения хю, хю, х„о сильно различаются, то для повышения точности численного дифференцирования целесообразно задавать не абсолютные приращения Axi - h, а относительные p=Axi/Xio. Тогда при вычислениях п. 3 в описанном выше алгоритме нужно задавать абсциссы (л:,( -2рдг,(1), (хт-рхт), .... (Xi»-\-2pxia). Кроме того, в этом случае

S,==(dUldxi)lp.

Программа 4.34.

Работу этой программы можно проверить по примеру, приведенному выше для программы 4.33 (при р = 0,002 получим аналогичные результаты).

Подобные программы могут быть составлены и для численного дифференцирования аналитически заданных функций по 7 точкам.

10 PRINTВЫЧИСЛЕНИЕ ТРЕХ ЧАСТНЫХ ПРОИЗВОДНЫХ И 20 PRINTОТНОСИТЕЛЬНОГО КОЭФФИЦИЕНТА ЧУВСТВИТЕЛЬНОСТИ 30 PRINTФУНКЦИИ F<XI) РЯДА ПЕРЕМЕННЫХ/ ЗАДАННОЙ 40 PRINTS ОРДИНАТАМИ-ПОДПРОГРАММА СО СТРОКИ 400 50 INPUTВВЕДИТЕ ЧИСЛО ПЕРЕМЕННЫХ N=N 60 DIM X<N)fA<N)/B<N)/C<N)/S<N)!FOR 1=1 ТО N 70 PRINT!2.0!ВВЕДИТЕ НАЧАЛЬНОЕ ЗНАЧЕНИЕ Х<1) 80 INPUT Х<1>: NEXT I . 90 1НРиТЗАДАйТЕ АБСОЛЮТНОЕ ПРИРАЩЕНИЕ Х<1> Н=Н 100 FOR 1=1 ТО N!LETX<0)=X<I)

110 LETX<I)=X<0)-2*H!GOSUB 400:LETF2=F!6OSUB 400!LETF1=F 120 GOSUB 400:LETF0=F!GOSUB 400:LETE1=F:GOSUB 400:LETE2=F 130 LETX< I )=X<0): LETA< I )=<-E2-b8*El-8*Fl-HF2)/12/H 140 LETSCI)=A<I)*Xa)/F0

150LETBa)=<-E2-H6*El-30*F0-H6*Fl-F2)/12/H/H

160 LETC<I)=<E2-2*El-b2*Fl-F2)/2/H/H/H!NEXT I

208 FOR 1=1 TO Н:РР1НТ!2.0!ДЛЯ ПЕРЕМЕННОЙ X<I)

210 PRINT!F1.9!D1F/DX1=A<I)

220 PRINTD2F/DX2=B<I):PRINTD3F/DX3=C<I)

230 PRINTS=S<I):NEXT I

240 PRINTЗНАЧЕНИЕ ФУНКЦИИ F<XI0)=F0:GOTO 90 400 LETF=EXP<-X< 1 )2/2)/SeR<2*#PI) 410 LETX<I)=X<I)-hH!RETURH:END



Программа 4.35.

18 PRINTВЫЧИСЛЕНИЕ ТРЕХ ЧАСТНЫХ ПРОИЗВОДНЫХ и

20 PRINTОТНОСИТЕЛЬНОГО КОЭФФИЦИЕНТА ЧУВСТВИТЕЛЬНОСТИ

30 PRINTФУНКЦИИ F<XI) РЯДА ПЕРЕМЕННЫХ/ ЗАДАННОЙ

40 PRINTАНАЛИТИЧЕСКИ-ПОДПРОГРАММА СО СТРОКИ 408

50 ШРиТВВЕДИТЕ ЧИСЛО ПЕРЕМЕННЫХ N=N

60 DIM X(N)/A<N)/B<N)/C<N)/S<N)!FOR 1=1 ТО N

70 PRINT!2.0!ВВЕДИТЕ НАЧАЛЬНОЕ ЗНАЧЕНИЕ Х(1)

80 INPUT Ха)! NEXT I

98 INPUTЗАДАЙТЕ ОТНОСИТЕЛЬНОЕ ПРИРАЩЕНИЕ Xd) Р=Р 100 FOR 1=1 ТО N!LETX<8)=X<I)!LETH=X<8)*P 110 LETX<:i)=X<0)-3*H!6OSUB 488!LETF3=F

120 GOSUB 480!LETF2=F!GOSUB 400!LETF1=F!&OSUB 4e0!LETE0=F

130 GOSUB 400!LETE1=F!GOSUB 400!LETE2=F!GOSUB 480!LETE3=F

140 LETAa)=<E3-9*E2+45*El-45*Fl+9*F2-F3V60/H

158 LETB<I)=2*E3-27*E2+278*E1-498*E8

168 LETB a >=< В < I) +278*F 1 -27!*F2+2!*F3 ) / 18e/< H*H )

178 LETCa)=<:8*E2-E3-13*El+13«Fl-8*F2+F3)/8>-4H"3)

188 L£TS<I)=A<I)*X<e)/E0!LETXa)=X<0):NEXT I

200 FOR 1=1 TO N!PRINT!2.0!ДЛЯ ПЕРЕМЕННОЙ Х<Г)

210 PRINT<F1.9!DlF/DXl=Aa)

220 PRINTIGF✓ГХ2=B<I)!PRINTГЗР/ПХЗ»C<I>

230 PRINTS=Sa)!NEXT I

248 PRINTЗНАЧЕНИЕ ФУНКЦИИ F<XI0>=E0!GOTO 98 488 LETF=EXP ( -X < 1) -2/2 ) /SOR < 2*#P I) 410 LETXa)=Xa)+H!RETURN!END

Пример. Используя данные програм- S=-2,500000004.10 ,

мы 4.33, получим F{XIO) = 3,3520653268 -10-.

D1F/DX1 = -1,760326636-10"", В этой программе H=consL В приведеи-

D2F/DX2=-2,640489378-10~, ной ниже программе задается Р = Дл:,/дг;с =

D3F/DX3 = 4.840943756-10-, =const.

le PRIHTе:ычисление трех частных производных и

26 PRIHTOTHOCHTEftoHOro коэффициента чувствительности

зе PRINTфункции роа) ряда переменных заданной

40 PRINTAHAлитически-подпрограмма со строки 400

45 PRINTпри задании относительного изменения переменных

50 INPUTBBEAHTE число переменных N=N

60 DIM XCN>/A<N)..B<:N)..CaOrSCN>sF0R 1=1 то N

70 PRINT!2.0!введите начальное значение XCIJ

80 INPUT х<1>: NEXT I

40 INPUTзадайте относительное приращение хп) р=р

166 FOR 1=1 то N:LETX<0)=X<DsLETH=P»X<0)

110 LETX<I)=X<0>-2*H:&OSUB 400:LETF2=F!GOSUB 400:LETF1=F

120 GOSUB 408!LETF0=F:GOSUB 480:LETE1=F!GOSUB 40esLETE2=F

130 LETX(I)=X<0)iLETAa>=(-E2+8»E 1 -8»Fl*¥Z)X2уИ

140 LETS<I)=A<I)*X<I)/F8

150 LETBt I )=<-Е2+16жЕ1-30жР0+1бжР1-Р2V12-H/H

160 LETC<I)=<E2-2i*El+2»Fl-F2>/£/H/H/H!NEXT I

206 FOR 1=1 TO №РК1НТ!2.0!для переменной х<1>

210 PRINT!F1.4iDlF/DXl=A*;i)

220 PRINTD2F---DX2=Ba>:PRINTD3F>-DX.3=Ca>

230 PRINTS=S*;i)!NEXT I

240 PRINTзначение функции F<XI8>=F0!GOTO Эе 480 LETF=EXPС-X< 1) -2--2>-SORС2»#PI > 410 LETX< I )=XCn+H: RETURN! END



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [32] 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78



0.0171
Яндекс.Метрика