Главная » Просмотр файлов » Деменков Н.П. - Вычислительные методы решения задач оптимального управления на основе принципа максимума Понтрягина - 2015

Деменков Н.П. - Вычислительные методы решения задач оптимального управления на основе принципа максимума Понтрягина - 2015 (842911), страница 4

Файл №842911 Деменков Н.П. - Вычислительные методы решения задач оптимального управления на основе принципа максимума Понтрягина - 2015 (Вычислительные методы решения задач оптимального управления на основе принципа максимума Понтрягина, Деменьков Н,П.) 4 страницаДеменков Н.П. - Вычислительные методы решения задач оптимального управления на основе принципа максимума Понтрягина - 2015 (842911) страница 42021-06-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Отрезок [а, Ь] делится точкамиотрезки, не обязательно равные) и каждой точкеветствиеYi.х1< х2 < ... Хпностным отношениемЛу / Лхкоторой определяются значениянаXi ставится в соот­Исходя из начальных значений х1 ипроксимации производной у' = dy / dx(у1 , путем ап­в каждой точке сетки раз­строится система уравнений, изYi .В процессе ее решения сеткаXi может перестраиваться (в частности, сгущаться) ; при решениииспользуется матрица-якобиан дf / дх.Простейшая форма обращения к функцииbvp4c:sol = bvp4c(odefun,bcfun,solinit),гдеodefun функция, вычисляющая вектор правых частей;bcfun - функция, вычисляющая вектор граничных условий, двекомпоненты которого представляют собой выражения, обращаю­щиеся в нуль в точках а и Ь соответственно; аргументами функции22bcfun являются Уа и Уь - векторы решения у в точках а и Ь; solinit- выходная структура функции bvpinit.С помощью solinit задаются начальные значения Xi и Yi:solinit = bvpinit(xinit,yinit);при этом заполняются два поля:solinit.x = xinit и solinit.y = y(i,:).Здесь xinit вектор-строка a=xinit(l )<xinit(2)< ...

<xinit(n) = Ь;yinit - гипотетические значения для y(i), которые могут быть за­даны в одной из двух форм: в виде вектора, каждая компонентакоторогоyinit(i)копируется в качестве гипотетического решениядля всех точек сетки, т. е.y(i,;) = yinit(i), или в виде функции вформе улюбая точка отрезка [а, Ь], у -= quess(x), где х -вектор,длина которого равна порядку системы дифференциальных урав­нений .

Для каждой точки сеткиx(i)вычисляется вектор гипотети­ческого решенияу(i, :)= quess(x(i)).Структура sol, аналогичная solinit, содержит решение краевойзадачи; кроме полей sol.x и sol.y она имеет поле sol.yp, в которомсодержатся значения производной решения (sol.y)' в точках sol.x.Полная форма обращения к функции bvp4c:sol = bvp4c(odefun, bcfun, solinit, options, Р 1, Р2, ...

),гдеoptions -аргумент, позволяющий задавать различные управ­ляющие параметры;Pl , Р2 и т. д. - дополнительные аргументы длявычисления odefun и bcfun. Управляющие параметры задаются пу­тем обращения к функции bvpset, аргументом которой является по­следовательность пар вида«< ' параметр', значение >», например,options = bvpset('FJacobian', @FJac).Параметр FJacobian задает в аналитическом виде якобиангдеf-функция, вычисляемая вПараметрBCJacobian[:Jodefun.задает в аналитическом виде два якобиа-на=[::] и [::],где Ьс(уа,Уь)-функция, вычисляемая в bcfun.23Неизвестный параметр или вектор неизвестных параметроввводится с помощью функцииbvpinit,форма обращения к которойимеет видsolinit = bvpinit(xinit, yinit, parametrs).Здесьsolinit - структура, в которой кроме полей solinit.x = xinit иsolinit.y = y(i,:) заполняется еще одно поле: solinit.parametrs = parametrs; parametrs - гипотетическое значение неизвестного пара­метра (вектора).Пример1.2.Решим задачу, рассмотреннуюиспользуя функциюв примере1.1,bvp4c.Решение.

Составим m-файл, содержащий функцию, котораявычисляет правые части:function dxdt = exampl(t,x)dxdt = [х(2); ...3 *t+x(2)/t];а также m-файл, содержащий функцию, которая задает граничныеусловияfunction res = border(ха,хЬ)res = [xa(l)-2 xb(l)-9];Начальные значения координатыцииtвыберем с помощью функ­linspace пяти равноотстоящих точек на интервале [1 , 2]:tinit = linspace(l , 2, 5).В качестве начальных приближений вектора решений в этихточках выберем, например,xinitполе структурыxinit = [О 2].

При таком выборе вектораsolinit.x будет заполнено копиями исходноговектора. Такой выбор начального приближения может оказаться неочень удачнь~м. Альтернативный вариант состоит в задании вспомо­гательной функции, вычисляющей эти компоненты. Начальное при­ближение влияет на число итераций. Так что выбор начального век­тора или вида вспомогательной функции полностью зависит отинтуиции пользователя .Сформируем структуруsolinit:solinit = bvpinit(tinit, xinit).Для решения задачи выполним командуsol = bvp4c(@exampl, @border, solinit)24Если построить решение краевой задачи в виде графика с по­мощью командыplot(sol.t, sol.x(l,:)),результат вычислений получится не очень точный: слишком малоточек. Эту трудность можно преодолеть с помощью дополнитель­ной функцииdeval.Функциядержащуюся в структуреdeval,sol,используя информацию, со­строит интерполяционный сплайнЭрмита для заданного вектора пробных точекtinit,который можетсодержать сколь угодно точек для обеспечения требуемой точно­сти результата.

Обращение к функцииdeval имеет видxinit = deval(sol, tinit),гдеxinit -значение сплайн-функции в пробных точках.Командойtinit = linspace(l, 2)создадим вектор, содержащий по умолчанию100 пробных точек.1.4. Решение оптимизационных задачПакет расширенияOptimization Toolboxпредназначен длярешения оптимизационных задач и систем нелинейных уравне­ний. Он поддерживает следующие основные методы оптимиза­ции функций ряда переменных: безусловную оптимизацию нели­нейных функций; метод наименьших квадратов и нелинейнойинтерполяции; решение нелинейных уравнений; линейное про­граммирование;квадратичное программирование; условнуюми­нимизацию нелинейных функций; метод минимакса; метод мно­гокритериальной оптимизации.Этот пакет дает возможность решать задачи минимизациифункций, нахождения решений уравнений, задачи аппроксима­ции (подгонки кривых под экспериментальные данные).

Различ­ные типы таких задач вместефункциями пакетас применяемыми дляOptimization Toolbox приведеныих решенияв табл.1.1.25ТаблицаЗадачи, решаемые средствами пакетаТип задачи1.1Optimization ToolboxФункцияМатематическая записьМАТLАВЗадачи минимизацииСкалярнаяminf(a),(одномерная)а1 < а< а2fminbndаминимизацияБезусловнаяminf(x)fminunc,fminsearchхминимизация(без ограничений)minfт хЛинейноепрограммированиеКвадратичноепрограммированиеAeq х = beq,XL :::; х:::; xu1- хт Нх + f т х при условиях2Ь, Aeq·x = beq, X L :::; х:::; xu,mшхquadprogminfт х при условияхМинимизация принийlinprogАх:::; Ь,Ах:::;наличии ограниче-при условияхххс(х):::; О,ceq(x) =Ах:::; Ь, Aeq·x = beq, XLfminconО,:::; х:::;x u,mш у при условияхх,уДостижение целиF(x)-wy :::; goal,с(х):::; О, ceq(x) = О,Ах:::; Ь, Aeq·x = beq, XL :::; х :::; x u,min max {F;, ( х)}fgoalattainпри условиях{F;(x)}хМинимаксс(х)Ах:::;:::; О, ceq(x) =Ь, Aeq·x = beq, XLfminimaxО,:::; х:::;xu,minfт х при условияхПолубесконечнаяминимизацияхK(x,w):::;с(х):::; О,Ах :::;26О для всехw,ceq(x) = О,Ь, Aeq·x = beq, XL:::; х:::; xu,fseminfОкончание табл.Тип задачи1.1ФункцияМатематическая записьМАТLАВНахождение решений уравненийЛинейные уравненияС(х) ~d , п уравнений, п переменных\ (операторлевогоделения,slashj(a) = ОНелинейноеfzeroуравнение однойпеременнойНелинейныеF(x) = О, п уравнений,уравнения многихfsolveп переменныхпеременныхЗадачи аппроксимации (подгонки кривых)Линейный методminllcx-dll~, т уравнений, пнаименьшиххлевогоделения,квадратов (МНК)переменныхНеотрицательныйminllcx -dll~ при условииbackslash)хлинейный МНК\ (операторlsqnonnegх~ОЛинейный МНК приminllcx - dll~ при условияххналичии ограниченийАх~ Ь,lsqlinAeq·x = beq,XL ~ х ~ хи,min _!_IIF(x)II~ = 2_}i (х)2х 22 l.I:Нелинейный МНКlsqnonlinпри условииXL ~ х ~хи,2Нелинейнаяmin_!_IIF(x,xdata)- ydatallх 22«подгонка» кривойlsqcurvefitпРИ УСЛОВИИ XL ~ Х ~ X u ,В таблице приняты следующие обозначения: агумент; х, у--скалярный ар­в общем случае векторные аргументы; j{a),скалярные функции;F(x),с(х),ceq(x), K(x,w) -j{x) -векторные функции;27А,С, Н - матрицы; Ь,Aeq,XL, xu -beq, d,f, w, goal, xdata, ydata -векторы;нижняя и верхняя границы области изменения аргумента.Если при поиске минимума вещественной функции у= f ( х)векторного аргумента х на аргумент наложены те или иные огра­ничения в виде уравнений и/или неравенств, то основным методомрешения задач условной минимизации является использованиемножителей Лагранжа.

Каждое неравенство видаg(x) ~ О превращается в уравнение g(x) + v =О, в котором слагаемое v 2 заведо­2мо не отрицательно. Затем левая часть каждого уравнения добав­ляется к целевой функции с некоторыми множителями, которыеv включаются в число переменных.fgoalattain служит для решения задачи многомернойвместе со значениямиФункциявекторной оптимизации методом «достижения цели» и (при опре­деленных условиях) записывается в следующем виде:•х= fgoalattain(fun,xO,goal,weight) -целевых функцийfun,при заданных вектореначальном приближении хО, заданных век­торах целейgoal и весов weight;• х = fgoalattain(fun,xO,goal,weight,A,b) - при наличии ограни­чений в форме линейных неравенств Ах < Ь;• х = fgoalattain(fun,xO,goal,weight,A,b,Aeq,beq) - при нали­чии дополнительных ограничений в форме равенств Aeq х = beq;если ограничения в формеА=[]•иЬхнеравенств отсутствуют, задаются= [ ];= fgoalattain(fun,xO,goal,weight,A,b,Aeq,beq,lb,ub) -при на­личии дополнительных граничных ограниченийlb ~ х ~ иЬ;• х = fgoalattain(fun,xO,goal,weight,A,b,Aeq,beq,lb,ub, nonlcon) -при наличии дополнительных ограничений в форме нелинейныхнеравенств или равенств с(х) ~ О,ceq(x) = О, если граничные огра­ничения отсутствуют, то задаются lb = [] и ub = [ ];• х = fgoalattain(fun,xO,goal,weight,A,b,Aeq,beq, ..

.lb,ub, nonlcon,options) - при заданных (изменениях) опциях;• х = fgoalattain(fun,xO,goal,weight,A,b,Aeq,beq, ...lb,ub,nonlcon, options,Pl,P2, ...) - при заданных параметрах Pl, Р2, ... , относящихсяк функциям-аргументам;• [x,fval] = fgoalattain( ...) -возвращает не только оптимальноезначение векторного аргумента, но и значение целевой функции вточке минимума fval;28• [x,fval,attainfactor] = fgoalattain( ...) -то же, что и предыду­щая функция, но возвращает еще и коэффициент достижения целиattainfactor;• [x,fval,attainfactor,exitflag] = fgoalattain( ... ) -то же, что ипредыдущая функция, но возвращает еще информацию о характе­ре завершения вычисленийexitflag;• [x,fval,attainfactor,exitflag,output] = fgoalattain( ...

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее