WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     || 2 | 3 | 4 | 5 |   ...   | 6 |
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования САНКТ ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ ЗАДАЧ ОПТИМИЗАЦИИ Методические указания к выполнению лабораторных работ №1–6 1 Санкт Петербург 2006 Составители: Л. А. Мироновский, К. Ю. Петрова, Д. В. Шинтяков Рецензенты: кафедра информационных систем СПбГУАП;

кандидат технических наук В. М. Космачев Приводятся указания к выполнению лабораторных работ по ме тодам оптимизации на персональных ЭВМ с использованием про граммных пакетов MAPLE и MATLAB.

Методические указания предназначены для проведения лабора торных работ по курсам «Методы оптимизации» и «Теория опти мального управления» студентами дневного обучения по специаль ности 2201 «Вычислительные системы, комплексы и сети » и на правлению 5528 «Информатика и вычислительная техника».

Подготовлены кафедрой вычислительных систем и сетей и реко мендованы к изданию редакционно издательским советом Санкт Петербургского государственного университета аэрокосмического приборостроения.

Редактор А. В. Подчепаева Компьютерная верстка И. С. Чернешева Подписано к печати 19.04.06. Формат 6084 1/16. Бумага офсетная.

Печать офсетная. Усл. печ. 3,9. Уч. изд. л. 4,2. Тираж 100 экз. Заказ № Редакционно издательский отдел Отдел электронных публикаций и библиографии библиотеки Отдел оперативной полиграфии ГУАП 190000, Санкт Петербург, ул. Б. Морская, 67 © ГОУ ВПО «Санкт Петербургский государственный университет аэрокосмического приборостроения», 2006 2 Лабораторная работа № 1 РЕШЕНИЕ ЗАДАЧ ОПТИМИЗАЦИИ В ПАКЕТЕ MAPLE Цель работы: освоить методику решения задач безусловной опти мизации в пакете MAPLE.

1. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ Экстремальные задачи встречаются почти во всех разделах мате матики и в многочисленных прикладных дисциплинах. В них зада ется некоторый критерий J = f (X), и требуется найти значение век торного аргумента X, при котором критерий J достигает экстремаль ного значения (максимального или минимального). При этом огова ривается область изменения аргумента X или некоторое множество X: X1X.

Различают задачи на условный и безусловный экстремум. В слу чае условно экстремальных задач требуется найти экстремум крите рия J = f(X) при дополнительном ограничении, например в виде ра венства g(X) = 0. В случае безусловных экстремальных задач такие ограничения отсутствуют.

Широко известный аналитический метод решения задач на безус ловный экстремум опирается на теорему Ферма. В соответствии с ней поиск экстремума функции одной или нескольких переменных сле дует производить на множестве стационарных точек этой функции.

Стационарными называются те точки, в которых производная функ ции равна нулю.

Если задана функция нескольких переменных J = f(x1,..., xn), то ее стационарные точки находятся из уравнений ¶f / ¶x1 = 0,..., ¶f / ¶x = 0. (1) n Поскольку частные производные представляет собой компоненты градиента функции f, то эти уравнения можно записать в компакт ном виде grad J = 0.

Однако это условие только необходимое, поэтому после отыска ния корней системы алгебраических уравнений (1) нужно проверить достаточные условия экстремума, например, анализируя матрицу вторых производных. Если эта матрица положительно определен ная A > 0, то найденное решение – точка минимума, если отрица тельно определенная A < 0 – точка максимума. В случае неопреде ленных матриц найденное решение – седловая точка. Если задана область изменения переменных, то надо еще проверить граничные точки.

Пример. Рассмотрим задачу отыскания экстремума следующей функции от трех переменных y = 2x12 + 8x22 + x32 + 4x1x2 + 2x1x3 – 4x3.

Ее матричное описание имеет вид y = XTAX + cTX, где 2 2 1 0 x1 2 1 2 1 32 3 4, 3x24.

A 5 8 04, c 5 0 X 31 0 14 3 4 3x 7 8 7648 7 Вычисляя производные 1y/1xi и приравнивая их нулю, получаем три уравнения:

4x1 + 4x2 + 2x3 = 0; 16x2 + 4x1 = 0; 2x3 + 2x1 – 4 = 0.

Решение этой системы линейных уравнений имеет вид x1 = – 4, x2 = 1, x3 = 6.

Матрица вторых производных от функции y равна удвоенной мат рице А. Матрица А положительно определенная, в чем можно убе диться, проверяя знаки ее угловых миноров либо находя ее собствен ные числа (все они положительны: 8,62; 2,17; 0,214). Следователь но, найденное решение – точка минимума.

Практическое применение метода Ферма требует выполнения двух типов математических операций:

вычисление частных производных от функции многих переменных;

решение получаемой системы алгебраических уравнений.

Существенную помощь при их выполнении могут оказать пакеты символьных вычислений, в частности пакет MAPLE.

2. НЕОБХОДИМЫЕ СВЕДЕНИЯ О ПАКЕТЕ MAPLE 2.1. Справочная информация Пакеты символьных вычислений обеспечивают автоматическое выполнение многих аналитических выкладок. В иностранной лите ратуре этот класс пакетов обозначается аббревиатурой CAS – COMPUTER ALGEBRA SYSTEMS. Среди них можно назвать такие пакеты, как MAPLE, MATHEMATICA, MACSYMA, DERIVE, AXIOM. В данной лабораторной работе используется первый из них.

Пакет MAPLE является динамично развивающимся программным продуктом с широким спектром возможностей. В 2004 г. вышла вер сия MAPLE 9, однако для выполнения лабораторных работ вполне достаточно более ранней версии MAPLE V RELEASE 4.

Для языков MAPLE, MATHEMATICA и DERIVE встроенные спра вочники являются наиболее доступными учебниками как по синтак сису, так и по использованию команд. Все необходимые справки о пакете можно получить в MAPLE, используя команды:



(help) –помощь, (usage) – проверка синтаксиса, (example ) – пример для данной команды, или меню в оболочке MAPLE для WINDOWS.

Опишем основные конструкции MAPLE, которые требуются для выполнения работы.

2.2. Выражения и команды MAPLE Пакет MAPLE является интерпретатором. Команды вводятся пос ле приглашения > и выполняются при нажатии Enter. Для написа ния команд, состоящих из нескольких строк, пользуйтесь Shift+Enter. Каждая команда завершается точкой с запятой или дво еточием (для подавления вывода результатов выполнения). MAPLE чувствителен к регистру. Целые числа имеют “бесконечную” точность, а числа, не являющиеся целыми, представляются в виде отношения двух целых чисел. Требуемое количество десятичных знаков (не точ ность результата, а точность вычислений!) задается переменной Digits. По умолчанию она равна 10. Обнаружив ошибку, MAPLE выводит сообщение о ней в следующей строке. Присваивание выпол няется при помощи оператора :=. Строки заключаются в обратные кавычки `. Двойные кавычки обозначают результат выполнения пре дыдущей команды. Например:

> sin(t);

sin(t) > ;

sin(t) В последних версиях с этой целью используются не двойные ка вычки, а знак %.

Жирным шрифтом здесь отмечен ввод пользователя.

Функции tg и ctg обозначаются так, как это принято в зарубеж ной литературе – tan и cot, соответственно. Операция возведения в степень обозначается как ^, а функция взятия квадратного корня – sqrt. Экспонента и гиперболические функции обозначаются exp, sinh и cosh соответственно, а мнимая единица обозначается буквой I (если этот символ не используется в качестве обычной переменной).

Одинарные кавычки используются для того, чтобы «очистить» переменную. При этом значения выражений, в которые входила эта переменная, не поменяются:

> u:=x^2+9;

u := x2 + > w:=u-3;

w := x2 + > u:=u;

u := u > u;

u > w;

x2 + В MAPLE широко используются такие конструкции, как упоря доченные списки, которые пишутся в квадратных скобках, и неупо рядоченные множества, для записи которых используются фигур ные скобки. Элемент списка или множества, а также операнд, можно извлечь при помощи команды op. Например:

> q:=sin((x+7)^2)+a;

q := sin((x + 7)2 ) + a > op(1,q);

sin((x + 7)2 ) > op([1,1,1],q);

x + > m:=[1,2,b,c+6];

m := [1, 2, b, c + 6] > m[4];

c + > op(4,m); op([4,1],m);

c + c > n:={1,2,3}; n[1]; op(2,n); n[2];

n := {1, 3, 2} Для индексации списков и множеств можно воспользоваться квад ратными скобками, как это показано в примере. Обратите внимание на «неправильный» результат команды op(2,n) и n[2]: n является неупорядоченным множеством, поэтому понятие порядкового номе ра к нему не применимо – выдается некий внутренний номер, часто не имеющий смысла.

Отметим еще несколько полезных фактов. Результаты работы можно сохранить в файле с расширением mws. Очистка рабочего про странства производится командой restart. Удобно также пользовать ся клавишами F3 и F4 для разбиения группы команд на секции и для их объединения соответственно.

2.3. Преобразование формул Рассмотрим несколько простых команд для преобразования алгебра ических выражений. Наиболее употребительна из них команда simplify (упростить), хотя ее результаты для сложных формул могут быть до вольно бесполезными. Дело в том, что само понятие простоты примени тельно к алгебраическим выражениям невозможно даже формализовать, не говоря о большем. Как правило, приходится использовать более спе циализированные команды, такие как factor (разложить на множите ли), expand (раскрыть скобки или раскрыть тригонометрические функ ции кратных аргументов), combine (обратная функция к expand для три гонометрических выражений). Полезными могут оказаться также функ ции numer и denom, выделяющие числитель и знаменатель дроби. Для вынесения переменной за скобки используется функция collect. Для про стой подстановки переменных используется функция subs, а для более сложных случаев – так называемая «алгебраическая подстановка» – algsubs. С примерами применения всех упомянутых и описываемых ниже функций можно познакомиться в справочной системе.

2.4. Решение алгебраических уравнений Для решения алгебраических уравнений используется функция solve (решить). Первый параметр при вызове этой функции – уравнение, нера венство, или их совокупность, соответствующая системе. Второй пара метр – переменная или множество переменных, относительно которых требуется решить задачу. Когда в уравнении участвует лишь одна неопре деленная величина, то второй параметр можно опустить. Если вместо урав нения на вход функции подается выражение expr, то подразумевается expr = 0. Поскольку корни полиномов можно найти аналитически лишь до 4 го порядка, то в случае, если порядок больше или равен 4, решение выдается в виде RootOf, и его можно найти численными методами.

Для получения аналитического решения (в форме радикалов) для полиномов 3–4 го порядков следует присвоить значение true глобаль ной переменной _EnvExplicit. Для получения всех решений уравне ний, содержащих периодические функции, следует присвоить истин ное значение переменной _EnvAllSolutions. Например:

> _EnvAllSolutions:=true;

_EnvAllSolutions := true > solve(sin(x));

Pi _Z1~ Часто при решении уравнений и преобразовании выражений целе сообразно оговаривать те или иные допущения о возможных значе ниях переменных. Это делается при помощи команды assume.

Например:

> q:=sqrt((1-x)^2);

q := ((1 x) 2 )1/> simplify(q);

csgn(x 1) (x 1) Это означает, что при х > 1 ответ будет х-1, а при х < 1 ответ будет 1–х. Введем предположение, что х < 1:





> assume(x<1);

> simplify(q);

1 – x~ Теперь мы получили один вариант ответа.

Переменные, о которых сделаны допущения, по умолчанию отме чаются знаком ~ (это можно изменить в настройках). Узнать об этих допущениях можно при помощи команды about:

> about(x);

Originally x, renamed x~:

is assumed to be: RealRange( infinity,Open(1)) Для получения численного решения можно воспользоваться ко мандой fsolve, или же вычислить значение решения в виде RootOf при помощи команды evalf, преобразующей выражение к формату с плавающей точкой1.

Работу последней можно пояснить следующим примером:

> sqrt(2);

21/> evalf(sqrt(2));

1.> Digits:=30;

Digits :=,,.

> evalf(sqrt(2));

1.2.5. Дифференцирование функций и построение графиков Для решения задач оптимизации методом Ферма потребуется опе рация дифференцирования, которая осуществляется командой diff.

Для построения графиков используется команда plot, ее применение иллюстрируется четырьмя строками, приводимыми ниже.

Первая и вторая строки обеспечивают построение графика сину соиды на интервале от –p до p, а третья и четвертая – построение двух кривых (синусоиды и экспоненты) на одном графике.

> plot(sin,-Pi..Pi);

> plot(sin(x),x=-Pi..Pi);

> plot([sin,exp],-Pi..Pi);

> plot([sin(t),exp(t)],t=-Pi..Pi);

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

3. ЗАДАНИЕ ПО РАБОТЕ И СОДЕРЖАНИЕ ОТЧЕТА В работе требуется решить оптимизационную задачу при помощи метода Ферма и два примера по упрощению выражений – один алгеб раический и один тригонометрический. Если пример решается в одно действие, поясните промежуточные шаги средствами MAPLE. Номе ра задач и примеров приведены в таблице вариантов заданий.

Отчет по работе должен содержать:

1) описание и аналитическое решение оптимизационной задачи;

2) график исследуемой зависимости с отмеченной точкой экстре мума. График производной этой зависимости с отмеченным нулем;

3) аналитическое и численное решения задачи с использованием пакета MAPLE;

4) решение примера на тождественное преобразование тригоно метрических выражений с использованием MAPLE;

5) решение примера на тождественное преобразование алгебраи ческих выражений с использованием MAPLE.

4. КОНТРОЛЬНЫЕ ВОПРОСЫ 1. Аналитически найти экстремум тестовой функции Розенброка:

f(x) 1100 (x2 2 x1 )2 3 (12 x1)2.

2. Написать MAPLE программу для построения многомерной тес товой функции Розенброка:

n/f(x) 1 2 x2i11)2 3 (1 2 x2i11)2.

4100(x2i iУказание. Воспользуйтесь функцией sum, обозначив xi как x[i].

3. Найти точку, в которой достигается максимум функции f 1 7x 2 2y 3 5z на множестве 110 2 x 210, 3 2 y 2 4, 11 2 y 21.

4. Средствами MAPLE построить полином 4 го порядка с корнями –1, 0, 1, 7 и нарисовать его график. Показать, что в этих точках полином обращается в ноль.

5. Проверить, делится ли полином z7 1 5z3 2 9z2 1 2 на z 11 6. Найти экстремум функции y = 2x12 + 8x22 + x32 + 4x1x2 + 2x1x3– – 4x3.

5. ВАРИАНТЫ ЗАДАНИЙ Каждый вариант включает номер одной задачи и двух примеров (А, В) из списка, приводимого ниже.

Вариант 1 2 3 4 5 6 7 8 9 Задача 1 2 3 4 1 2 3 4 1 Пример A 1 2 3 4 5 6 7 8 9 Пример B 10 2 3 4 5 6 7 8 9 Вариант 11 12 13 14 15 16 17 18 19 Задача 1 2 3 4 1 2 3 4 2 Пример A 7 8 8 9 10 1 2 3 4 Пример B 8 9 10 1 2 3 4 5 6 Задачи Задача 1 (наилучшая освещенность). Электрическая лампа мо жет передвигаться вдоль вертикального шеста с помощью тросика.

На какой высоте h ее следует поместить, чтобы освещенность в точ ке А, расположенной на расстоянии l от основания шеста, была наи большей. Освещенность пропорциональна синусу угла и обратно про порциональна квадрату расстояния.

Задача 2 (отдача мощности в электрической цепи). Рассмотрим электрическую цепь, показанную на рисунке.

Здесь e – источник напряжения (генератор), r – его внутреннее сопротивление, R – сопро тивление нагрузки. Требуется определить, при каком сопротивлении R будет происходить максимальная отдача мощности в нагрузку.

Каков при этом будет коэффициент полезного действия Задача 3 (шайба и трамплин). Шайба движется по гладкой повер хности без трения со скорос тью V. При какой высоте трамплина h (см. рис.) даль ность полета S окажется максимальной Точная фор ма трамплина и масса шайбы неизвестны, верх трамплина горизон тален. (Задача решается через кинетическую и потенциальную энер гию).

Задача 4 (яйцо в кастрюле). В цилиндрическом сосуде (кастрюле) диаметра l лежит круглое яйцо. При каком диаметре яйца d потребуется больше всего воды, чтобы целиком скрыть яйцо Объем цилиндра определяется формулой Vcyl 1 2r2l, а объем шара Vsph 1 2r3.

Задача 5 (линейка на спице). На каком расстоянии от центра деревянной линейки длины L надо сделать отверстие, чтобы период ее колебаний на спице, пропущенной в это отверстие, был минимальным Частота колебаний линейки определяется формулой 12 2 mgl/Il, где Il – момент инерции линейки относительно точки подвеса. Его можно найти с помощью формулы Штейнера Il = ml2 + I0, где I0 = mL2 / – момент инерции линейки относительно ее центра тяжести.

Примеры А1. Упростить B1. Доказать тождество sin4 a 1 cos4 a 21 p3 1 4 p2 110 p 112 p3 2 3p2 1 8 p 3.

3.

sin6 a 1 cos6 a p3 2 p2 1 2p 116 p2 1 2p 1 А2. Упростить B2. Решить уравнение (11 cotx)sin3 x 1 (11 tanx) a3 12a2 25a.

Pages:     || 2 | 3 | 4 | 5 |   ...   | 6 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.