Кирьянов Д. - MathCad 11 (1077323), страница 34
Текст из файла (страница 34)
разд. 8.4), выбирать численный алгоритм приближенного решения дляФУНКЦИИ M i n e r r .Пример использования функции Minerr показан в листинге 8.9. Как видно,достаточно заменить в вычислительном блоке имя функции на Minerr, чтобы вместо точного (с точностью до TOL) получить приближенное решениеуравнения, заданного после ключевого слова Given.Листинг 8.9. Приближенное решение уравнения,имеющего корень (к=о,у=О)х := 1к:=10Givenу := 1бк-х2+у2 = ОГлава 8.
Алгебраические уравнения и оптимизация201v := M i n e r r ( х , у )ОЛистинг 8.9 демонстрирует приближенное решение уравнения к-х2+у2=о,которое при любом значении коэффициента к имеет единственный точныйкорень <х=о,у=О). Тем не менее, при попытке решить его функцией Findдля больших к, порядка принятых в листинге, происходит генерация ошибки "No solution was found" (Решение не найдено). Это связано с иным поведением функции f (x,y)=k-x2+y2 вблизи ее корня, по сравнению с функциями, приводимыми в качестве примеров выше в этой главе (см. рис. 8.1, 8.2).В отличие от них, f (x,y) не пересекает плоскость f (х,у)=о, а лишь касается ее (рис. 8.7) в точке (х=о,у=о).
Поэтому и найти корень изложенными впредыдущем разделе градиентными методами сложнее, поскольку вблизикорня производные f (х,у) близки к нулю, и итерации могут уводить предполагаемое решение далеко от корня.Ситуация еще более ухудшается, если наряду с корнем типа касания (см.рис. 8.7) имеются (возможно, весьма удаленные) корни типа пересечения.Тогда попытка решить уравнение или систему уравнений с помощью функции Find может приводить к нахождению корня второго типа, даже еслиначальное приближение было взято очень близко к первому. Поэтому еслиВы предполагаете, что система уравнений имеет корень типа касания, намного предпочтительнее использовать функцию Minerr, тем более, что всегда есть возможность проверить правильность решения уравнений простойподстановкой в них полученного решения (см.
листинг 8.6).Рис. 8.7. График функции k-х +уВ листинге 8.9 мы рассмотрели пример нахождения существующего решенияуравнения. Приведем в заключение пример нахождения функцией Minerrприближенного решения несовместной системы уравнений и неравенств(листинг 8.10). Решение, выдаваемое функцией Minerr, минимизирует невязку данной системы.202Часть III, Численные методы{ПримечаниеjСогласно своему математическому смыслу, функция M i n e r r может применяться для построения регрессии серии данных по закону, заданному пользователем (см.
разд. 15.2).Листинг 8.10. Приближенное решение несовместнойсистемы уравнений и неравенству := 1х := 1Given22x +у =x > 0.1у < -0.2M i n e r r ( х , У) =- 0 . 042- 0 . 085Как видно из листинга, в качестве результата выдаются значения переменных, наилучшим образом удовлетворяющие уравнению и неравенствамвнутри вычислительного блока. Внимательный читатель может обнаружить,что решение, вьщаваемое функцией Minerr в рассматриваемом примере, неявляется единственным, поскольку множество пар значений (х,у) в равнойстепени минимизирует невязку данной системы уравнений и неравенств.Поэтому для различных начальных значений будут получаться разные решения, подобно тому как разные решения выдаются функцией Find в случае бесконечного множества корней (см.
обсуждение листинга 8.6 вразд. 8.3). Еще более опасен случай, когда имеются всего несколько локальных минимумов функции невязки. Тогда неудачно выбранное начальноеприближение приведет к выдаче именно этого локального минимума, несмотря на то, что другой (глобальный) минимум невязки может удовлетворять системе гораздо лучше.8.6. Поиск экстремума функцииЗадачи поиска экстремума функции означают нахождение ее максимума(наибольшего значения) или минимума (наименьшего значения) в некоторой области определения ее аргументов. Ограничения значений аргументов,задающих эту область, как и прочие дополнительные условия, должны бытьопределены в виде системы неравенств и (или) уравнений.
В таком случаеговорят о задаче на условный экстремум.Для решения задач поиска максимума и минимума в Mathcad имеютсяВстроенные функции Minerr, Minimize И Maximize. Все ОНИ ИСПОЛЬЗуЮТ теже градиентные численные методы, что и функция Find для решения урав-Глава 8. Алгебраические уравнения и оптимизация203нений. Поэтому Вы можете выбирать численный алгоритм минимизации изуже рассмотренных нами численных методов (см. разд.
8.4).8.6.1. Экстремум функции одной переменнойПоиск экстремума функции включает в себя задачи нахождения локальногои глобального экстремума. Последние называют еще задачами оптимизации.Рассмотрим конкретный пример функции ffx), показанной графиком нарис. 8.8 на интервале (-2,5). Она имеет глобальный максимум на левойгранице интервала, глобальный минимум, локальный максимум, локальныйминимум и локальный максимум на правой границе интервала (в порядкеслева направо).В Mathcad с помощью встроенных функций решается только задача поискалокального экстремума. Чтобы найти глобальный максимум (или минимум),требуется либо сначала вычислить все их локальные значения и потом выбрать из них наибольший (наименьший), либо предварительно просканировать с некоторым шагом рассматриваемую область, чтобы выделить из нееподобласть наибольших (наименьших) значений функции и осуществить поиск глобального экстремума, уже находясь в его окрестности.
Последний путьтаит в себе некоторую опасность уйти в зону другого локального экстремума,но часто может быть предпочтительнее из соображений экономии времени.IISOfS—" * \0\.- 3D/iJII0-гXZРис. 8 . 8 . График функцииf ( x ) = x 4 + 5'X 3 -10-xДля поиска локальных экстремумов имеются две встроенные функции, которые могут применяться как в пределах вычислительного блока, так и автономно.G Minimize{f,х ххм} — вектор значений аргументов, при которыхфункция f достигает минимума;• Maximize(f,x 1( . . .
,хм) — вектор значений аргументов, при которыхфункция f достигает максимума;••f (х 1( .. . ,хм, . . . ) — функция;х 1 , . . . , х м — аргументы, по которым производится минимизация(максимизация).204Часть III. Численные методыВсем аргументам функции f предварительно следует присвоить некоторыезначения, причем для тех переменных, по которым производится минимизация, они будут восприниматься как начальные приближения. Примерывычисления экстремума функции одной переменной (рис. 8.8) без дополнительных условий показаны в листингах 8.11—8.12. Поскольку никаких дополнительных условий в них не вводится, поиск экстремумов выполняетсядля любых значений х от -« до «.Листинг 8.11. Минимум функции одной переменнойf (х) :=х 4 + 5-х 3 - 10 -хх :=-1Minimize ff,x) =—3.552х := 1Minimize ( f, х) = 0.746Листинг 8.12.
Максимум функции одной переменнойf (х):=х4+ 5 - х 3 - 1 0 -хх := 1Maximize(f ,x)=-0.944х := - 1 0Как видно из листингов, существенное влияние на результат оказывает выбор начального приближения, в зависимости от чего в качестве ответа выдаются различные локальные экстремумы. В последнем случае численныйметод вообще не справляется с задачей, поскольку начальное приближениех=-ю выбрано далеко от области локального максимума, и поиск решенияуходит в сторону увеличения f (х), т. е. расходится к х-»».8.6.2. Условный экстремумВ задачах на условный экстремум функции минимизации и максимизациидолжны быть включены в вычислительный блок, т. е.
им должно предшествовать ключевое слово Given. В промежутке между Given и функцией поиска экстремума с помощью булевых операторов записываются логическиевыражения (неравенства, уравнения), задающие ограничения на значенияаргументов минимизируемой функции. В листинге 8.13 показаны примерыпоиска условного экстремума на различных интервалах, определенных неравенствами. Сравните результаты работы этого листинга с двумя предыдущими.Глава 8. Алгебраические уравнения и оптимизация205Листинг 8.13.
Три примера поиска условного экстремума функции43f (х) ~- х + 5 'X - 10 -хх := 1Given-5 < х < -2Minimize (f,x) =-3.552х := 1Givenx> ОMinimize (f , x) = 0,746x :- -1СGiven-3 < x < 0Maximize (f . x) = -0.944He забывайте о важности выбора правильного начального приближения и вслучае задач на условный экстремум. Например, если вместо условия з<х<о и последнем примере листинга задать -5<х<о, то при том же самомначальном х = - ю будет найден максимум Maximizetf,х) =-о.944, что неверно, поскольку максимальное значение достигается функцией f(x} на левойгранице интервала при х=-5. Выбор начального приближения х=-4 решаетзадачу правильно, выдавая в качестве результата Maximize(f ,x) =-5.8.6.3. Экстремум функции многих переменныхВычисление экстремума функции многих переменных не несет принципиальных особенностей по сравнению с функциями одной переменной.