Вход/Регистрация
Maple 9.5/10 в математике, физике и образовании
вернуться

Дьяконов Владимир Павлович

Шрифт:

3.5.8. Преобразование выражений

Еще одним мощным средством преобразования выражений является функция combine. Она обеспечивает объединение показателей степенных функций и преобразование тригонометрических и некоторых иных функций. Эта функция может записываться в трех формах:

combine(f)

combine(f, n)

combine(f, n, opt1, opt2,...)

Здесь f — любое выражение, множество или список выражений; n — имя, список или множество имен; opt1, opt2, … — имена параметров. Во втором аргументе можно использовать следующие функции:

@@ abs arctan conjugate ехр

ln piecewise polylog power product

Psi radical range signum trig

Примеры применения функции combine представлены ниже (файл expr1):

> combine(ехр(2*х)^2,ехр);

е(4x)

> combine(2*sin(х)^2+2*cos(х)^2);

2

> combine(sin(х)*cos(х));

½sin(2x)

> combine(Int(х,x=a..b)-Int(х^2,x=a..b));

Эти примеры далеко не исчерпывают возможности функции combine в преобразовании выражений. Рекомендуется обзорно просмотреть примеры применения функции combine с разными параметрами, приведенные в справочной системе Maple.

3.5.9. Контроль за типами объектов

Выражения и их части в Maple рассматриваются как объекты. В ходе манипуляций с ними важное значение имеет контроль за типом объектов. Одной из основных функций, обеспечивающих такой контроль, является функция whattype(object), возвращающая тип объекта, например string, integer, float, fraction, function и т.д. Могут также возвращаться данные об операторах. Примеры применения этой функции даны ниже (файл control):

> whattype(2+3);

integer

> whattype(Pi);

symbol

> whattype(123./5);

float

> whattype(1/3);

fraction

> whattype(sin(x));

function

> whattype([1, 2, 3, a, b, c]);

list

> whattype(a+b+c);

+

> whattype(a*b/c);

*

> whattype(a^b);

^

> whattype(1+2+3=4);

=

С помощью функции type(object,t) можно выяснить, относится ли указанный объект к соответствующему типу t, например:

> type(2+3,integer);

true

> type(sin(х),function);

true

> type(hello,string);

false

> type("hello",string);

true

> type(1/3,fraction);

true

При успешном соответствии типа объекта указанному (второй параметр), функция type возвращает логическое значение true, в противном случае — false.

Для более детального анализа объектов может использоваться функция hastype(expr, t), где expr — любое выражение и t — наименование типа подобъекта.

Эта функция возвращает логическое значение true, если подобъект указанного типа содержится в выражении expr. Примеры применения этой функции даны ниже (файл control):

> hastype(2+3,integer);

true

> hastype(2+3/4,integer);

false

> hastype(2*sin(x),function);

true

> hastype(a+b-c/d,`+`);

true

Еще одна функция — has(f,x) — возвращает логическое значение true, если подобъект х содержится в объекте f, и false в ином случае:

> has(2*sin(х),2);

true

> has(2*sin(x), `/`);

false

> has(2*sin(x),3-1);

true

Следует отметить, что соответствие подобъекта выражения указанному подобъекту понимается в математическом смысле. Так, в последнем примере подобъект «3-1», если понимать его буквально, в выражении 2*sin(x) не содержится, но Maple-язык учитывает соответствие 3-1=2, и потому функция has в последнем примере возвращает true.

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

  • Читать дальше
  • 1
  • ...
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: