|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
МЕТОД ФЕРМА. ВВЕДЕНИЕ В ПАКЕТ Maple
Цельработы: ознакомиться с пакетом символьных вычислений Maple на примере решения простых оптимизационных задач.
1. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Единственным теоретическим фактом, нужным для выполнения данной лабораторной работы является равенство нулю производной (или градиента) функции в точке экстремума.
2. ОПИСАНИЕ ОСНОВНЫХ КОМАНД ПАКЕТА Maple
Введение При выполнении аналитических выкладок становится ясно, что многие операции являются рутинными и вполне допускают автоматизацию. Для решения задач такого рода призваны так называемые пакеты «символьных вычислений». В иностранной литературе этот класс пакетов обозначается аббревиатурой CAS – Computer Algebra Systems. Среди них можно назвать такие пакеты, как Maple, Mathematica, Macsyma, Derive, Axiom. В настоящем цикле лабораторных работ используется первый из них. Maple является динамично развивающимся программным продуктом с широким спектром возможностей. Для выполнения лабораторных работ вполне достаточно Maple V Release 4. Для языков Maple, Mathematica и Derive встроенные справочники являются, по-видимому, наиболее доступными учебниками как по синтаксису, так и по использованию команд. Всю необходимую информацию можно получить в Maple используя команды: ? (help) - помощь,?? (usage) - проверка синтаксиса, ??? (example) - пример для данной команды, или меню в оболочке Maple для Windows. Тем не менее, ниже будут рассмотрены основные конструкции, которые потребуются для выполнения работ.
Выражения 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:= x + 9
> w:=u-3; w:= x + 6
> u:='u'; u:= u
> u; u
> w; x + 6
В Maple широко используются такие конструкции, как упорядоченные списки, которые пишутся в квадратных скобках, и неупорядоченные множества, для записи которых используются фигурные скобки. Элемент списка или множества, а также операнд, можно извлечь при помощи команды op. Например: > q:=sin((x+7)^2)+a; q:= sin((x + 7)) + a
> op(1,q); sin((x + 7))
> op([1,1,1],q); x + 7
> m:=[1,2,b,c+6]; m:= [1, 2, b, c + 6]
> m[4]; c + 6
> op(4,m); op([4,1],m); c + 6 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 для разбиения группы команд на секции и склеивания, соответственно.
Преобразование выражений Рассмотрим несколько простых команд. Наиболее тривиальная из них – simplify (упростить), хотя ее результаты для сложных выражений могут быть довольно бесполезными. Дело в том, что само понятие простоты применительно к алгебраическим выражениям невозможно даже формализовать, не говоря о большем. Как правило, требуется пользоваться более специализированными командами, такими как factor (разложить на множители), expand (раскрыть скобки или раскрыть тригонометрические функции кратных аргументов), combine (обратная функция к expand для тригонометрических выражений). Полезными могут оказаться также функции numer и denom, выделяющие числитель и знаменатель дроби, соответственно. Для вынесения за скобки переменной используется функция collect. Для простой подстановки используется функция subs, а для более сложных случаев – так называемая «алгебраическая подстановка» – algsubs. С примерами применения всех упомянутых и описываемых ниже функций очень желательно познакомиться в справочной системе.
Решение алгебраических уравнений
Для решения обыкновенных уравнений используется функция 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); 2 1/2 q:= ((1 - x))
> simplify(q); csgn(x - 1) (x - 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); 1/2
> evalf(sqrt(2)); 1.4142135623730951
> Digits:=30; Digits:= 30
> evalf(sqrt(2)); 1.41421356237309504880168872421
Дифференцирование и построение графиков
Для решения задачи потребуется операция дифференцирования, которая осуществляется командой diff. Для построения простейших графиков используется команда plot, применение которой иллюстрируется четырьмя строками ниже. Ясно, что первая и вторая строки рисуют график синусоиды на интервале от до , а третья и четвертая – графики синусоиды и экспоненты. > plot(sin,-Pi..Pi); > plot(sin(x),x=-Pi..Pi); > plot([sin,exp],-Pi..Pi); > plot([sin(t),exp(t)],t=-Pi..Pi);
Более подробно с этой командой, а также с модулем plots для создания более сложных графиков можно ознакомиться в документации.
3. ЗАДАНИЕ ПО РАБОТЕ И СОДЕРЖАНИЕ ОТЧЕТА
В работе требуется решить одну оптимизационную задачу при помощи метода Ферма, а также два примера по упрощению выражений – один алгебраический и один тригонометрический [1]. Если пример решается в одно действие, пояснить промежуточные шаги средствами Maple. Номера задачи и примеров для каждого варианта в таблице вариантов заданий. Ниже приведен список задач и примеров. Задача 1. (о наилучшей освещенности)
Электрическая лампа может передвигаться вдоль вертикального шеста с помощью тросика. На какой высоте h ее следует поместить, чтобы освещенность в точке А, расположенной на расстоянии l от основания шеста была наибольшей. Освещенность пропорциональна синусу угла a и обратно пропорциональна квадрату расстояния D.
Задача 2. (о максимальной отдачи мощности в электрической цепи) Рассмотрим электрическую цепь, показанную на рисунке. Здесь e – источник напряжения (генератор), r – его внутреннее сопротивление, R – сопротивление нагрузки. Требуется определить, при каком сопротивлении R будет происходить максимальная отдача мощности в нагрузку. Каков при этом будет коэффициент полезного действия?
Задача 3. (о шайбе и трамплине) Шайба движется по гладкой поверхности без трения со скоростью V. При какой высоте трамплина h (см. рис.) дальность полета S окажется максимальной? Точная форма трамплина и масса шайбы неизвестны, верх трамплина горизонтален. (Задача решается через кинетическую и потенциальную энергию).
Задача 4. (яйцо в кастрюле)
"Яйцо в кастрюле". В цилиндрическом сосуде (кастрюле) диаметра 1 лежит круглое яйцо. При каком диаметре яйца d потребуется больше всего воды, чтобы целиком скрыть яйцо. Объем цилиндра определяется формулой , а объем шара . Задача 5. (линейка на спице)
На каком расстоянии от центра деревянной линейки длины L надо сделать отверстие, чтобы период ее колебаний на спице, пропущенной в это отверстие, был минимальным? Частота колебаний линейки определяется формулой , где I l – момент инерции линейки относительно точки подвеса. Его можно найти с помощью формулы Штейнера I l = ml 2 + I0, где I0 = m L2 / 12 – момент инерции линейки относительно ее центра тяжести.
Отчет по работе должен содержать:
1. Решение примера на тождественное преобразование алгебраических выражений с использованием Maple. 2. Решение примера на тождественное преобразование тригонометрических выражений с использованием Maple. 3. Описание и аналитическое решение оптимизационной задачи. 4. Аналитическое и численное решения задачи с использованием пакета Maple. 5. График исследуемой зависимости с отмеченной точкой экстремума. График производной этой зависимости с отмеченным нулем.
4. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Найти экстремум тестовой функции Розенброка: 2. Написать функцию для построения тестовой функции Розенброка порядка n: можно обозначить как x[i]. Воспользуйтесь функцией sum. 3. Найти точку, в которой достигается максимум фукции на множестве . 4. Построить полином с корнями -1,0,1,7 и показать его график. Показать, что в этих точках полином обращается в ноль. 5. Проверить, делится ли полином на ? 6. Найти экстремум функции y = 2 x 12 + 8 x 22 + x 32 + 4 x 1 x 2 + 2 x 1 x 3 – 4 x 3.
5. ВАРИАНТЫ ЗАДАНИЙ
[1] Постарайтесь объяснить, какова разница между этими способами, и какой из них предпочтительней Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.012 сек.) |