Ознакомительная версия.
Рис. 1.21. Построение графика трехмерной поверхности, заданной функцией пользователя
Возможно, многих читателей вполне удовлетворят уже описанные возможности, но сила системы Maple 9.5 прежде всего в возможности выполнения аналитических (символьных) вычислений. Поэтому мы перейдем обсуждению некоторых из них.
1.12. Символьные вычисления
1.12.1 Простой пример символьных вычислений
Maple 9.5, как и другие СКА, открывает обширные возможности выполнения символьных (аналитических) вычислений. Мы уже описывали примеры решения квадратного уравнения. Возьмем еще один простой пример — требуется найти сопротивление трех параллельно включенных резисторов R1, R2 и R3 произвольной величины. Из курса электротехники известно, что можно задать следующее равенство, определяющее суммарное сопротивление R0.
> eq:=1/R0=1/R1+1/R2+1/R3;
Теперь достаточно использовать функцию решения уравнений solve, чтобы найти значение R0 в общей аналитической форме:
> solve(eq,R0);
С таким же успехом мы можем найти аналитическое выражение для R1, определяющее R1 через R0, R2 и R3:
> solve(eq,R1);
Нетрудно проверить, что результат может быть получен и в численном виде для конкретных значений R1, R2 и R3:
> solve(eq,R2);
> R1:=1:R2:=2:R3:=3:solve(eq,R0);
Позже мы рассмотрим не одну сотню примеров на решение в среде Maple задач в символьном виде с их визуализацией — как графической, так и численной.
1.12.2. Представление входных выражений в математической форме
Приведенные выше примеры реализуют обычную форму представления документа. В нем имеются текстовые комментарии (для их ввода надо нажать клавиша F5), сформулированные на Maple-языке задания на вычисления, результаты вычислений в виде обычных математических формул и, там где это указано, графики.
В Maple 9.5 ввод исходных данных производится привычными для языков программирования средствами — с помощью функций и операторов, задаваемых в командной строке. Зато результаты вычислений получаются по умолчанию в виде обычных формул (хотя есть возможность их представления в другом виде, например принятом в редакторе LaTeX или языках программирования Fortran и С).
Тем не менее, вид документа с таким специфическим заданием формул может озадачить математика и любого пользователя, не слишком знакомого с основами программирования. В целом он отрицательно сказывается на восприятии документов.
Для устранения подобного недостатка (а скорее противоречия) 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. Заметьте, что для кубического уравнения в окно поместилась только небольшая часть решения.
Рис. 1.27. Решение квадратного и кубического уравнений в символьной форме
Просмотреть оставшуюся часть можно с помощью линейки прокрутки в правой части окна документа.
Стремление системы выдать полный и математически предельно точный результат, безусловно, очень важно для математиков. Но для многих прикладных задач, с которыми имеют дело инженеры и техники, она оборачивается большими неудобствами. Инженеры часто прекрасно знают, какие из членов математических формул можно отбросить, тогда как для математика-теоретика или аналитика такое действо — типичное кощунство.
1.12.5. Решения системы линейных уравнений
Приведем еще один характерный пример — решение системы линейных уравнений с помощью функции solve (рис. 1.28). Обратите внимание на форму задания уравнений и выдачи результатов и поразительную естественность решения задачи. Значение переменной z на рис. 1.28 выделено, при этом видно, что Maple отображает его поле под панелью инструментов.
Рис. 1.28. Решение системы из пяти линейных уравнений
Maple стремится выдать результат с максимальной точностью — обычно в форме рациональных чисел. Но с помощью функции evalf можно получить результат в форме вещественных чисел в формате с плавающей точкой.
Слова solve, diff, int и evalf с их аргументами являются именами встроенных в систему функций, возвращающих символьные значения результатов. В общих чертах назначение их уже вполне понятно. Но в последующих главах книги мы познакомимся с этими и многими функциями гораздо более подробно и обстоятельно.
Ознакомительная версия.