Главная -> Книги

(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) (32)

Программа 5.36. Нахождение производной при пяти ординатах:

V :5 V + 3p2-Sp-4 V + 3P2-P-. у

Ввод: j( 2 = Р2, У-1 = Р1, Jo = РО, у+1 = РА, j(+2 = РВ, h = Р9, jto = Р8 и X = РХ.

. Для у-2 = 0,35889029, jf-, = 0,35553253, уо = 0,35206533, у+, = 0,34849251, j/+2 = 0,34481800, дго = 0,5, h = 0,02 и л; = 0,51 получим у{х)= -0,1786488, а для л; = 0.5 получим у{х)= -0,17603265 при точЕЕОм значении -0,17603266. В этом и двух предшествующих примерах вычислялись производные функции у (х) = Z (л;) = e~*V /2n нормального распределения вероятностей по округленным данным таблиц [3].

Если нужно найти у{х) только в узлах интерполяции, формулы численного дифференцирования резко упрощаются. Например, при трех ординатах и р = О

yixo)-={y+i-y-.i)l2h, (5.26)

а при пяти ординатах и р = О

у{хо) = (У-г - Sy-t + 8y+i - У+г)/т. (5.27)

ИЕЕогда, используя эти формулы, целесообразно вычислять у[х = хо) аналитически заданной функции, производную которой нежелагельно или сложно найти в аналитическом виде. При этом вычисления ординат у(х) оформляются подпрограммой.

Программа 5,37. Вычисление производной функции y = f{x), заданной аналитически ло формуле (5.26). Ввод: данные f{x), hlxt,= = PC н хо = РХ.

ПД ИПС XY -f- ПВ ИПД ИПВ - ПП 29 ПА ИПД ПП 29 С/П ИПД ИПВ + ПП 29 ИПА - 2 -г ИПВ ч- С/П БП 00 ... ... •........................ В/О



Так как значения Ха могут меняться в широких пределах, то задается не абсолютное изменение х, а относительное Ах/ха = h./xa. Значение h/xo для гладких функций на практике легко оценивается.

Пусть надо вычислить производную функции у{х) = Z(x) ~

Q-xl22n в точке хо = 0,5 при h/xo = 0,01. В текст программы вписываем подпрограмму вычисления Z (х): Fx 2 /-/ ~ Fe* Ря 2 X F V~ Нажав клавиши В/О и С/П, получим значение

Z (0,5) = 0,35206532, еще раз нажав клавишу С/П, получим Z(0,5) =-0,1760005 при точных значениях 2(0,5) = 0,35206533 и Z(0,5) = -0,1760327 соответственно.

Программа 5.38. Вычисление производной аналитически заданной функции f{x) в точке х = Ха по пяти ее ордината.м с помощью формулы (5.27). Ввод: h/xo = PC и ха = РХ.

Для приведенного выше примера получим 2(0,5) = 0,35206532 и Z(0,5)=-0,1760325.

5.8. Вычисление частных производных и коэффициентов чувствительности

Нередко необходимо найти частные производные функции f(x, у, г, ...) нескольких переменных при х = Хо, у = уо, г = г» и т. д. В отличие от численного дифференцирования по одному параметру, при вычислении частных производных необходимо выбирать один изменяемый параметр и фиксировать значения остальных параметров. Это можно обеспечить с помощью косвенной адресации регистров памяти, отведенных под ввод соответствующих параметров. Например, если хо = Р1, t/o = Р2, го = РЗ и т. д., то программу можно составить так, чтобы указание номера регистра (кода переменной), например цифры 2, при вычислении dflCij г т. д. непосредственно указывало на то, по какому параметру выполняется дифференцирование. В конце вычисления параметру присваивается исходное значение.

Программа 5.39. Вычисление частных производных аналитически заданной функции f{x,y,z,...) по трем ее ординатам. Ввод: h = PC, данные f{x, у, z, ...), коды переменных.

ПД КИПД ПА ИПС - КПД ПП 27 ПВ ИПА ИПС -Ь КПД ПП 27 ИПВ. 2 ИПС

-г- ИПА КПД XY С/П БП 00 ...... В/О



Пусть надо найти частные производные функции

fix, у, Z) = 2x2 jy2 ху - 2хг, (5.28);

прн х = хо = 0, у = Уо = О и г = Zo = 1. Фрагмент программы вычисления функции fix,у,г) при х = Р1, i/ = Р2 и г = РЗ:

ИП1 Fx2 2 X ИП2 Fx + ИПЗ Рх» 3 X - ИП1 ИП2 X 3 X - ИП1 ИПЗ X 2 X -

Вводим программу с этим фрагментом и исходные данные: h = 0,001 = PC, о = PI, о = Р2 и 1 = РЗ. Для вычисления dfldx набираем цифру 1 (код переменной х) и, нажав клавишу С/П,. получим результат dffdy = -2 при » 20 с. Набрав цифру 2 (код переменной у) и нажав клавишу С/П, получим dfjdy = 0. Наконец, набрав цифру 3 (код переменной г), получим dfjdz = -6. Эти значения полностью совпадают с точными.

Программа 5.40. Вычисление частных производных аналитически заданной функции / (х, у, г, ...) по пяти ее ординатам. Ввод] h = PC, данные f{x, у, z, ..коды переменных.

ПД КИПД ПА ИПС - КПД ПП 53 ПВ ИПА

ИПС + КПД ПП 53 ИПВ - 8 X ПВ

ИПА ИПС 2 X - КПД ПП 53 ИПВ +

ПВ ИПА ИПС 2 X + КПД ПП 53 ИПВ

XY - 12 ИПС ИПА КПД XY

С/П БП 00 .................. В/О

Работу этой программы можно проверить по приведенному выше примеру.

Нередко переменные функции /(х, у, г, ...) имеют резко отличные исходные значения. В этом случае целесообразно задание относительного изменения h/p каждой переменной р (р = х, у, г, ...).

Программа 5.41. ВычислсЕше частных производных аналитически заданной функции /(х, у, г, ...) по трем ее ординатам при задании относительного приращения hip каждого параметра. Ввод: h/p = Р9, данные f{x. у, г, ...), коды переменных.

ПД КИПД ПА f ИПС X - КПД ПП 34 ПВ ИПА i ИПС X + КПД ПП 34 ИПВ - 2 ИПС -т- ИПА ПВ ИПА КПД ИПВ С/П БП 00............ ... В/О

Для приведенного выше контрольного примера получим при h/p = = 0,01, Хо = 1, </а = 2 н гэ = 3 значения df/dx = -8, df/dy = I н df/дг = -20, которые ташке совпадают с точными значениями.



(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)