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

(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) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (54)

Пример. Для fr = 35O0 кГц, fnp = 465 кГц, fmin = 2985 кГц, fmax = 3085 кГц получим fci=3035 кГц (т = л=1) через 40 с, /с2=2Э94,166 кГц (от = 5, п = 6) - примерно через 5 мни.

4.4. Нелинейное программирование

Численному результату решения многих задач можно поставить в соответствие вещественную функцию, называемую целевой и принимающей минимальное значеиие при требуемых (оптимальных) значениях искомых переменных. Целенаправленный поиск таких оптимальных значений переменных по минимуму целевой функции относится к математическому программированию, не имеющему непосредственного отношения к программированию ЭВМ.

Основная задача математического программирования (задача численной оптимизации) формулируется следующим образом: найти оптимальные значения переменных X=[Xi хч ... Хп], соответствующих минимуму целевой функции Ф{Х1, Х2, Хп)=Ф(Х) при ограничениях в виде равенств Hi(X)=0 и неравенств Gf{X)>Q. (При отсутствии ограничений решение рассматриваемой задачи называют безусловной оптимизацией.) Если целевая функция нли хотя бы одно из ограничений нелинейны относительно оптимизируемых переменных, то задачу оптимизации решают методами нелинейного программирования [12, 17].

В пространстве оптимизируемых переменных каждой точке X соответствует конец направленного в эту точку из начала координат вектора Х= [xi Xz ... Хп] и определенное значение целевой функции Ф(Х). Большинство итерационных Методов нелинейного программирования основано иа выборе для каждой итерации определенного направления в пространстве переменных и одномерного поиска вдоль этого направления минимума функции Ф(Х). Многократное повторение таких итераций приводит к локальному или глобальному (наименьшему из всех) минимуму целевой функции ттФ (X) ==Ф (X), которому соответствует искомый оптимальный вектор или оптимум X.

Простейшая задача одномерного поиска заключается в минимизации функции Ф(х) одной переменной х и, подобно решению нелинейных уравнений, сводится к определению интервалов нахождения минимумов, их отделению и уточнению. Так как целевая функция может иметь несколько минимумов, то для их отделения необходимо использовать программы для построения графика функции или (для сокращения затрат времени) определения возможно узких интервалов аргумента, соответствующих минимумам и расположенным между ними максимумам функции Ф(х), которые уточняются для опре.челеиня оптимума х* с требуемой точностью. Среди различных методов отделения и уточнения опти-мумов [12, 15, 17] при использовании ПМК наиболее подходящим является метод равномерного поиска, отличающийся простотой программной реализации. Си заключается в последовательном вычислении значений функции Ф(Х1) с шагом Ах до изменения знака приращения AФ{Xj)=Ф{Xj)--Ф(X-) на границе оптимума шириной 2Ах (соответствующего экстремуму функции) со средним значением x==(xi~Ax)-±.Ax. Для уточнения х* принимают шаг Ах=-Axja, что обеспечивает поиск с меньшим шагом (а>1) другой границы интервала оптимума ДО его сужения в соответствии с требуемой точностью определения х*.



Программа 192. Отделение и уточнение интервалов аргумента х, соответствующих экстремумам функции Ф(х):

ИП7 ИП8 + П8 ИПЭ - х<0 10 ИП8 С/П ... ИП5 П5 - ИП6 П6 X х<0 00 С/П БП 00

Инструкция. Заменить миоготочие фрагментом вычисления Ф(х) при х=Р8 и использовании регистров, кроме 5...9; иижияя граница отрезка аргумента л:о = Р8, верхняя граница Ха,лх = Р9. шаг поиска Л.яс=Р7, 0=Р5 = Р6 БП 1 О С/П РХ=л;, Р5 = Ф(л:,), Р6 = ЛФ, Р7 = Лл; ... С/П РХ=*„ РЪФ(х,), Р6 = АФ(л:,), Р7 = Лл: (Xj - верхние границы интервалов аргумента, соответствующие поочередно максимумам и минимумам, при нижней границе х,-2Ах; если при хХо функция возрастает, то Х[-граница первого максимума, если ЛФ<0, то Х\ = Х(,-\-Ах) ... С/П РХхХгаа.х; ДЛЯ уточнення оптимума принимать ЛФ = = ДФ (ИП6/-/Пб);Лл;=-Лл:/а (ИП7 а /-I Н- П7) С/П до требуемого сужения интервала аргумента; оптимальное значение а = 5.

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

Программа 193. Определение токов и напряжений в экстремальных областях -статической характеристики туннельного диода

Сх П6 П8 П9 ИП7 ИП8 + П8 ИПС X е" ИП8 X ИПА X ИП8 ИПД X е" 1 - ИПВ X + ИПЭ П9 - ИП6 П6 X х<0 04 ИП8 С/П БП 04

Инструкция. (Л1 = РА, Л2 = РВ,--а1 = РС, а2-=РД) \U = Р7 В/О С/П РХ = Р8 = [/„ах. Р9 = /тах. !Р6 = Л/„ах С/П PX = P8 = {7„i„, Р9 P6 = A/n,in (время одной итерации около 11 с); для уточнения интервалов опти-мумов MJ=-\Ula (ИП7 /-/ a-f-n7) Л/=-Л/ (ИП6 /-/ П6) до достижения требуемой точности.

Пример. Для Л1 = 5,43656-10-2 дц А2 = 2,18743.10- д, „1 = 10 В" ; а2 = б!493498 В" при Л[/=0,02 получим (/«63 с) {/„ах = 0,12 В, /„ах = ==Г,9672 мА, А/„ах = 0,0345 мА или uG,\±(i,02 В, Cx = /max + AW= = 2 мА и (/«.4 мин 15 с) t/mi,, = 0,62 В, /„,!„= 0,1889 мА, A/in = - -0,0025 мА или [/;!;„„ = 0,6±0,02, /i„ = /n,in-f A/„in = 0,1863 мА; для уточнения минимума примем АС =-0,02/5=-0,004 и получим (/»; 60 с) Cmin - = 0,592 В, /min = 0,18641428 мА, Л/т1п= -0,00013797 мА,

Базовая программа 192 может быть также использована для определения экстремальных областей функций нескольких переменных. Для этого одномерный поиск областей экстремума одной переменной многократно повторяют при изменении иа величины Axi остальных переменных [15].



Если интервал оптимума известен (поиск максимума функции может быть заменен поиском минимума обратной по величине функции), то уточнение оптимального значения дс* можно полиостью автоматизировать, обеспечив автоматическое изменение шага Ах=-Ах/а при достижении границы интервала с прекращением вычислений по условию Л.яс8, где е - малая величина, определяющая требуемую точность.

Программа 194. Минимизация функции Ф(,х) методом равномерного поиска с предельной абсолютной погрешностью е оптимума х

я 10" П9 ИП7 ИП8 + П8 ...

ИП9 П9 - х<0 05 ИП7 /-/ а П7 х2 ИПб - х<0 05 ИП8 С/П

Инструкция. Заменить многоточие фрагментом вычисления Ф{х) при jf=P8 с использованием регистров, кроме 6...9, и символ а - оператором набора делителя шага (целесообразно выбирать а=5); Дд;=Р7, хо-Р8, (е/а)2=Р6 В/О С/П РХ=л;, Р9=Ф(л;*), Р7=Ах\

Так как интервал оптимума равен 2Ах (при интервале шириной Ах точное значение оптимума может оказаться вне интервала [17]), то уточненное значение Ху. =х*-Ах*Ах*. Начальный фрагмент в программе 194 обеспечивает начальное значение Ф{Х1,), заведомо большее значения Фхо+Ах), и, следовательно, значеиие ДФ>0 после первого шага.

Пример. Для определения корней многочлена Ф{х)=х-{-2х-\-\ с неотрицательным значением во всем интервале аргумента при а=5, Л.яс=0,1, Xf,=-2, е=0,001 или (e/5)i=4-10-« получим л*=-1,0008, Ф(л*)=6-Ш-, Дд;* = 1,6-10"* (<«2 мин). Следовательно, вещественные корни четной кратности могут быть найдены по минимуму невязки уравнения, а вещественные корни произвольной кратности - по минимуму модуля или квадрата Ф(х).

В качестве иллюстрации решения других задач рассмотрим определение наибольшей крутизны g=dI/dU падающего участка статистической характеристики туннельного диода, аппроксимируемой функцией (4.4). Задача сводится X поиску максимального значения

gr = / ((/) = Л1 (1 -а, (7) ехр (-а, (/) + «2 ехр (а U)

или минимума целевой функции Ф(1/) = (l/g)2.

Программа 195. Вычисление максимальной крутизны imaij падающег» участка статической характеристики туннельного диода и соответствующего ей яапряжеиия

П7 я х2 х" Ю П9 ИП7 ИП8 -f П8 ИПС X е" ИПА X ИПС ИП8 х 1 + X ИП8 ИПД X е" ИПД X ИПВ х + х2 1/х ИП9 П9 - х<0 06 ИП7 /-/

5 П7 х2 ИПб - х<0 06 ИЛ9 V

1/х С/П

Инструкция. (i = PA, Л,=РВ, -а,=РС, а2=РД) t/o = P8, (е/5)2= = Р6, Ai/ = PX В/О С/П РХ=гтах, Р9=и*, P7=At/*.



(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) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100)