- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов
Шрифт:
Интервал:
Закладка:
> AA:=subs(А0=5,omega0=10,m=1, gamma=1, А);
> AAprime :=diff(АА, omega);
> ss1:=solve(AAprime=0,omega);
> evalf(ss1);
0., 9.974968670 , -9.974968670Нетрудно подметить, что частота пика амплитудно-частотной характеристики чуть меньше частоты собственных колебаний системы.
5.1.5. Поиск экстремумов с помощью функции extrema
Ряд функций служит специально для вычисления экстремумов, максимумов и минимумов функций, а также для определения их непрерывности. Одна из таких функций extrema позволяет найти экстремумы выражения expr (как максимумы, так и минимумы) при ограничениях constrs и переменных vars, по которым ищется экстремум:
extrema(expr, constrs)
extrema(expr, constrs, vars)
extrema(expr, constrs, vars, 's')
Ограничения contrs и переменные vars могут задаваться одиночными объектами или списками ряда ограничений и переменных. Найденные координаты точки экстремума присваиваются переменной 's'. При отсутствии ограничений в виде равенств или неравенств вместо них записывается пустой список {}.
Эта функция в предшествующих версиях Maple находилась в стандартной библиотеке и вызывалась командой readlib(extrema). Но начиная с Maple 7 ее можно использовать без предварительного объявления. В этом убеждают приведенные ниже примеры (файл extrema):
> restart:
> z:=(х,y)-> а*х^2 + b*x*y + с*y^2 + d*(х-y);
z:= (х,у)→ах² + bxy + су² + d(х - y)> extrema(z(х,y),{},{х,y},'s');
> s;
> extrema(а*х^2+b*х+с,{},x,'s');s;
> extrema(х*ехр(-х),{}, х, 's'); s;
{e(-1)} {{x = 1}}> extrema(sin(x)^2,{},x,'s');s;
{0,1} {{x=0}, {х=½π}}> extrema(х+у/z,х^2+у^2+z^2=1,{x,y,z},'s');s;
{max(1 - RootOf(_Z4 + 1)2, - 1 + RootOf(_Z4 + 1)2), min(1 - RootOf(_Z4 + 1)2, -1 + RootOf(_Z4 + 1)2)} {{z = RootOf(_ Z4 + 1), x = -1, у = RootOf(_Z4 + 1)3}, {x = 1, z = RootOf(_ Z4 + 1), у = - RootOf(_ Z4 + 1)3}}> evalf(%);
{{x = -1., у = -0.7071067812+0.7071067812 I, z = 0.7071067812+0.7071067812 I}, {z = 0.7071067812+0.7071067812 I, x = 1., у = 0.7071067812-0.7071067812 I}}Как видно из приведенных примеров, функция extrema возвращает как значения экстремумов, так и значения аргументов, при которых экстремумы наблюдаются. Обратите внимание, что в первом примере результат вычисления экстремума функции z(x,y) оказался тем же, что и в предшествующем разделе. Это говорит в пользу применения функции extrema.
Для проверки оптимизационных алгоритмов существует ряд тестовых функций. Одна из таких функций — функция двух переменных Розенброка. В представленном ниже примере она задана как rf(x,y):
> rf:= (x,у)->100*(у-х^2)^2+(1-х)^2;
rf:=(x,.y)→100(y-x²)²+(1-x)²> extrema(rf(х,у),{х,у},'s');s;
{{y = -RootOf f(_ Z4 + 1)3, х = 1, z = RootOf(_Z4 + 1)}, {x = -1, у = RootOf(_Z4 + 1)3, z = RootOf(_Z4 + 1)}}> evalf(%);
{{y = 0.7071067812-0.7071067812, x = 1., z =0.7071067812+0.7071067812 I}, {z = 0.7071067812+0.7071067812 I, x = -1.,y = -0.7071067812+0.7071067812 I}}Как нетрудно заметить, минимум этой функции при значениях x=у=1, равный 0, функцией extrema явно не обнаружен. Однако это не недостаток данной функции, а просто неудачное ее применение. Функция Розенброка имеет минимум значения и для его обнаружения надо использовать функцию minimize, описанную ниже.
Функция extrema дает неплохие результаты при поиске экстремумов простых аналитических функций, не имеющих особенностей. Однако при анализе сложных функций, содержащих функции со сравнением аргумента (например, abs(x), signum(x) и др.) функция extrema часто отказывается работать и просто повторяет запись обращения к ней.
5.1.6. Поиск минимумов и максимумов аналитических функций
Часто нужно найти минимум или максимум заданной функции. Для поиска минимумов и максимумов выражений (функций) expr служат функции стандартной библиотеки:
minimize(expr, opt1, opt2, ..., optn)
maximize(expr, opt1, opt2, ..., optn)
Эти функции могут разыскивать максимумы и минимумы для функций как одной, так и нескольких переменных. С помощью опций opt1, opt2, …, optn можно указывать дополнительные данные для поиска. Например, параметр 'infinity' означает, что поиск минимума или максимума выполняется по всей числовой оси, а параметр location (или location=true) дает расширенный вывод результатов поиска — выдается не только значение минимума (или максимума), но и значения переменных в этой точке.
Примеры применения функции minimize приведены ниже (файл minmax):
> minimize(х^2-3*х+y^2+3*y+3);
> minimize(х^2-3*х+y^2+3*y+3, location);
> minimize(х^2-3*х+y^2+3*y+3, х=2..4, y=-4..-2, location);
-1, {[{х = 1, y = -2}, -1]}> minimize(х^2+y^2,х=-10..10,y=-10..10);
0> minimize(х^2 + y^2,х=-10..10,y=-10..10, location);
0, {[y = 0, х = 0},0]}> minimize(abs(х*ехр(-х^2)-1/2), х=-4..4);
½-½√2 е(-1/2)> minimize(abs(х*ехр(-х^2)-1/2), х=-4..4, location=true);
Приведем подобные примеры и для функции поиска максимума — maximize:
> maximize(х*ехр(-х));
е(-1)> maximize(х*ехр(-х),location);
е(-1), {[{х=1}, е(-1)] }> maximize(sin(х)/х,х=-2..2,location);
1, {[{x=0}, 1]}> maximize(exp(-х)*sin(y),х=-10..10,y=-10..10, location);
Обратите внимание на то, что в предпоследнем примере Maple 9.5 выдал верный результат, тогда как Maple 8 в этом примере явно «оскандалился» и вместо максимума функции sin(x)/x, равного 1 при x=0, выдал результат в виде бесконечности:
∞, {[{x =0}, ∞]}Эта ситуация кажется более чем странной, если учесть, что в этом примере еще Maple 6 давал правильный результат. Это еще один пример, показывающий, что в отдельных случаях Maple может давать неверные результаты.
Применим функцию minimize для поиска минимума тестовой функции Розенброка. Рис. 5.2 показывает, что minimize прекрасно справляется с данной задачей. На рис. 5.2 представлено также построение функции Розенброка, хорошо иллюстрирующее ее особенности.
Рис. 5.2. Поиск минимума функции Розенброка и построение ее графика
Трудность поиска минимума функции Розенброка связана с ее характерными особенностями. Из рис. 5.2 видно, что эта функция представляет собой поверхность типа «глубокого оврага с почти плоским дном», в котором и расположена точка минимума. Такая особенность этой функции существенно затрудняет поиск минимума. То, что система Maple 9.5 справляется с данной тестовой функцией, вовсе не означает, что трудности в поиске минимума или максимума других функций остаются позади.
5.1.7. Поиск минимума функций с ограничениями методом выпуклого программирования
Часто необходимо найти минимум некоторой функции при наличии ограничений на значения независимых переменных. Ниже рассматривается нетривиальная задача такого рода, решаемая методом выпуклого программирования (разновидность нелинейного программирования) — файл minp.
Пусть надо найти минимум функции f:=х1^2+(х2–1)^2 при следующих ограничениях: 2x1+х2>=7, x1+2*х2>=5, x1>=0 и х2>=0. Составим на основе этого функцию Лагранжа:
> F:=x1^2+(х2-1)^2+y1*(7-2*х1-х2)+y2*(5-х1-2*х2);
F:= x1² + (х2-1)² + у1(7-2х1-х2) + у2(5-х1-2х2)и найдем ее частные производные:
> F1:=diff(F,x1);
F1:=2x1-2y1-y2> F2:=diff(F,x2);
F2:=2x2 -2-y1-2y2> F3:=dxff(F,y1);
F3:=7-2x1-x2> F4:=diff(F,y2);
F4:=5-x1-2x2Соберем воедино все равенства и неравенства этой задачи:
> eq:={Fl=u1,F2=u2,x1*F1,x2*F2,F3+v1,F4+v2,y1*F3,y2*F4,
x1>=0,x2>=0,y1>=0,y2>=0,u1>=0,u2>=0,v1>=0,v2>=0};
eq := {2x1-2y1-y2=u1, 2x2-2-y1-2y2=u2, 7-2x1-x2+v1, 5-x1-2x2+v2, y1(7-2x1-x2), y2(5-x1-2x2), x1(2x1-2y1-y2), x2(2x2-2-y1-2y2), 0≤x1, 0≤x2, 0≤y1, 0≤y2,0≤u1,0≤v1, 0≤v2, 0≤u2}Первые шесть равенств соответствуют теореме Куна-Такера о том, что в точке минимума существуют целые неотрицательные числа u1, u2, v1 и v2 для которых выполняются эти шесть равенств (обратите внимание на то, что запись только левой части равенства означает, что она приравнивается к 0). Теперь с помощью функции solve можно найти решение данной задачи:
> solve(eq,{x1,х2,y1,y2,u1,u2,v1,v2});
Таким образом, на указанном множестве функция достигает минимума в точке (12/5, 11/5).
5.1.8. Анализ функций на непрерывность
Для исследования функций на непрерывность (отсутствие разрывов) Maple имеет функцию iscont, записываемую в ряде форм:
iscont(expr, х = а..b)
iscont(expr, х = а..b, 'closed')
iscont(expr, х = а..b, 'open')
Она позволяет исследовать выражение expr, заданное в виде зависимости от переменной х, на непрерывность. Если выражение непрерывно, возвращается логическое значение true, иначе — false. Возможен также результат типа FAIL. Параметр 'closed' показывает, что конечные точки должны также проверяться, а указанный по умолчанию параметр 'open' — что они не должны проверяться.