Перевод сложных выражений в линейную форму записи

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

Для облегчения данного процесса нелишне дать несколько рекомендаций:

1. Не забывайте ставить знак умножения! В графическом окне Maxima по правилам математики удвоенное значение переменной х записывает в виде 2x, но при записи команда для Maxima должна выглядеть как 2*x.

2. В случае сомнения всегда лучше поставить «лишние», дополнительные скобки (). Числитель и знаменатель выражения всегда необходимо заключать в скобки.

При записи возведения в степень основание и степень лучше всегда брать в скобки.

Примеры:

Математическая запись Команда для Maxima
(x+2)/(y–7)
(x+3)**(2*y)
sin((x–2)/(a+3))
(x–2)/(a+3)+(2*x)/(b+4)

3. Функция не существует отдельно от своих аргументов (если таковые имеются). Поэтому, например, при возведении в степень можно взять всю функцию с аргументами в скобки, а потом уже возводить полученную конструкцию в нужную степень: (sin(x))**2. Очень часто начинающие пользователи пытаются возвести в степень только название функции, забывая про аргументы: sin**2(x) – это неправильно!

4. Также необходимо помнить, что несколько аргументов функции записываются в скобках, через запятую, например min(x1,x2,x3,xN).

5. Недопустима запись функции sin(2*x) в виде sin*2*x или sin2x. Запомните, как действует Maxima при записи скобок: как только вы пытаетесь написать открывающую скобку, она тут же пишет вторую – парную ей – закрывающую скобку. Поэтому при записи функций напишите название, затем поставьте после него пустые скобки и только потом в этих скобках напишите все ее аргументы, разделяя их запятыми. Никаких конструкций между названием функции и открывающейся скобкой быть не должно!

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

Пример: Необходимо ввести следующее выражение:

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

Отметим, что строку с ошибочной записью можно редактировать, удаляя или заменяя неправильные символы, и можно тут же снова выполнить (Shift+Enter) уже исправленную команду, однако номер ответа при этом изменится.

Ненужные секции ввод-ответ можно удалить, Если щёлкнуть мышкой в незакрашенный треугольник, то треугольник закрасится, а строка с результатом будет скрыта, при этом появится запись (0 lines hidden). Чтобы удалить с экрана полностью и ответ, и команду следует щелчком мыши выделить квадратную скобку у пары ввод–ответ, вызвать щелчком правой кнопки мыши контекстное меню и выбрать опцию Delete Selection. При необходимости вставить секцию в текстовый документ следует выбрать Copy As Image (копировать как изображение).

 

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

Рассмотрим не слишком сложное выражение, содержащее сумму двух слагаемых (x3+2)(3–x)+(x2+3)(x2–2), каждое из которых представляет собой произведение двух еще более простых выражений в скобках. Желая далее упростить вид исходного выражения, запишем таковое по правилам, изложенным в разделе 5.3 с нажатием одновременно двух клавиш Shift+Enter, получим.

Теперь откроем меню программы Упростить и выберем Simplify Expession (упростить выражение). Maxima применит к записанному выражению функцию ratsimp() и запишет

Заметим, что в Maxima имеется также функция rat(), которая в данном случае сработает точно также:

однако возможности функции rat() значительно уже. Так, например, в следующем случае

функция rat() не смогла получить в ответе ноль, так как и для нее величины различные. Но функция ratsimp() с задачей успешно справляется

за счет того, что делает подсказку для функции rat(), которую она использует в своей работе: replaced 0.5 by 1/2 = 0.5 – замени неточное число 0.5 на точное 1/2.

Выражение (%о11) можно снова преобразовать, записав его в виде произведения трёх простых сомножителей, если его выделить мышкой (провести по нему мышкой при нажатой левой кнопке) и затем в меню программы Упростить выбрать Factor Expression (факторизовать выражение).

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

Имя функции ratsimp(), которая производила упрощение происходит от слов RATional (рациональный) и SIMPlify (упростить). Функция factor() носит своё название от FACTOR (англ. – показатель) в связи с тем, что показатель n в записи числа означает, что такой результат был получен в результате произведения n одинаковых сомножителей вида a.

Если в качестве аргумента функции factor() ввести целое число, то в качестве результата вычисления функция вернет разложение аргумента на простые множители; если же в качестве аргумента ввести рациональное число, то на множители будут разложены как его числитель, так и знаменатель. В следующем примере в одну строку были записаны (через точку с запятой) два задания. В первом задании функция factor() должна была найти простые множители целого девятизначного числа, во втором задании простые множители нужно было найти для числителя и знаменателя рациональной дроби. Ответы Maxima поместила в строки (%o18) и (%o19).

Из ответов можно заключить, что первое число можно представить в виде 123456789 = 32*3607*3803, числитель – в виде 987654321 = 32*172*379421, а знаменатель – в виде 10!–1 = 29*125131.

 

5.6. Исследование функций и построение графиков

Пусть мы выбрали программу Maximaв списке программ, загрузили её и, желая нарисовать двумерный график, щёлкнули по строке меню Графики Plot2d... В появившемся окне диалога Двумерный график в первой строке Выражение(ния) запишем сразу 4 функции: x, abs(x), x2, x3, перечислив их через запятую (мы желаем нарисовать сразу четыре графика).

Рис. 25. Степенные графики в Maxima  

Чтобы график выглядел покрупнее, изменим граничные значения переменных х и у на относительно небольшие, указав «От: –1.5 До: 1.5» в разделе Опции выберем: set size ratio 1; set zeroaxis; чтобы масштаб по оси абсцисс совпадал с масштабом по оси ординат (совершенно необходимо для графика у = х), сами допишем с клавиатуры опцию set grid; чтобы график имел сетку, и щелкнем ОК (или нажмём Enter).

Рис. 26. Графики степенных функций y = x, y = abs(x), y = x2, y = x3

Формат рассмотренных графиков «Встроенный», они располагаются в рабочем окне Maxima, но если изменить формат на gnuplot или openmath, то графики Maxima нарисует в отдельном окне, и мы можем масштабировать график (изменять размеры за счет изменения размеров окна) или распахнуть окно с графиками на весь экран.