Тем не менее, вид документа с таким специфическим заданием формул может озадачить математика и любого пользователя, не слишком знакомого с основами программирования. В целом он отрицательно сказывается на восприятии документов.
Для устранения подобного недостатка (а скорее противоречия) Maple предлагает ряд средств. Во-первых, это текстовые комментарии, в которые можно вводить формулы. Во-вторых, это инертные функции, которые не вычисляются, но дают вывод на экран выражений в естественной математической форме (рис. 1.22). И, в-третьих, это возможность быстрого преобразования строковых выражений ввода в естественные математические формулы.
Рис. 1.22. Примеры применения инертных функций
Имена таких функций начинаются с большой буквы и функции выводят математическое выражение в естественной математической нотации. С помощью ряда функций, например evalf, можно вычислить математическое выражение, полученное инертной функцией. На рис. 1.22 внизу дан пример такого вычисления для предела функции sin(x)/x. Обратите внимание на еще один пример вывода контекстного меню для строки вывода.
Теперь остановимся на преобразовании исполняемых выражений ввода на Maple-языке в обычные математические формулы. Для этого достаточно, выделив входное выражение, нажать первую кнопку контекстной панели (со знаком «х») — соответствующее выражение тут же приобретет вид обычной математической формулы. На рис. 1.23 показаны примеры вычислений интеграла при его задании в строках ввода в виде текстового выражения и в обычной математической нотации.
Рис. 1.23. Примеры вычислений интеграла при его задании в текстовой и математической нотации
Таким образом, всегда можно получить формульное представление входных выражений. Более того, другой кнопкой их можно превратить в инертную форму, тогда выражение перестает вычисляться и становится по существу обычным комментарием.
1.12.3. Типовые символьные вычисления
На рис. 1.24 показано несколько примеров выполнения символьных вычислений математического характера: преобразование тригонометрического выражения с помощью функции упрощения simplify, вычисление суммы ряда функцией sum и вычисление производной функцией diff и неопределенного интеграла функцией int.
Рис. 1.24. Примеры символьных вычислений
Обратите внимание на результат выполнения предпоследнего примера. Он был выделен и перенесен в следующую строку ввода для последующего вычисления интеграла. Выделение можно осуществить протаскиванием указателя мыши с нажатой левой кнопкой.
Вычисления производных и интегралов в символьном виде, пожалуй, являются наиболее характерными областями применения систем символьной математики. На рис. 1.25 показаны примеры таких вычислений с применением функции diff для вычисления производной и int для вычисления определенных интегралов.
Рис. 1.25. Примеры вычисления производной и интегралов
Обратите внимание на функцию Int — инертную форму функции int. Как уже отмечалось, инертная форма служит для вывода записи интеграла в естественной математической форме, но с отложенным «на потом» выводом результата вычислений.
Полезно также рассмотреть последний пример. В нем задано выражение, интеграл которого вычисляется с применением контекстного меню правой клавиши мыши. Результатом является переменная R2 со значением интеграла. Контекстное меню демонстрирует также возможность оперативного проведения над заданным выражением множества других символьных операций, которые будут детально описаны в последующих главах книги.
На другом рисунке (рис. 1.26) показано вычисление интеграла, который не имеет представления через функции системы Maple 9.5. но может быть вычислен ею в численном виде.
Рис. 1.26. Численное вычисление значения интеграла, не имеющего аналитического представления
На рис. 1.26 представлены два варианта такого вычисления. В первом случае использована функция eval(expr) для вычисления значения заданного выражения expr. Во втором случае используется эта функция в иной нотации, позволяющей получить результат с заданным числом цифр (50 в нашем примере).
1.12.4. Разбухание результатов символьных вычислений
Одной из проблем в применении систем компьютерной алгебры является «разбухание» результатов — как оконечных, так и промежуточных. К примеру, численное решение кубического уравнения не вызовет трудностей даже на калькуляторе [13, 14, 16], тогда как системы символьной математике выдают его в виде громоздких, хотя и точных формул — см. примеры на рис. 1.27. Заметьте, что для кубического уравнения в окно поместилась только небольшая часть решения.