Главная -> Книги (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) (26) Ввод: ft = Р9, t;-i, t/o, У+ь J+2, JCo и jc в регистр X. ni С/П П2 С/П П7 ИПЗ - ИПЭ - П5 3 -т- ИПб 1 ИП1 X ИПб Fx X + ИПб 1 X - ИПА ИПб X БП 09 ПЗ С/П П4 С/П П8 С/П 4- Пб 2 - 2 - X ИПб /-/ X - ПА ИПб X ИП2 ИПб X ИПб X ИПЗ 6 -т- ИП4 X + Для приведенного выше примера при А = 0,1, y-i = 0,934, уа == = 0,9523, у+1 = 0,9661, у+г = 0.9763, JCo = 1,4 и л: = 1,43 получим (/(1,43)= 0,9568716. Программа 5.8. Интерполяция при пяти произвольно расположенных узлах по формуле У (х) = (X - Хз) + Вз](х - Х2) + Вг] {х ~ х,) + В,] (х - Хо) + Во. Ввод: хо -г X4 = РО -г Р4, (/» = РЭ, 1/1 (/4 = РА РД и х= РХ (после пуска и индикации цифры 0). Коэффициенты Во, BjВг заносятся в регистры 9, А Д.
в табл. 5.1 даны значения функции у (х) = Фо (JC) = ~ V2Jx „S Таблица 5.1
в узлах интерполяции и вычисленные по данной программе значения Во, Ч- Bi. При X = 2,45 получим г/(2,45) = 0,49285719 при точном значении 0,4928572. Программа 5.9. Интерполяция при пяти равноотстоящих узлах по формуле , (р-1)р(р-2) (р-1)р(р-4) , (p- 1)(р2-4) (рн- 1)р(р-4) (р-1)р(, + 2) 3,
Для приведенного выше примера, взяв хо = 2,4 и г/о=0,4918025, для X = 2,45 получим г/(2,45) = 0,49285719. Программа 5.10. Интерполяция при шести равноотстоящих узлах по формуле , р(р--1)<р2-4)(р- 3) (р- 1)(р2-4) (р-3) -1 24- -1 12 0 , р(р+ 1)(р-4)(р-3) р(р2-1)(р + 2)(р-3) Т 12 + 1 24 + 2"1" р(р2- 1)(р2-4) 120 +3* Ввод: .«о = Р8, /1 = Р9, г/ -2 = Р2, г/ , = Р1, г/о = РО, г/+1 = РА, +2 = РВ, г/, = PC и д; = РХ. П7 ИПЗ - ИПЭ ч- П7 Fx \ - ПЗ 2 4 -т- ПД ИП7 3 - X ИП7 /-/ X П4 ИП7 2 X 5 ч- ИП2 X ИП7 Fx 4 -, П5 ИП7 3 - X »
2 н- Пб ИП1 X ИП7 1 + ИП4 ИП7 2 X ИП5 X 00 Для контроля этой программы воспользуемся табулированными данными функции Р{х) нормального распределения вероятностей [3] при х-2 = 0,5, х-1 = 0,6, Хо = 0,7, Л-+1 = 0,8, х+г = 0,9, х+з = 1,0 (т.е. «0 = 0,7 и Л=0,1). Для этих значений х имеем г/ 2 = 0,6914625, = 0,7257469, уо = 0,7580363, г/+, = 0,7881446, (/+2 = 0,8159399 и г/. з = 0,8413447. Введя эти данные и положив х = 0,86 = РХ, найдем р(0,86) = 0,80510553 при известном точном значении 0,80510547 и /с » I мин. » Программы, обеспечивающие интерполяцию функции у(х) при-произвольном расположении узлов, могут использоваться и для обратной интерполяции, т.е. нахождения значений х при заданном у. Для этого значения xi в узлах интерполяции заносятся в регистры, отведенные под запись yi, а зиачення yi - в регистры, отведенные под запись Xi в узлах. Приведенные выще программы обеспечивают минимальное время интерполяции благодаря вычислению коэффициентов полиномов Лагранжа по готовым формулам с заранее вычисленными членами, содержащими факториалы. Однако при этом для каждого л приходится использдвать свою программу. \ В [22] описаны универсальные программы для интерполяции полиномами Лагранжа и Ньютона (л < 6 при произвольном и л 10 при равномерном расположении узлов), а также кубическими сплайнами. Однако время интерполяции по ннм велико (в 3-4 раза больше, чем по описанным выше программам). Поэтому подобные программы удобнее использовать для представления (аппроксимации)функций степенными полиномами (см. § 5.13). 5.3. Интерполяция и экстраполяция функций двух переменных , . . Часто встречаются функции \{х,у) двух переменных у и х. Ограничившись доступными для микрокалькуляторов Электроника БЗ-34 методами интерполяции и экстраполяции функций f{x,y) с постоянным шагом /г = Дх и = Дг/ [3], введем наряду с параметром р = {х - xo)lh параметр 9 = (г/ - yo)/k. (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) |
|