Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Введение в пакет Maxima1

.pdf
Скачиваний:
30
Добавлен:
13.02.2015
Размер:
357.08 Кб
Скачать

num (expr) – возвращает числитель рационального выражения expr.

ratcoef (expr, x, n) – возвращает коэффициент стоящий при xn в выраже- нии expr. В отличие от функции coeff функция ratcoef упрощает выражение expr с использованием рациональных преобразований, что может приводить к различным результатам их работы:

ratdenom (expr) – возвращает знаменатель выражения expr. В отличие от denom предварительно приводит выражение expr к канонической форме, по- этому ratdenom получает ответ и в тех случаях, когда denom не может опре- делить выражение как рациональное.

ratexpand (expr) – Раскрывает скобки в рациональных выражениях, пред- варительно приводя их к каноническому уровню.

ratnumer (expr) – возвращает числитель выражения expr. В отличие от num предварительно приводит выражение expr к канонической форме.

20

ratp (expr) – определяет, приведено ли выражение expr к канонической форме.

ratsimp (expr) – упрощает выражение expr и все его составляющие части, включая аргументы не рациональных функций.

ratsubst (a, b, c) – подставляет в выражение c вместо b значение a. Под b может подразумеваться сумма, произведение и т.п.

Работа со списками

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

21

append (list_1, ..., list_n) – возвращает один список, состоящий из элемен- тов списков list_1, list_2 следующих один за другим.

cons (expr, list) – создает новый список, в котором элементам списка list предшествует expr.

delete (expr_1, expr_2) – удаляет все вхождения expr_1 в expr_2.

delete (expr_1, expr_2, n) – удаляет первые n вхождений expr_1 в expr_2.

endcons (expr, list) – создает новый список, в котором после элементов списка list следует expr.

join (l, m) – создает новый список, в котором элементы списка l череду- ются с элементами списка m в порядке l[1] m [1] l[2] m[2] l[3] m[3]В случае если один список длиннее другого, то последние элементы более длинного списка игнорируются.

22

length (expr) – возвращает длину списка expr.

listp (expr) – возвращает true, если expr – список, иначе – false.

makelist (expr, i, i_0, i_1) – создает новый список, каждый элемент кото- рого вычисляется по выражению expr (i), где i изменяется от i_0 до i_1.

member (expr, list) – возвращает true, если expr входит в список list, иначе

– false.

rest (list, n) – удаляет из списка list первые n элементов, если n положи- тельное и последние n элементов, если n отрицательное.

reverse (list) – меняет порядок элементов списка list на обратный.

Функции

first (list), second (list), third (list), fourth (list), fifth (list), sixth (list), seventh (list), eighth (list), ninth (list), tenth (list), last (list),

возвращают соответственно 1–10 и последний элементы списка list.

23

Вычисление пределов

Пределы в Maxima вычисляются с помощью интуитивно понятной любо- му близкому к математике человеку функции limit (f(x), x, a). И вычисляет их Maxima вполне корректно,

но не всегда справляется с вычислением:

В случае с последним примером видно, что при отсутствии возможности вычислить предел Maxima пытается уточнить условия, которым должна удовлетворять функция. Но даже при дополнительных условиях предел вы- числяется не всегда (можно доказать, что этот предел равен нулю при любом значении х). Хотя, для справедливости нужно признать, что ни одним стан- дартным способом вычислить его нельзя и вручную.

Но предложим Maxima более легкие пределы с неопределенностями, из базового курса анализа, и посмотрим, как она с ними справится.

Многочлен на многочлен успешно.

24

Тригонометрические функции тоже.

Иррациональность без проблем.

Можно находить и односторонние пределы. Для этого в списке парамет- ров команды появляется параметр minus для левостороннего предела и plus – для правостороннего.

В качестве результата работы команды limit можно получить еще два со- кращения: ind и und. Первое происходит от слова «indefinite» и подразумева- ет, что предел не определен, но ограничен, а второе от слова «undefined» и

25

означает, соответственно, что предел просто не определен. Насколько кор- ректно Maxima различает эти случаи вопрос сложный, да и не столь важный: так или иначе предел в этих случаях не существует.

Дополнительные возможности, которые предоставляет Maxima для вы- числения пределов, реализованы с помощью ключей к команде limit.

Ключ lhospitallim (по умолчанию равен 4) задает максимальное количе- ство последовательных применений правила Лопиталя при вычислении пре- дела. Позволяет избежать зацикливаний при вычислении выражений вида

lim ctg x . x→0 csc x

Следующий ключ tlimswitch (по умолчанию false), при переключении в true позволяет использовать для вычисления предела разложение функции в ряд Тейлора, если это возможно.

Последний ключ limsubst (по умолчанию false) позволяет использовать в команде limit неизвестные выражения.

Кроме функции limit для вычисления пределов может использоваться функция tlimit, действие которой эквивалентно действию функции limit при tlimswitch=true.

26

Литература

1.Тарнавский Т. Maxima – максимум свободы символьных вычислений // Linux Format 7 (81), 2006.

2.Тарнавский Т. Maxima – функции и операторы // Linux Format 8 (82), 2006.

3.Тарнавский Т. Maxima: укротитель выражений // Linux Format 9 (83), 2006.

4.Тарнавский Т. Maxima – максимум свободы символьных вычислений. Ал-

гебра и начала анализа // Linux Format 10 (84), 2006.

5.Тарнавский Т. Maxima – максимум свободы символьных вычислений. Гра- фики и управляющие конструкции // Linux Format 11 (85), 2006.

6.Тарнавский Т. Maxima – максимум свободы символьных вычислений. Ра-

бота с файлами и фактами // Linux Format 12 (86), 2006.

7.Maple at 20. Though it all, it’s been about the math // The Newsletter from Waterloo Maple Inc. Fall 2001.

27