АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

МЕТОД ФЕРМА. ВВЕДЕНИЕ В ПАКЕТ Maple

Читайте также:
  1. F. Метод, основанный на использовании свойства монотонности показательной функции .
  2. FAST (Методика быстрого анализа решения)
  3. I Введение
  4. I ВВЕДЕНИЕ.
  5. I этап Подготовка к развитию грудобрюшного типа дыхания по традиционной методике
  6. I. 2.1. Графический метод решения задачи ЛП
  7. I. 3.2. Двойственный симплекс-метод.
  8. I. ВВЕДЕНИЕ
  9. I. ВВЕДЕНИЕ
  10. I. Введение
  11. I. Введение
  12. I. Введение

 

Цельработы: ознакомиться с пакетом символьных вычислений 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 Пример Б.1 доказать тождество:
Пример А.2 Пример Б.2 решить уравнение:  
Пример А.3 Пример Б.3 решить уравнение:
Пример A.4 вычислить Пример Б.4 решить уравнение:
Пример A.5 вычислить Пример Б.5 решить уравнение:
Пример A.6   Пример Б.6 решить уравнение:
Пример A.7   Пример Б.7 решить уравнение:
Пример A.8 разложить на множители:   Пример Б.8 решить уравнение:
Пример A.9 доказать тождество:   Пример Б.9 дано: найти
Пример A.10 доказать, что если , то   Пример Б.10 показать, что уравнение не имеет корней

 

 

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

 

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. ВАРИАНТЫ ЗАДАНИЙ

                   
задача                    
A                    
B                    

 

                   
Задача                    
A                    
B                    

[1] Постарайтесь объяснить, какова разница между этими способами, и какой из них предпочтительней


Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.013 сек.)