Главная | Обратная связь
МегаЛекции

Функциональные преобразования элементов списков




Еще две функции, реализующие операции подстановки, указаны ниже:

map(fcn, expr. arg2. .... argn)

map2(fcn, argl, expr. arg3, .... argn)

Здесь fen — процедура или имя, expr — любое выражение, argi — необязательные дополнительные аргументы для fen.

Первая из этих функций позволяет приложить fen к операндам выражения ехрr. Приведенные далее примеры иллюстрируют использование функции mар.

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

Функция mар2 отличается иным расположением параметров. Ее действие наглядно поясняют следующие примеры:

Gif

Gif

Подстановки с помощью функций add, mul и seq

Подстановки с помощью функций add, mul и seq

Заметим, что операции, подобные описанным выше, Maple 7 реализует и с рядом других функций. Ограничимся примерами на подстановки с помощью функций сложения add, умножения mul и создания последовательностей seq:

Gif

Gif

Подстановки с помощью функций subs и subsop

Подстановки с помощью функций subs и subsop

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

  • subs(x=a.e) — в выражении е заменяет подвыражение х на подвыражение а;
  • subs(sl,...,sn,e) — в выражении е заменяет одни подвыражения на другие, выбирая их из списков si, ..., sn вида х=а;
  • subsop(eql, eq2, .... eqi, ...eqn, e) — в выражении е заменяет указанные в eqi операнды другими, указанными в правой части равенств eqi вида ni=ei, где ni — номер операнда, ei — выражение для замены.

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

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

Одним из важных применений подстановок является проверка правильности решений уравнений и систем уравнений. Ниже дан пример такой проверки:

Здесь задана система из трех нелинейных уравнений, которая затем решена функцией solve. В конце примера с помощью функции подстановки выполнена проверка правильности решения. Оно верно, поскольку у всех уравнений значение левой части совпадает со значением правой части.



 

Gif

Gif

Gif

Функции сортировки и селекции

Функции сортировки и селекции

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

sort(L) sort(L. F) sort(A) sort(A. V)

Здесь L — список сортируемых значений, F — необязательная булева процедура с двумя аргументами, А — алгебраическое выражение, V — необязательные дополнительные переменные.

ПРИМЕЧАНИЕ

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

Если функция сортировки меняет порядок расположения членов в выражении (или порядок расположения выражений), то другая функция — select — служит для выделения требуемого выражения:

select(f, e)

select(f, е. Ы. ..., bn)

Как бы обратной ей по действию служит функция remove, устраняющая заданные выражения:

remove(f, e)

remove(f, е, b1.... bn)

В этих функциях f — процедура, возвращающая логическое значение, е — список, множество, сумма, произведение или функция, b1, ..., bn — необязательные дополнительные аргументы.

Далее даны примеры применения этих функций.

Maple имеет также оператор селекции А[ехрr]. Его действие поясняют следующие примеры:

 

Gif

Gif

Gif

Gif

Упрощение выражений

Упрощение выражений

Функция simplify — одна из самых мощных в системах символьной математики. Она предназначена для упрощения математических выражений. «Все гениальное просто», — любим мы повторять, хотя это далеко не всегда так. Тем не менее стремление представить многие математические выражения в наиболее простом виде поощряется в большинстве вычислений и нередко составляет их цель. В системе Maple 7 функция упрощения используется в следующем виде:

  • simplify(expr) — возвращает упрощенное выражение ехрr или повторяет его, если упрощение в рамках правил Maple 7 невозможно;
  • simplify(expr, nl, n2, ...) —возвращает упрощенное выражение ехрr с учетом параметров с именами nl, n2, ... (в том числе заданных списком или множеством);
  • simplify(ехрг,assume=prop) — возвращает упрощенное выражение ехpr с учетом всех условий.

Функция simplify — многоцелевая. Она обеспечивает упрощение математических выражений, выполняя следующие типовые действия (для простоты обозначим их как ->):

  • комбинируя цифровые подвыражения (3*х*5->15*х, 10*х/5->2*х);
  • приводя подобные множители в произведениях (х^3*а*х->а*х^4);
  • приводя подобные члены в суммах (5*х+2+3*х->8*х+2);
  • используя тождества, содержащие ноль (а+0->а, х-0->х);
  • используя тождества, содержащие единицу (1*х->х);
  • распределяя целочисленные показатели степени в произведениях ((3*x*y^3)^2 ->9*х^2*у^6);
  • сокращая ехрr на наибольший общий полиномиальный или иной множитель;
  • понижая степень полиномов там, где это возможно;
  • используя преобразования, способные упростить выражения.

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

С этой целью в функцию simplify можно включать дополнительные параметры.

В качестве параметров могут задаваться имена специальных математических функций и указания на область действия упрощений: Bessell, BesselJ, BesselK, BesselY, Ei, GAMMA, RootOf, LambertW, dilog, exp, In, sqrt, polylog, pg, pochhammer, trig (для всех тригонометрических функций), hypergeom, radical, power и atsign (для операторов). Полезен также параметр symbolic, явно указывающий на проведение символьных преобразований.

Возможно также применение функции simplify в форме simplify[<name>], где <name> — одно из следующих указаний: atsign, GAMMA, hypergeom, power, radical, RootOf, , sqrt, trig. Ниже даны примеры применения функции Simplifу:

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

Однако, определив переменные как реальные или положительные, можно легко добиться желаемого упрощения:

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

Gif

Gif

Gif

Gif





©2015- 2017 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов.