Subs maple что это
Прежде чем использовать команды Maple для выполнения алгебраических преобразований, вначале покажем как выполняются стандартные преобразования без использования этих команд.
В качестве примера решим уравнение
Сначала вычтем из обеих частей уравнения 17
Теперь разделим уравнение на 4, чтобы получить ответ
Чтобы выделить левую или правую часть этого уравнения существуют команды lhs() и rhs().
Эти же команды используются для выделения границ диапазона, задаваемого оператором диапазона i..j:
Существует также команды выделения числителя и знаменателя дробного выражения. Пусть имеется дробь
Можно из этой дроби выделить числитель командой numer :
или знаменатель командой denom :
Команда remove удаляет элементы из списка, набора, суммы, произведения или функции по заданному логическому отношению (правилу).
Например, зададим правило в виде :
Теперь по этому правилу удалим элементы из выражения
Команда has проверяет наличие данного операнда в выражении. Пусть
Команда select извлекает из выражения операнды заданного типа
Команда indets перечисляет все независимые переменные, находящиеся в математическом выражении или переменные заданного типа
Команда подстановки subs (a=b,выражение) позволяет заменить в математическом выражении один операнд(а) другим (b), в частности числом. Приведем пример, поясняющий действие этой команды.
Команда subsop (n=b, выражение ) позволяет заменить n- тый операнд выражения (b-ый аргумент функции, b-ый элемент списка) на выражение.
Название функции также можно заменить командой subsop ():
Рассмотрим арифметический корень
Вообще говоря, он не упрощается, поскольку ответ будет зависеть от области изменения x и y.
Мы можем ввести опцию, указывающую, что x и y действительны
рассмотрим еще одно выражение
можно упростить его задав в виде условия некоторое соотношение между переменными
Мы можем явно в команде simplify указать вид замены в выражении. Рассмотрим пример:
в третьем параметре аргумента команды simplify мы можем указать также порядок замены. Например, заменить x на y
или наоборот y на x.
Как видим, результаты различны.
Командой expand мы инициируем выполнение умножения
Наоборот, команда factor позволяет разложить многочлен или рациональную дробь на множители
Эта команда позволяет сократить рациональную дробь
Эта команда пытается объединить показатели степенных функций и понизить степень тригонометрических выражений.
При помощи этой команды мы накладываем некоторые ограничения на переменную
Если нам необходимо ввести дополнительные ограничения то используется команда
Теперь мы можем вызвать описание переменной
Попробуем вычислить интеграл.
Maple выдает ошибку, которая означает, что невозможно определить, будет ли расходиться интеграл, если не указан знак параметра с. Наложим ограничение на с:
Как видим, теперь интегрирование выполняется. Вообще все переменные в Maple по умолчанию считаются комплексными. И почти все алгебраические функции умеют оперировать с комплексными величинами, например
Наложим ограничение на a
Попробуем отменить ограничение подстановкой
после a указывает, что такая отмена не сработала.
Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter
Символьная алгебра
Справочник символьной математики Maple. Команды, которые нужны для хорошей работы
Описания команд
Maple почти никогда не дает в точности то, что хочется, поэтому придется всегда работать с какими-то ручными алгебраическими выкладками. Однако возможности редактирования (обычные копирование-вставка Ctrl-c и Ctrl-v) позволяют удобно сочетать возможности рабочего листа Maple и алгебраических выкладок «вручную».
Примеры того, что может команда expand (разложить):
Эта команда – вторая половина универсальной Maple-овской пары, применяемой для алгебраических упрощений.
Если в результате расчетов получается алгебраическое выражение, которое требует помощи, пробуйте применять эту комбинацию.
Иногда не срабатывает. Тогда попытайтесь применить expand и simplify :
Бывают случаи, когда вы сами не понимаете, чего хотите.
Поиграйте с этими командами, чтобы хорошо овладеть работой с ними. При этом всегда пытайтесь прежде всего использовать опцию symbolic :
(Обратите внимание, что боковики должны записываться внутри фигурных скобок.) Для Maple это не то же самое, что замена (см. команду subs ниже):
Использование боковиков – это своего рода умная замена, в которой Maple пытается заменить все, что может, используя заданное ему соотношение. Боковик помещается в фигурные скобки, причем можно определить сразу несколько величин в конструкции simplify(expression,
sort располагает выражения, в особенности полиномиальные, в порядке от высшей степени к низшей:
factor пытается записать полиномы как произведение членов:
Если надо собрать больше, чем один множитель, дайте список множителей в collect :
Укажите отличия между следующим выражением и тем, что написано выше:
Если Maple задано не имеющее решения уравнение, то он возвратит его или не даст ответ. Обратите внимание, что нарисованная ниже функция никогда не становится больше 1.
так что бесполезно пытаться найти, где она равна 2:
Maple не может его решить, поэтому возвращает без ответа.
Нормальная форма рациональных функций для общего знаменателя:
А что получится, если попытаться разложить результат?
Maple разрешает сослаться непосредственно на числитель или знаменатель дробного выражения вроде такого:
но, возможно, не точно в ожидаемой форме. Контролируют части таких выражений, применяя копирование-вставку:
Используйте мышь для выделения числителя выражения (выше), копируйте его с помощью (Ctrl-c), затем вставьте в группу с помощью (Ctrl-v):
Эта команда выбирает части выражения.
Поэкспериментируйте с ней:
Эта команда заменяет одну переменную на другую:
При использовании subs вы, возможно, разочаруетесь ее глупостью:
Ниже приведены несколько полезных примеров-опций.
Примеры применения convert:
Преобразуйте ответ из команды RootOf в вид с квадратными корнями, кубическими корнями и т. п.:
Обратите внимание, что здесь команда convert менее полная, чем allvalues :
Число в конце команды говорит Maple о том, какой корень вы хотите найти. Преобразуем ряд Тейлора в полином с помощью опции polynom
Преобразуем рациональные функции в дробь с помощью опции parfrac :
Преобразуем рациональные функции в непрерывную дробь с помощью confrac :
Выразим функции в экспоненциальной форме с помощью exp :
Преобразуем выражения с синусами и косинусами в форму с тангенсами с помощью tan :
Преобразуем выражения с тангенсами в форму с синусами-косинусами с помощью sincos :
Преобразуем английские меры в метрические convert(…,metric) :
Посмотрим, как английские меры преобразуются в метрические:
Например, convert дает красивое определение функции signum :
Преобразуем комплексное выражение в форму polar :
Но это, вероятно, не в точности то, что имелось в виду. К счастью, команда map сможет представить это в более приемлемом виде.
Эти два аргумента не обязательны, и convert выберет соответствующее количество членов ряда. Ниже несколько примеров с иллюстрирующими графиками, использующих taylor для генерации ряда.
Приближенная функция для синуса. Сравните точный результат (красным) с рациональным приближением (синим):
Это выглядит несколько странно. Почему надо строить приближение имеющейся функции рациональной функцией?
Вот как строится аппроксимация функции Бесселя J 0 (x):
Или иначе, постройте график разности между точной функцией и приближенной. Тогда лучше видна область применимости:
Символьные (аналитические) операции
Работа с частями выражений
Выражения ( ехрr ) или уравнения ( eqn ) обычно используются как сами по себе, так и в виде равенств или неравенств. В последнем случае объекты с выражениями имеют левую и правую части. Для простейших манипуляций с выражениями полезны следующие функции:
Ввиду очевидности действия этих функций ограничимся наглядными примерами их применения:
Обратите внимание на то, что в предшествующих версиях Maple загрузка библиотеч ной функции cost выполнялась иначе — командой readlib(cost). Это обстоятельство может служить причиной неверной работы документов, созданных в старых версиях Maple, в среде описываемой версии Maple 7.
Работа с уровнями вложенности выражений
В общем случае выражения могут быть многоуровневыми и содержать объекты, расположенные на разных уровнях вложенности. Приведем две функции для оценки уровней выражений и списков:
Ниже представлены примеры применения этих функций:
Рекомендуется просмотреть и более сложные примеры на применение этих функций в справке.
Преобразование выражений в тождественные формы
Многие математические выражения имеют различные тождественные формы. Порою преобразование выражения из одной формы в другую позволяет получить результат, более удобный для последующих вычислений. Кроме того, различные функции Maple 7 работают с разными формами выражений и разными типами данных. Поэтому большое значение имеет целенаправленное преобразование выражений и данных.
Основной функцией для такого преобразования является функция convert :
Из этих примеров (их список читатель может пополнить самостоятельно) следует, что функция преобразования convert является одной из самых мощных функций Maple. С ее помощью можно получить множество различных форм одного и того же выражения.
Примеры применения функции combine представлены ниже:
Эти примеры далеко не исчерпывают возможностей функции combine в преобразовании выражений. Рекомендуется обзорно просмотреть примеры применения функции combine с разными параметрами, приведенные в справочной системе Maple 7.
Контроль за типами объектов
Функциональные преобразования подвыражений
Нередко бывает необходимо заменить некоторое подвыражение в заданном выражении на функцию от этого подвыражения. Для этого можно воснользоваться функцией applyop :
Ниже даны примеры применения этой функции:
Функциональные преобразования элементов списков
Еще две функции, реализующие операции подстановки, указаны ниже:
Из этих примеров нетрудно заметить, что если второй параметр функции mар — список, то функция (первый параметр) прикладывается к каждому элементу списка, так что возвращается также список. Из последнего примера видно, что если за вторым параметром идет перечисление аргументов, то они включаются в список параметров функции.
Функция mар2 отличается иным расположением параметров. Ее действие наглядно поясняют следующие примеры:
Подстановки с помощью функций add, mul и seq
Подстановки с помощью функций subs и subsop
Все эти функции возвращают измененное после подстановки выражение. Ниже показаны примеры применения функций подстановок:
Одним из важных применений подстановок является проверка правильности решений уравнений и систем уравнений. Ниже дан пример такой проверки:
Функции сортировки и селекции
Здесь L — список сортируемых значений, F — необязательная булева процедура с двумя аргументами, А — алгебраическое выражение, V — необязательные дополнительные переменные.
Вы можете проверить, что функция sort в Maple 7 способна сортировать буквы и даже слова русского языка.
Если функция сортировки меняет порядок расположения членов в выражении (или порядок расположения выражений), то другая функция — select — служит для выделения требуемого выражения:
Далее даны примеры применения этих функций.
Функция simplify — одна из самых мощных в системах символьной математики. Она предназначена для упрощения математических выражений. «Все гениальное просто», — любим мы повторять, хотя это далеко не всегда так. Тем не менее стремление представить многие математические выражения в наиболее простом виде поощряется в большинстве вычислений и нередко составляет их цель. В системе Maple 7 функция упрощения используется в следующем виде:
Несмотря на свою гибкость, функция simplify не всегда способна выполнить возможные упрощения. В этом случае ей надо подсказать, в какой области ищутся упрощения и где можно найти соответствующие упрощающие преобразования.
С этой целью в функцию simplify можно включать дополнительные параметры.
Действие функции simplify существенно зависит от областей определения переменных. В следующем примере упрощение выражения не произошло, поскольку результат этой операции неоднозначен:
Однако, определив переменные как реальные или положительные, можно легко добиться желаемого упрощения:
Даже в жизни мы говорим: «не все так просто». Порою упрощенное выражение скрывает его особенности, знание которых является желательным. Функция expand «расширяет» выражение ехрr и записывается в виде:
Примеры применения функции expand приведены ниже:
Разложение целых и рациональных чисел
Для разложения целых или рациональных чисел на множители в виде простых чисел служит функция:
где n — число, method — параметр, задающий метод разложения. Другая библиотечная функция, if actors(n), возвращает результат разложения в форме вложенных списков:
Разложение выражений (факторизация)
Для алгебраических выражений функция факторизации записывается в вычисляемой и не вычисляемой (инертной) формах:
Главная цель факторизации это нахождение максимального числа независимых сомножителей выражения, линейных по заданным переменным с коэффициентами наиболее простой формы. Ниже представлены примеры применения функции factor :
Комплектование по степеням
Еще одна функция общего назначения — collect — служит для комплектования выражения ехрr по степеням указанного фрагмента х (в том числе множества либо списка). Она задается в одной из следующих форм:
Программирование символьных операций
Реализация итераций Ньютона в символьном виде
Как известно, метод Ньютона сводится к итерационным вычислениям по следующей формуле:
Реализующая его процедура выглядит довольно просто:
Нетрудно заметить, что, испытав скачок в начале решения, значениях довольно быстро сходятся к конечному результату, дающему корень заданной функции. Последние три итерации дают одно и то же значение х. Заметим, что этот метод дает только одно решение, даже если корней несколько. Вычислить другие корни в таком случае можно, изменив начальное условие.
Можно попробовать с помощью полученной процедуры получить решение и для другой функции:
Здесь итерационная формула имеет (и вполне естественно) уже другой вид, но сходимость к корню также обеспечивается за несколько итераций. ;
Возможна и иная форма задания итерационной процедуры с применением оператора дифференцирования D и заданием исходной функции также в виде процедуры:
Вообще говоря, в программных процедурах можно использовать любые операторы и функции, присущие Maple-языку, в том числе и те, которые реализуют символьные вычисления. Это открывает широкий простор для разработки новых процедур и функций, обеспечивающих выполнение символьных операций.
Вычисление интеграла по известной формуле
Рассмотрим следующий пример:
Прежние версии системы Maple не брали этот интеграл, поскольку он не имеет аналитического представления через обычные функции. Maple 7 блестяще вычисляет этот «крепкий орешек», но полученное выражение довольно сложно.
Из математики известно, что такой интеграл может быть представлен в следующем виде:
Используя эту формулу, мы можем создать простую процедуру для численного и аналитического вычисления данного интеграла:
Результат в аналитическом виде довольно прост для данного интеграла с конкретным значением т. Более того, мы получили несколько иной результат и дляп в общем случае. Но точен ли он? Для ответа на этот вопрос продифференцируем полученное выражение:
Результат дифференцирования выглядит куда сложнее, чем вычисленный интеграл. Однако с помощью функции simplify он упрощается к подынтегральной функции:
Это говорит о том, что задача вычисления заданного интеграла в аналитической форме действительно решена. А что касается громоздкости результатов, так ведь системы, подобные Maple 7, для того и созданы, чтобы облегчить нам работу с громоздкими вычислениями — в том числе аналитическими.
Вложенные процедуры и интегрирование по частям
Теперь мы подошли к важному моменту, о котором читатель наверняка уже давно догадался — в составляемых пользователем процедурах можно использовать ранее составленные им (или кем-то еще) другие процедуры! Таким образом, Maple-язык позволяет реализовать процедуры, вложенные друг в друга. Для иллюстрации применения вложенных процедур рассмотрим операцию интегрирования по частям. Пусть нам надо вычислить интеграл:
где р(х) — выражение, представляющее полином.
Теперь составим процедуру для вычисления по частям нашего интеграла:
В этой процедуре имеется обращение к ранее составленной процедуре IntExpMonomialR. Обратите внимание на то, что в процедуре введено предупреждение об определенных проблемах, связанных с использованием функции degree (сообщение начинается с символов ###). Тем не менее процедура работает, в чем убеждают по крайней мере следующие примеры:
В заключение остается отметить, что данный пример в Maple V R4 дает неточный результат, хотя никаких сообщений об ошибках не выводится.
Что нового мы узнали?
В этом уроке мы научились:











































































































