§2.1 Способы задания функций. Замена переменных

— программный пакет который может быть использован для самых различных целей. Его можно использовать в качестве продвинутого калькулятора, который может не только выполнять арифметические действия, но и брать производные, интегралы, перемножать матрицы и строить графики функций. В тоже время, в эту систему входит современный язык программирования который является процедурным (параллельным), объектно-ориентированнным и прикладным в одном флаконе. Кроме того, он может быть интегрирован с MatLab , а также позволяет вызывать внешнии процедуры-компилляции программ на C и Fortran . В общем то он позволяет даже создать собственный язык программирования при наличии желания. Эта среда позволяет создавать прототипы для различных технических, научных разработок с целью последующего написания кода на других языках.

Такое многообразие способностей этой среды может несколько затруднить его изучение с цель последующего использования. Как правило, начинающий пользователь изучает его методом тыка с использованием отличного встроенного Help . К сожалению достойных упоминания руководств на русском языке я не встречал. Следует отметить три руководства на английском языке, которые стоит прочесть в обязательном порядке:

Все три можно найти в открытом доступе. Я в этой рубрике буду делиться своим опытом работы в Maple и приводить примеры работы и настройки.

Начать естественно следует с установки. Система эта не из дешевых, но для ознакомления можно найти ее на различных торрентах, например на https://rutracker.org/. Как для Linux , так и для Windows .

Установив, запускаем и видим слева колонку с Pallettes|Workbook , справа разделенное на две части окно с большим количеством иконок:

Для начала можно ознакомится с различными готовыми примерами различных областей математики, программирования, естественных наук — перейдя по иконкам в правой части окна и запуская соответствующие документы Maple . Эти документы можно редактировать и сохранять. Самостоятельную работу мы начинаем кликнув в правой части окна на New Document или New Worksheet . Разница между этими двумя типами невелика приведена в таблице. Мы далее будем использовать Worksheet . Исполняемые строки здесь начинаются значком [> . Команды Maple будем отображать жирным шрифтом. После значка [> можно вводить команды, которые заканчиваются или точкой с запятой или двоеточием. Например на арифметическую операцию:

sin(3.)+1;

После команды жмем Enter или мышкой знак! сверху в меню. Заметьте разницу между такой командой и двумя похожими: sin(3)+1; и sin(3)+1: Результат последней не отобразится на экране — т.к. команда завершена знаком:.
Такой знак используется, когда вам не нужен результат, и/или он слишком громоздкий. Например, присвоив переменной a значение: a:=Pi: Мы не нуждаемся в подтверждении того, что a равно 3.1415…. Мы можем далее это a использовать например так:

b:=2*a;

результат отобразится как $b:=2\pi$. Заметьте, что присваиваем мы с помощью := . Обычный знак равенства используется с несколько иной целью. Maple знает, что Pi означает число $\pi$. Чтобы получить его численное значение нужно использовать специальную функцию таким например образом:

b:=evalf(2*a);

В результате мы получим значение числа пи с точностью которая в настоящий момент используется в Maple . И здесь внимание! Maple может использовать много-много значные числа. По умолчанию 10 знаков. Это число можно легко поменять. Я обычно в документе пишу в самом начале так:

restart: Digits:=16:

Таким образом, в документе будут использоваться вычисления с 16 цифрами. Это число можно менять максимальное значение для вашей ОС можно получить командой

kernelopts(maxdigits);

У меня максимальное значение Digits=38654705646. Заметьте, что я также использовал в начале команду restart: Эта команда очень удобна, если вы исправляете документ во время одной сессии, в этом случае вам не надо перезапускать Maple закрывая и открывая его. Вы просто после иправлений нажимете кнопку !!! в верхней панели Maple и все пересчитывается с полным обновлением всех переменных.

Основные объекты (определение, ввод, действия с ними)

Числа

Maple V работает с числами следующего типа:

    целыми десятичными (О, 1, 123, -456 и т.д.),

    рациональными в виде отношения целых чисел (7/9, -123/127 и т.д.),

    радикалами,

    вещественными с мантиссой и порядком (1.23E5, 123.456E-10)

    комплексными (2+3*I)

Целые числа задаются в виде последовательности цифр от 0 до 9.

Получить список всех команд для работы с целыми числами можно, набрав команду: ?integer . Приведем некоторые из этих команд:

Обыкновенные дроби задаются с помощью операции деления лвух целых чисел.

Заметим, что Maple автоматически произвадит сокращение дробей. Над обыкновенными дробями можно выполнять все основные арифметические операции. Если при задании дроби ее знаменатель сокращается, то такая "дробь" трактуется программой Maple как целое число. Для преобразования обыкновенной дроби в десятичную служит команда evalf() . Второй параметр этой команды задает число значащих цифр. Заметим, что десятичное представление всего лишь аппроксимация точной величины, представленной обыкновенной дробью, т.е. дробь и ее десятичное представление не являются идентичными объектами Maple.

Радикалы задаются как результат возведения в дробную степень целых или дробных чисел, или вычисления из них же квадратного корня функцией sqrt() , или корня n -ой степени функцией surd(число, n) .

Числа с плавающей точкой задаются в виде целой и дробной частей, разделенных десятичной точкой. Их можно представтить также, используя так называемую экспоненциальную форму записи (для указания порядка применяется символ e или E ).

Константы

Maple содержит целый ряд предопределенных именованных констант - таких, к значениям котрых можно обращаться по имени. Часть этих констант не может быть изменена. К ним относятся:

Число е задается как exp(1) .

Посмотреть все константы, определенные в Maple, можно, исполнив команду: ?ininame

Кроме перечисленных на странице Cправки констант все прерменные, имена которых начинаются с _Env , по умолчанию являются системными константами Maple.

Строки

Строки - любой набор символов, заключенный в ДВОЙНЫЕ кавычки. Длина строки в Maple практически не ограничена и может достигать на 32-битных компьютерах длины 268 435 439 символов.

Переменные, неизвестные и выражения

Каждая переменная Maple имеет имя, представляющее последовательность латинских символов, начинающихся с буквы, причем строчные и прописные буквы считаются различными. Кроме букв в именах переменных могут использоватьсчя цифры и знак подчеркивания, но ПЕРВЫМ символом имени должна быть БУКВА.

Выражение представляет собой комбинацию имен переменных, чисел и, возможно, других объектов Maple, соединенных знаками допустимых операций.

неизвестная величина , а выражение, содержащее неизвестные, называется символьным выражением. Именно для работы с такими выражениями прежде всего и разрабатывался Maple.

Важной операцией в Maple, связанной с выражениями, является операция присваивания (:=) . Она имеет следующий синтаксис: переменная:= выражение; Здесь в левой части задается имя переменной, а в правой - любое выражение, которое может быть числовым, символьным или просто другой переменной.

Переменные позволяют хранить и обрабатывать разнообразные типы данных. При этом по умолчанию переменная Maple имеет тип symbol, предсталяющий символьную переменную, и ее значением является ее собственное имя. При присвоении перемнной какого-нибудь значения, ее тип изменяется на тип присвоенного ей значения.

Внутренняя структура объектов Maple

Каждое алгебраическое выражение хранися системой Maple в виде древовидной структуры, обеспечивая тем самым доступ к любому ее члену или подвыражению, а также позволяя выполнять над ними разнообразные символьные преобразования. В представлении этой структуры каждый объект Maple делится на подобъекты первого уровня, которые, в свою очередь, такде делятся на подобъекты и т.д.

Команды, позволяющие выделять части объектов:

rhs(уравн)

Выделение правой части уравнения (или конца диапазона)

lhs(уравн)

Выделение левой части уравнения (или начала диапазона)

numer(дробь)

Выделение числителя числовой или алгебраической дроби

denum(дробь)

Выделение знаменателя числовой или алгебраической дроби

nops(выр)

Определяет количество операндов в выражении

op(выр) op(n,выр)

Выдает операнды выражения в виде списка, Извлекает n-ый операнд выражения

select(б ф, выр)

true

remove(б ф, выр)

Выделяет в выражении операнды, для которых булева функция дает значение false

indets(выр, тип)

Выделяет в выражении подвыражения заданного типа("*", "+" ...)

Познакомимся с этими командами более подробно.

Уравнение представляется в виде двух выражений, соединенных знаком равенства. Его не следует путать с операцией присваивания (:=). Уравнение является объектом Maple и служит для задания действительных уравнений. Его можно использовать в правой части операции присваивания, именуя тем самым уравнение.

В функции has() можно задать несколько подвыражений в виде списка. Ее результатом будет ИСТИНА тогда и только тогда, когда найдено хотя бы одно из подвыражений в списке.

Подстановка и преобразование типов

При выполнении математических преобразований часто необходимо произвести замену переменных в выражении, функции, уравнении и т.д., то есть вместо какой-то переменной подставить ее представление через некоторые другие переменные. А иногда необходимо выполнить преобразование выражения одного типа в другой. (Такое преобразование типов может потребоваться для выполнения некоторых команд, не работающих с исходным тиом выражения). Для этих целей в Maple существуетy несколько команд:

subs(подстановка, ВЫРАЖЕНИЕ)

Синтаксическая подстановка одного выражения вместо другого в ВЫРАЖЕНИЕ

algsubs(подстановка, ВЫРАЖЕНИЕ)

Алгебраическая подстановка одного выражения вместо другого в ВЫРАЖЕНИЕ

subsop(N=новое значение, ВЫРАЖЕНИЕ)

Подстановка нового значения вместо N-го операнда ВЫРАЖЕНИЯ

convert(ВЫРАЖЕНИЕ, тип)

Преобразует ВЫРАЖЕНИЕ в новый тип данных

whattype(ВЫРАЖЕНИЕ)

Определяет тип выражения.

Для подстановки вместо некоторой переменной (выражения) другого выражения служит команда subs() , синтаксис которой имеет следующий вид: subs(старое выражение=новое выражение, ВЫРАЖЕНИЕ) subs(s1, s2, .. sn, ВЫРАЖЕНИЕ) subs(, ВЫРАЖЕНИЕ) где каждое из s1,..sn является уравнением, определяющим подстановку.

Первая форма команды анализирует ВЫРАЖЕНИЕ , определяет в нем все вхождения старое выражение и подставляет вместо них новое выражение .

Вторая форма команды позволяет выполнить серию подстановок в ВЫРАЖЕНИЕ , причем подстановки выполняются последовательно, начиная с s1 . Это означает, что после выполнения первой подстановки, определенной s1 , Maple отыскивает вхождения левой части уравнения s2 во вновь полученном выражении и заменяет каждое такое вхождение на выражение, заданное в правой части уравнения s2 .

То есть вхождения выражений, заданных в левых частях уравнений s1, s2 , определяются в исходном параметре ВЫРАЖЕНИЕ . (см. примеры)

    Воспользоваться командой simplify() , указав в качестве параметра требуемую замену (см. след раздел).

    Воспользоваться командой algsubs() , которая осуществляет алгебраическую подстановку.

Отметим, что полное исключение "старой" переменной произведено только при использовании первого из указанных способов. В остальных случаях "старая" переменная все-таки остается в преобразованном выражении.

РЕШЕНИЕ МАТЕМАТИЧЕСКИХ ЗАДАЧ

В MAPLE

ЧАСТЬ I

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение высшего

«Нижегородский государственный университет им. »

МАТЕМАТИЧЕСКИХ ЗАДАЧ В MAPLE

факультета для студентов, обучающихся по

направлению подготовки 010100 - «Математика».

Нижний Новгород

УДК 621.396.218

Решение задач в MAPLE. Часть I. Составители: , : Учебно-методическая разработка. – Н. Новгород: Издательство Нижегородского госуниверситета, 2007. – 35 с.

Рецензенты:

доцент кафедры ЧиФА факультета ВМК,

к. ф.-м. н. ,

доцент кафедры ПиУОС Физического факультета,

Данная разработка представляет собой практическое руководство по изучению возможностей пакета аналитических вычислений Maple . Последовательное изучение тем и выполнение заданий позволит шаг за шагом освоить основные приемы работы в математической системе Maple .

Учебно-методическая разработка предназначена для студентов 2 и 3 курсов механико-математического факультета .

УДК 621.396.218

© Нижегородский государственный

университет им. , 2007

Системы компьютерной алгебры – это новые технологии в научных исследованиях и образовании. В последние годы получили широкое распространение такие системы общего назначения, как Maple, Mathematica.

Система Maple включена в интегрированную систему Scientific WorkPlace и применяется во многих ведущих университетах мира как в научных исследованиях, так и в учебном процессе. Ядро Maple входит в другие распространенные пакеты, такие как MathCad, MathLab.


Данная разработка позволит начинающему войти в технологию использования системы Maple, получить первые навыки, после чего он сможет уже самостоятельно разобраться в более тонких вопросах использования Maple. Хотелось бы отметить, что эта разработка ни в коей мере не является описанием системы Maple. Она предназначена в первую очередь для обучения студентов-математиков решению основных математических задач при помощи Maple.

1. НАЧАЛЬНЫЕ СВЕДЕНИЯ. ТИПЫ ДАННЫХ

Диалог с системой протекает в стиле «вопрос-ответ». Команда начинается с символа > и заканчивается либо точкой запятой (; ), либо двоеточием (: ). Для выполнения команды необходимо нажать клавишу Enter . Если в конце команды стоит точка с запятой, то на экран будет выведен результат действия команды или сообщение об ошибке. Двоеточие в конце команды означает, что команда будет выполнена, но ее результат на экран не будет выводиться. Символ # используется для ввода текстовых комментариев. Также для ввода текста используется клавиша с символом T на панели инструментов. Для возвращения к вводу команд следует нажать клавишу с символом >. Для вызова результата действия предыдущих команд используются символы %, %% или %%%, соответственно. Команда restart отменяет результат действия всех предыдущих команд.

Переменные в Maple характеризуются именем и типом. Имя переменной в Maple может состоять из букв, цифр и некоторых специальных символов, но обязательно должно начинаться с буквы. Ограничений на длину имени нет. Кроме того, Maple различает строчные и прописные буквы. Для присваивания переменной конкретного значения применяется оператор := . Переменные могут использоваться в математических выражениях и функциях без предварительного определения.

Рассмотрим особенности записи в Maple данных числового, строкового и множественного типов.

Выражение принадлежит к целому типу (integer ), если оно состоит из последовательности цифр, не разделенных никакими знаками. Выражения вида a/b, где a, b – целые числа принадлежат к дробному типу (fraction ). К числам с плавающей точкой (float ) относятся выражения вида a. b, a. и. b. Также числа типа float можно записать в показательной форме a*10^b. Комплексные числа (complex ) в Maple записываются в алгебраической форме: a+I*b, где a, b – вещественные числа.

Строковое выражение типа string - это любая конечная последовательность символов, с обеих сторон заключенная в верхние двойные кавычки. Последовательность символов, взятая в обратные кавычки, считается символом (symbol ).

Множество (set ) в Maple задается перечислением в фигурных скобках элементов множества. Например,

> A:={x^n$n=1..6};

> B:={a, a,b, b,b, c};

https://pandia.ru/text/78/155/images/image003_72.gif" width="197" height="26">

Для создания массива используется команда array(i1..j1, i2..j2,..., M), которая возвращает массив с элементами из списка M.

Обращение к элементам множества, списка, массива происходит с указанием индексов элемента в квадратных скобках.


> V:=array(1..2,1..2,1..2,[[,],[,]]);

https://pandia.ru/text/78/155/images/image006_53.gif" width="16 height=19" height="19">

Массив также можно задать командой вида V:=array(1..2,1..2,1..2,); , переопределив затем значения V с помощью оператора присваивания.

В Maple можно записать буквы греческого алфавита в полиграфическом виде. Для этого в командной строке набирается название греческой буквы.

> beta+Gamma+delta;

Задание 1.1

1. Задайте множество A, состоящее из целых чисел от 3 до 20, и множество B, состоящее из квадратов этих чисел. Найдите объединение, пересечение, разность множеств A и B. Найдите мощности всех полученных множеств.

2. Задайте произвольный список и четырехмерный массив.

2. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ, ФУНКЦИИ. ПРЕОБРАЗОВАНИЯ АРИФМЕТИЧЕСКИХ

ВЫРАЖЕНИЙ И РЕШЕНИЕ УРАВНЕНИЙ

2.1. Вычисления в Maple

Для записи математических выражений в Maple используются операторы сложения (+), вычитания (-), умножения (*), деления (/), возведения в степень (^), оператор присваивания (:=). Порядок выполнения математических операций является стандартным.

Пример.

> (a*b^4-(a*b)^4)/7;

Основные константы в Maple обозначаются следующим образом: Pi - число π, I - мнимая единица i, exp(1) - основание натуральных логарифмов e, infinity – бесконечность, true - истина, false – ложь. Используются следующие знаки сравнения: <, >, >=,<=, <>, = .

Система Maple одинаково успешно справляется как с символьными вычислениями, так и с численными. По умолчанию расчеты проводятся символьно.

Пример.

>1/2+123/100+ sqrt (3);

Часть выражения, в которой встречается число, записанное с плавающей запятой (float), будет вычислена приближенно.

Пример.

>2+ sqrt (2.0)- Pi ;

Все вычисления по умолчанию проводятся с десятью значащими цифрами. Количество значащих цифр можно изменить, применив команду > Digits : = n .

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

https://pandia.ru/text/78/155/images/image012_43.gif" width="414" height="19">

2.2. Задание функций

В Maple встроено большое количество функций. Перечислим обозначения для основных элементарных функций..gif" width="83 height=57" height="57">

Рассмотрим несколько способов определения новых функций:

1) присваивание переменной некоторого выражения

имя переменной:=выражение;

имя переменной(список параметров):=выражение;

Пример.

> f (t ):= cos (t )^2+1;

> f (0);

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

https://pandia.ru/text/78/155/images/image018_28.gif" width="106" height="33">

> value(%);

https://pandia.ru/text/78/155/images/image021_25.gif" width="100" height="33">

>x := Pi : y :=10: f ;

Команда value (выражение) используется для вычисления значения выражения.

Следует обратить внимание на то, что после присвоения переменной x конкретного значения x:=a, переменная x перестанет быть неопределенной. Вернуть x статус непределенной переменной можно командой > x := evaln (x ); или снять присваивание командой > x :=’ x ; либо отменить все присваивания командой restart .

2) Определение функции с помощью функционального оператора

имя функции:=список параметров -> выражение;

Обращение к функции, заданной таким способом, происходит стандартным образом: имя функции(a, b, …), где a, b, … - конкретные значения переменных.

Пример.

> f 1:=(x , y , z ) -> x ^(y ^ z );

> f1(2,2,2); f1(x,2,2);

https://pandia.ru/text/78/155/images/image024_25.gif" width="25" height="26 src=">

3) Функцию можно задать с помощью команды

unapply(выражение, параметры) , которая преобразовывает выражение в функциональный оператор.

Пример.

> f2:=unapply(sin(x)^2+2*exp(y^2),x, y);

> f 2(Pi /4,1);

https://pandia.ru/text/78/155/images/image027_22.gif" width="189" height="107"> используется команда

https://pandia.ru/text/78/155/images/image028_21.gif" width="248" height="77">

> f1:=convert(f, piecewise);

> f2:=unapply(f1,x);

> f 2(-1/2); f 2(-1);

https://pandia.ru/text/78/155/images/image032_20.gif" width="196" height="27">.gif" width="73" height="49">. Упростите полученные выражения.

3. Найдите значение выражения . Для выполнения преобразований комплексного числа применяется функция evalc .

4. Запишите функцию без знака модуля.

5. Задайте и найдите f(-10)+3f(-1)+f(3).

6. Задайте функцию в виде функционального оператора и найдите ее значение при x=-1, y=.

2.3. Преобразование математических выражений

Maple обладает широкими возможностями для аналитических преобразований математических формул. К ним относятся такие операции, как приведение подобных, разложение на множители, раскрытие скобок, приведение рациональной дроби к нормальному виду и многие другие.

В Maple можно преобразовывать как все выражение в целом, так и отдельные его части.

Для выделения левой (правой) части в математическом выражении вида A=B используются команды

lhs (выражение);

rhs (выражение);

Для выделения числителя (знаменателя) используются команды

numer (выражение);

denom (выражение);

Пример .

>F:=(a^3+b)/(a-b)=3*a^2+b^2/(a+b);

>numer(rhs(F));

>denom (rhs (F ));

Для выделения некоторой части выражения, списка или множества служит команда

op (i ,выражение) , где i – число, определяющее позицию в выражении.

Пример.

> x + y + z ; >op (2,%);

Gif" width="12" height="12 src="> isolate (уравнение, выражение);

Пример .

> P := 2* ln (x )* exp (x ) -3* exp (y )+7=10* ln (x ) - exp (y ):

> isolate(P, y);

> R:=5*(x^2)*sin(x)+1=5*sin(x):

> isolate (R , sin (x ));

1) Приведение подобных членов в выражении по переменной осуществляется командой

https://pandia.ru/text/78/155/images/image047_14.gif" width="439" height="28">

2) Разложить на множители выражение можно с помощью команды

https://pandia.ru/text/78/155/images/image050_16.gif" width="186" height="56">

>factor(x^4-3*x^3+2*x^2+3*x-9);

>factor(x^3+x-3*sqrt(2));

>factor(x^3+16, {2^(1/3),sqrt(3)});

>alias(w=RootOf(x^3+2*x+1)); factor(x^3+2*x+1,w);

https://pandia.ru/text/78/155/images/image055_15.gif" width="504" height="26 src=">

> convert(%,radical);

https://pandia.ru/text/78/155/images/image057_17.gif" width="303" height="57">

> factor(x^2+x+1,complex);

Gif" width="12" height="12 src="> expand (выражение, опции) , где в опциях можно указать выражение, скобку с которым раскрывать не следует. Данную команду также используют для действий с экспонентами и сведения тригонометрических выражений к тригонометрическим функциям простых аргументов.

Пример .

>expand((x+1)*(x+2)*(x+3)*(x+4));

>expand((x+y)*(x+3), x+3);

>expand(exp(a-n*b+ln(c)));

>expand (tan (3* x ));

4) Привести дробь к нормальному виду можно с помощью команды

https://pandia.ru/text/78/155/images/image063_16.gif" width="60" height="54">

>normal(sin(2*x+3+4/(x-1)+5/(x-2)), expanded);

5) Для преобразований выражений, содержащих радикалы, применяется команда

rationalized " для того, чтобы избавиться от иррациональностей в знаменателях, " expanded " для раскрытия всех скобок.

Пример .

> (7+5* sqrt (2))^(1/3);

> radnormal ((7+5* sqrt (2))^(1/3));

> a := sqrt (3)/(3^(1/2)+6^(1/2));

rationalized ");

6) Упрощение выражений осуществляется командой

DIV_ADBLOCK515">

Пример .

>(sqrt(2)+sqrt(3))*(sqrt(2)-sqrt(3));

>simplify((sqrt(2)+sqrt(3))*(sqrt(2)-sqrt(3)));

> f:=(1-cos(x)^2+sin(x)*cos(x))/(sin(x)*cos(x)+cos(x)^2); simplify(f, trig);

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

Пример .

> g:=sqrt(x^2);

> simplify(g, assume=real);

> simplify(g, assume=positive);

>simplify(g, symbolic);

Команда simplify позволяет выполнить преобразования в выражении при заданных условиях (условия указываются в фигурных скобках).

Пример .

> f:= -3*x*y + x+y: simplify(f, {x = a-b, y = a+b});

В некоторых случаях бывает полезно предварительно преобразовать выражение при помощи команды

https://pandia.ru/text/78/155/images/image076_12.gif" width="276" height="54">

>simplify(B, trig);

>convert(%,tan):

>simplify (%);

7) Объединить части выражения по определенным правилам можно при помощи команды

https://pandia.ru/text/78/155/images/image079_12.gif" width="94" height="25 src=">, , при указании опции ln происходит потенцирование. Так же как для simplify в опциях можно указать symbolic .

Пример .

> combine(exp(sin(a)*cos(b))*exp(-cos(a)*sin(b)),);

>combine((a^3)^2+a^3*a^3);

Gif" width="12" height="12 src="> solve(уравнение, переменные).

Переменные перечисляются в фигурных скобках через запятую. Если не указывать набор переменных в параметрах команды, то решение будет найдено для всех переменных, участвующих в уравнениях. Если требуется решить систему уравнений, то уравнения системы указываются в фигурных скобках через запятую. Результатом применения команды solve будет список решений данного уравнения, либо, если уравнение не имеет решений или командой solve они не могут быть найдены, в строке вывода не появится никаких сообщений. Со списком решений можно работать так же как с обычным списком.

Пример .

> eq:=(x-1)^3*(x-2)^2;

> s:=solve(eq);

> solve(x^4-11*x^3+37*x^2-73*x+70);

https://pandia.ru/text/78/155/images/image086_12.gif" width="349" height="22 src=">

>e:=solve(AX);

>rhs(e); subs(e, z);

DIV_ADBLOCK517">

Пример.

>e1:={x^2-y^2=1,x^2+x*y=3};

> s:=solve(e1,{x, y});

> _EnvExplicit:=true:

> solve(e1,{x, y});

Максимальное количество решений, которое может быть найдено с помощью команды solve, определяется значением глобальной переменной _MaxSols , имеющей по умолчанию значение равное 100. Если придать глобальной перменной _EnvAllSolutions значение true , то в случае бесконечного множества решений, команда solve для некоторых уравнений сможет оформить ответ в виде выражения, содержащего переменные определенного типа. Например, для тригонометрических уравнений ответ будет содержать целочисленные параметры вида _Z~.

Пример.

> _EnvAllSolutions:= true:

>solve(sin(2*x)=cos(x), x);

https://pandia.ru/text/78/155/images/image094_11.gif" width="274" height="51 src=">.gif" width="12" height="12 src="> f solve(уравнение, переменные, опции).

В опциях можно указать интервал, в котором будет производиться поиск корней, также можно указать complex - для нахождения всех комплексных корней, либо опцию maxsols=n – для нахождения n наименьших корней полинома. Если уравнение задано полиномом, то команда fsolve будет находить все вещественные приближенные корни, в общем случае команда fsolve будет находить только один численный корень уравнения, другие корни можно искать, изменяя интервал поиска так, чтобы найденный корень в него не входил.

Пример .

> fsolve(x-cos(x));

https://pandia.ru/text/78/155/images/image097_10.gif" width="641" height="23">

Для разрешения реккурентностей применяется команда

https://pandia.ru/text/78/155/images/image098_10.gif" width="255" height="22 src=">

> rsolve(e1,f);

> rsolve({e1,f(0)=1,f(1)=2},f);

С помощью команды solve также можно решать неравенства и системы уравнений и неравенств.

Пример .

> solve(ln(x)<1, x);

https://pandia.ru/text/78/155/images/image102_8.gif" width="119" height="23 src=">

> solve({x-y>=1,x-2*y<=1,x-3*y=0,x+y>=1},{x, y});

https://pandia.ru/text/78/155/images/image104_7.gif" width="180" height="56">.

2. Упростите выражение .

3. Упростите выражение .

4.Приведите подобные в выражении и вычислите его значение при a=-3, x=1.

5. Упростите выражение а) ; б) .

6. Избавьтесь от иррациональностей в знаменателе выражения .

7. Выразите , https://pandia.ru/text/78/155/images/image113_7.gif" width="46" height="48 src="> в радикалах.

8. Доказать, что , если A, B, C – углы треугольника.

9. Выразите через и https://pandia.ru/text/78/155/images/image118_7.gif" width="164" height="41">;

б) https://pandia.ru/text/78/155/images/image120_7.gif" width="88" height="47 src=">.

11. Разложите многочлен на множители над полем вещественных чисел и над полем рациональных чисел. Найдите разложение в радикалах.

12. Разложите многочлен на множители над полем вещественных чисел и над полем комплексных чисел. Найдите разложение в радикалах.

13. Решите уравнение .

14. Решите систему уравнений .

15. Решите систему уравнений и упростите ответ.

16. Численно найти все решения уравнения .

17. Найти три численных решения уравнения .

18. Решите систему неравенств .

19. Решите неравенство .

3 . ПОСТРОЕНИЕ ГРАФИКОВ

Эта часть посвящена возможностям системы Maple V в визуализации самых разнообразных вычислений.

3.1. Двумерные графики

Для построения графиков функции f(x) от одной переменной (в интервале https://pandia.ru/text/78/155/images/image132_6.gif" width="69" height="24"> по оси Оу ) используется команда

plot(f(x), x=a..b, y=c..d, options),

где options – опция или набор опций, задающих стиль построения графика. Если их не указывать, то будут использованы установки по умолчанию. Настройка изображения также может осуществляться с панели инструментов. Для этого следует щелкнуть левой кнопкой мыши по изображению. После этого становятся активными кнопки в нижнем ряду панели. Также можно узнать координаты точки на графике. Для этого необходимо подвести курсор к нужной точке графика и щелкнуть левой кнопкой мыши. Слева в нижнем ряду кнопок на панели появятся координаты. Настройка изображения также может осуществляться с помощью контекстного меню. Оно вызывается правой кнопкой мыши.

Основные параметры команды plot :

title=”text”, где text- заголовок рисунка (текст можно оставлять без кавычек, если он не содержит пробелов).

coords=polar – установка полярных координат (по умолчанию установлены декартовы).

axes – установка типа координатных осей: axes=NORMAL – обычные оси; axes=BOXED – график в рамке со шкалой; axes=FRAME – оси с центром в левом нижнем углу рисунка; axes=NONE – без осей.

scaling – установка масштаба рисунка: scaling=CONSTRAINED – одинаковый масштаб по осям; scaling=UNCONSTRAINED – график масштабируется по размерам окна.

style = LINE – вывод линиями, style = POINT вывод точками.

numpoints=n – число вычисляемых точек графика (по умолчанию n=50 ).

сolor – установка цвета линии: английское название цвета, например, yellow – желтый и т. д.

xtickmarks=nx и ytickmarks=ny – число меток по оси Оx и оси Оy , соответственно.

thickness=n, где n=1,2,3… - толщина линии (по умолчанию n=1 ).

linestyle=n – тип линии: непрерывная, пунктирная и т. д. (по умолчанию n=1 – непрерывная).

symbol=s - тип символа, которым помечают точки: BOX, CROSS, CIRCLE, POINT, DIAMOND .

font= – установка типа шрифта для вывода текста: f задает название шрифтов: TIMES, COURIER, HELVETICA, SYMBOL; style задает стиль шрифта: BOLD, ITALIC, UNDERLINE; size – размер шрифта в pt.

labels= – надписи по осям координат: tx – по оси Оx и ty – по оси Оy .

discont=true – указание для построения бесконечных разрывов, при этом на графике асимптоты не рисуются.

Пример. Построить график https://pandia.ru/text/78/155/images/image134_1.jpg" width="292 height=292" height="292">

Построение графика функции, заданной параметрически

С помощью команды plot можно строить также графики функций, заданных параметрически y=y(t), x=x(t) :

plot(, parameters) .

Пример. Построить график параметрической кривой , https://pandia.ru/text/78/155/images/image138_2.jpg" width="231 height=164" height="164">

Построение графика функции, заданной неявно

Для построения графика неявной функции F(x, y)=0 используется команда https://pandia.ru/text/78/155/images/image139_5.gif" width="80" height="27">.

>with(plots):implicitplot(x^2+y^2=1, x=-1..1, y=-1..1);

Gif" width="12 height=12" height="12"> textplot(, options), где x0, y0 – координаты точки, с которой начинается вывод текста ’text’ .

Вывод нескольких графических объектов на один рисунок

Если на одном рисунке нужно совместить несколько графиков функций, то можно воспользоваться командой

plot({f1(x), f2(x), …}, options);

Если необходимо нарисовать несколько графических объектов, полученных при помощи различных команд, то для этого результат действия команд присваивается некоторым переменным:

> p := plot (…): t := textplot (…):

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

display(, options) .

Пример . Построить графики функций https://pandia.ru/text/78/155/images/image142_6.gif" width="73" height="20 src=">.gif" width="59" height="24 src="> на одном рисунке.

> with(plots):

> p1:=plot(sin(x), x=-5..5, y=-2..2, thickness=3, color=blue):

> p2:=plot(cos(x), x=-5..5, y=-2..2, thickness=3, color=green):

> p3:=plot(tan(x), x=-5..5, y=-2..2, thickness=3, color=black):

> p4:=plot(ln(x), x=-5..5, y=-2..2, thickness=3, color=red):

> display(p1,p2,p3,p4);

https://pandia.ru/text/78/155/images/image146_5.gif" width="297 height=24" height="24"> , то для этого можно использовать команду inequal из пакета plots:

inequals({f1(x, y)>c1,…,fn(x, y)>cn}, x=x1…x2, y=y1..y2, options)

В фигурных скобках указывается система неравенств, задающих область, затем размеры координатных осей и параметры. С помощью параметров можно регулировать толщину линий границ, цвета открытых и закрытых границ, цвета внешней и внутренней областей:

.gif" width="12" height="12 src=">optionsexcluded=(color=yellow) – установка цвета внешней области;

.gif" width="12" height="12 src=">optionsclosed(color=green, thickness=3) – установка цвета и толщины линии закрытой границы.

Задание 3.1

1. Построить график https://pandia.ru/text/78/155/images/image148_6.gif" width="75" height="43">.

3..gif" width="72" height="20">, в рамке.

4..gif" width="83" height="23 src=">

> plot(1-sin(x^2), x=0..2*Pi, coords=polar, color=black, thickness=4);

5. Построить график гиперболы: .

6..gif" width="75" height="20 src=">) вписанной в эллипс . Подпишите эти линии жирным шрифтом курсивом.

> with (plots ):

> eq := x ^2/16+ y ^2/4=1:

> el:=implicitplot(eq, x=-4..4, y=-2..2, scaling=CONSTRAINED, color=green, thickness=3):

> as:=plot(, color=blue, scaling=CONSTRAINED, thickness=2):

> eq1:=convert(eq, string):

> t1:=textplot(, font=, align=RIGHT):

> t2:=textplot(, font=, align=RIGHT):

> t3:=textplot(, font=, align=LEFT):

> display();

7. Построить область, ограниченную линиями: , , .

> with (plots ):

> inequal({x+y>0, x-y<=1, y=2}, x=-3..3, y=-3..3,

optionsfeasible=(color=red),

optionsopen=(color=blue, thickness=2),

optionsclosed=(color=green, thickness=3),

optionsexcluded=(color=yellow));

3 .2. Трехмерные графики. Анимация

График поверхности, заданной явной функцией

График функции можно построить, используя команду

plot3d(f(x, y), x=x1…x2, y=y1…y2, options) .

Параметры этой команды частично совпадают с параметрами команды plot. К часто используемым параметрам команды plot3d также относится

light= – задание подсветки поверхности, создаваемой из точки со сферическими координатами (angl1 , angl2 ). Цвет определяется долями красного (c1 ), зеленого (c2 ) и синего (c3 ) цветов, которые находятся в интервале .

style=opt задает стиль рисунка: POINT –точки, LINE – линии, HIDDEN – сетка с удалением невидимых линий, PATCH – заполнитель (установлен по умолчанию), WIREFRAME – сетка с выводом невидимых линий, CONTOUR – линии уровня, PATCHCONTOUR – заполнитель и линии уровня.

shading=opt задает функцию интенсивности заполнителя, его значение равно xyz – по умолчанию, NONE – без раскраски.

Трехмерные изображения удобнее настраивать не при помощи опций команды plot3d , а используя контекстное меню программы. Для этого следует щелкнуть правой кнопкой мыши по изображению. Тогда появится контекстное меню настройки изображения. Команды этого меню позволяют изменять цвет изображения, режимы подсветки, устанавливать нужный тип осей, тип линий. Так же как и для двумерных графиков можно активировать нижний ряд кнопок на панели инструментов, щелкнув левой кнопкой мыши по изображению. Поворачивать изображение можно с помощью кнопок панели или удерживая левую кнопку мыши.

Пример. Построить поверхность вместе с линиями уровня

https://pandia.ru/text/78/155/images/image160_0.jpg" width="321" height="198">

График поверхности, заданной параметрически

Если требуется построить поверхность, заданную параметрически: x =x (u ,v ), y =y (u ,v ), z =z (u ,v ), то эти функции перечисляются в квадратных скобках в команде:

plot3d(, u=u1..u2, v=v1..v2) .

Пример . Построить тор.

> plot3d(, s=0..2*Pi, t=0..11*Pi/6, grid=, style=patch, axes=frame, scaling=constrained);

https://pandia.ru/text/78/155/images/image162_4.gif" width="99" height="24">, строится с помощью команды пакета plot s :

implicitplot3d(F(x, y,z)=c, x=x1..x2, y=y1..y2, z=z1..z2), где указывается уравнение поверхности и размеры рисунка по координатным осям.

График пространственных кривых

В пакете plot s имеется команда spacecurve для построения пространственной кривой, заданной параметрически: .

spacecurve ([ x (t ), y (t ), z (t )], t = t 1.. t 2) , где переменная t изменяется от t1 до t2 .

Построение нескольких трехмерных фигур на одном графике

Команда plot 3 d позволяет строить одновременно несколько фигур, пересекающихся в пространстве. Для этого достаточно вместо описания одной поверхности задать список описаний ряда поверхностей. При этом функция plot 3 d обладает уникальной возможностью – автоматически вычисляет точки пересечения фигур и показывает только видимые части поверхностей. Это создает изображения, выглядящие вполне естественно.

Пример. Выполнить построение двух поверхностей и в пределах https://pandia.ru/text/78/155/images/image168_4.gif" width="39" height="19">.

> plot 3 d ({ x * sin (2* y )+ y * cos (3* x ), sqrt (x ^2+ y ^2)-7}, x =- Pi .. Pi , y =- Pi .. Pi , grid =, axes = FRAMED , color = x + y );

Анимация

Maple позволяет выводить на экран движущиеся изображения с помощью команд animate (двумерные) и animate3d (трехмерные) из пакета plot s . Суть анимации при использовании данных функций заключается в построении серии кадров, причем каждый кадр связан со значением изменяемой во времени переменной t. Среди параметров команды animate3d есть

frames – число кадров анимации (по умолчанию frames=8 ).

Управлять движущимся изображением удобнее с помощью контекстного меню.

Задание 3 .2

1. Построить график поверхности .

2. Построить шар :

3..gif" width="65" height="21 src=">.gif" width="173 height=53" height="53">.gif" width="95" height="48 src=">.gif" width="71" height="23 src=">.

Выведите название рисунка, подпишите названия осей и установите одинаковый масштаб по осям.

6. Нарисовать движущийся объект – лист Мебиуса.

4 . МАТЕМАТИЧЕСКИЙ АНАЛИЗ

Рассмотрим основные функции для решения задач математического анализа, встроенные в пакет Maple.

4 .1. Предел функции и дифференцирование

Вычисление пределов осуществляется при помощи команды

.gif" width="12" height="12 src=">Limit (выражение, x=a, параметры) .

Пример .

>Limit(ln(cos(a*x))/(ln(cos(b*x))), x=0)=limit(ln(cos(a*x))/(ln(cos(b*x))), x=0);https://pandia.ru/text/78/155/images/image181_4.gif" width="215" height="58 src=">

Дифференцирование в Maple выполняется при помощи команды

DIV_ADBLOCK519">

https://pandia.ru/text/78/155/images/image182_4.gif" width="262" height="54">

В Maple имеется несколько способов представления функции.

Способ 1. Определение функции с помощью оператора присваивания (:= ): какому-то выражению присваивается имя, например:

> f:=sin(x)+cos(x);

Если задать конкретное значение переменной х , то получится значение функции f для этого х . Например, если продолжить предыдущий пример и вычислить значение f при , то следует записать:

> x:=Pi/4;

После выполнения этих команд переменная х имеет заданное значение .

Чтобы насовсем не присваивать переменной конкретного значения, удобнее использовать команду подстановки subs({x1=a1, x2=a2,…, },f), где в фигурных скобках указываются переменные хi и их новые значения аi (i =1,2,…), которые следует подставить в функцию f . Например:

> f:=x*exp(-t);

> subs({x=2,t=1},f);

Все вычисления в Maple по умолчанию производятся символьно, то есть результат будет содержать в явном виде иррациональные константы, такие как, и другие. Чтобы получить приближенное значение в виде числа с плавающей запятой, следует использовать команду evalf(expr,t), где expr – выражение, t – точность, выраженная в числах после запятой. Например, в продолжение предыдущего примера, вычислим полученное значение функции приближенно:

> evalf(%);

Здесь использован символ (% ) для вызова предыдущей команды.

Способ 2. Определение функции с помощью функционального оператора, который ставит в соответствие набору переменных (x1,x2,…) одно или несколько выражений (f1,f2,…) . Например, определение функции двух переменных с помощью функционального оператора выглядит следующим образом:

> f:=(x,y)->sin(x+y);

Обращение к этой функции осуществляется наиболее привычным в математике способом, когда в скобках вместо аргументов функции указываются конкретные значения переменных. В продолжение предыдущего примера вычисляется значение функции:

Способ 3. С помощью команды unapply(expr,x1,x2,…) , где expr – выражение, x1,x2,… – набор переменных, от которых оно зависит, можно преобразовать выражение expr в функциональный оператор. Например:

> f:=unapply(x^2+y^2,x,y);

В Maple имеется возможность определения неэлементарных функций вида

посредством команды

> piecewise(cond_1,f1, cond_2, f2, …).

Например, функция

записывается следующим образом.

В Maple имеется несколько способов представления функции.

Способ 1. Определение функции с помощью оператора присваивания (:= ): какому-то выражению присваивается имя, например:

> f:=sin(x)+cos(x);

Если задать конкретное значение переменной х , то получится значение функции f для этого х . Например, если продолжить предыдущий пример и вычислить значение f при , то следует записать:

> x:=Pi/4;

После выполнения этих команд переменная х имеет заданное значение .

Чтобы насовсем не присваивать переменной конкретного значения, удобнее использовать команду подстановки subs({x1=a1, x2=a2,…, },f), где в фигурных скобках указываются переменные хi и их новые значения аi (i =1,2,…), которые следует подставить в функцию f . Например:

> f:=x*exp(-t);

> subs({x=2,t=1},f);

Все вычисления в Maple по умолчанию производятся символьно, то есть результат будет содержать в явном виде иррациональные константы, такие как, и другие. Чтобы получить приближенное значение в виде числа с плавающей запятой, следует использовать команду evalf(expr,t), где expr – выражение, t – точность, выраженная в числах после запятой. Например, в продолжение предыдущего примера, вычислим полученное значение функции приближенно:

> evalf(%);

Здесь использован символ (% ) для вызова предыдущей команды.

Способ 2. Определение функции с помощью функционального оператора, который ставит в соответствие набору переменных (x1,x2,…) одно или несколько выражений (f1,f2,…) . Например, определение функции двух переменных с помощью функционального оператора выглядит следующим образом:

> f:=(x,y)->sin(x+y);

Обращение к этой функции осуществляется наиболее привычным в математике способом, когда в скобках вместо аргументов функции указываются конкретные значения переменных. В продолжение предыдущего примера вычисляется значение функции:

Способ 3. С помощью команды unapply(expr,x1,x2,…) , где expr – выражение, x1,x2,… – набор переменных, от которых оно зависит, можно преобразовать выражение expr в функциональный оператор. Например:

> f:=unapply(x^2+y^2,x,y);

В Maple имеется возможность определения неэлементарных функций вида

посредством команды

> piecewise(cond_1,f1, cond_2, f2, …).

Например, функция

записывается следующим образом.