Перевод сложных выражений в линейную форму записи
Одним из самых сложных занятий для начинающих пользователей системы 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 нарисует в отдельном окне, и мы можем масштабировать график (изменять размеры за счет изменения размеров окна) или распахнуть окно с графиками на весь экран.