4. Управление формой представления документа
Представление входных выражений в математической форме
Для устранения подобного недостатка (а скорее, противоречия) Maple предлагает ряд средств. Во-первых, это текстовые комментарии, в которые можно вводить формулы. Во-вторых, это инертные функции, которые не вычисляются, но дают вывод на экран в естественной математической форме:
> Sum(a[k]*x^k,k=0..m)=Product(b[j]*x^j,j=0..n);
И, в-третьих, это возможность быстрого преобразования строковых выражений ввода в естественные математические формулы. Для этого просто нажимается клавиша Enter.
Имена инертных функций начинаются с большой буквы, и эти функции выводят математическое выражение в естественной математической нотации, но ничего не вычисляют. Чтобы вычислить математическое выражение, полученное инертной функцией, нужно заменить большую букву на маленькую (предварительно скопировав выражение).
> Sin(Pi);
> evalf(Sin(Pi));
> evalf(sin(Pi));
> evalf(Sin(1));
> evalf(sin(1));
> sin(1);
>
Чтобы преобразовать исполняемые выражения ввода на Maple-языке в обычные математические формулы, достаточно, выделив входное выражение, нажать первую кнопку контекстной панели — соответствующее выражение тут же приобретет вид обычной математической формулы. Ниже показаны примеры вычислений интеграла при его задании в строках ввода в виде текстового выражения и в обычной математической нотации.
> int(x^n,x);
>
Таким образом, всегда можно получить формульное представление входных выражений. Более того, другой кнопкой их можно превратить в инертную форму, тогда выражение перестает вычисляться и становится, по существу, обычным комментарием. Данный интеграл был вычислен простым нажатием клавиши Enter после установки указателя мыши на первую строку записи (на Maple-языке).
Следует, однако, учитывать, что представление входных выражений в виде формул обычно занимает заметно больше места на экране и в документе, чем описание выражения на Maple-языке, поэтому оно используется довольно редко. Кроме того, далеко не всякое входное выражение может быть представлено в виде математической формулы — многие функции ядра и библиотек Maple попросту не имеют общепринятых обозначений в виде специальных математических знаков.
5. Символьные вычисления
Пример символьных вычислений
Maple открывает обширные возможности выполнения символьных (аналитических) вычислений. Начнем с простого примера — требуется найти сопротивление трех параллельно включенных резисторов R1, R2 и R3 произвольной величины. Из курса электротехники известно, что можно задать следующее равенство, определяющее суммарное сопротивление R0:
> eq:=1/R0=1/R1+1/R2+1/R3;
Теперь достаточно использовать функцию решения уравнений solve, чтобы найти значение R0 в общей аналитической форме:
> R0:=solve(eq,R0);
Нетрудно проверить, что результат может быть получен и в численном виде для конкретных значений R1=1, R2=2, R3=3:
> R1:=1:R2:=2:R3:=3:R0;
> evalf(%);
Знак процента в качестве аргумента функции evalf() означает результат последней операции.
Типовые символьные вычисления
Ниже показано несколько примеров выполнения символьных вычислений математического характера: 1) преобразование тригонометрического выражения с помощью функции упрощения simplify, 2) вычисление суммы ряда функцией sum и 3) вычисление неопределённого интеграла функцией int.
1)
> eq1:=cos(x)^5+sin(x)^4;
> simplify(eq1);
2)
> sum(x[n]^2,n=1..3);
> sum(k^2,k=0..3);
> sum(k^2,k=0..n);
> sum(k^2,k);
> sum(a[k]*x^k,k=0..4);
> sum(a[k]*x^k,k=1..n);
> sum(1/k!,k=1..infinity);
> sum(1/k^2,k=1..infinity);
3)
> int(ln(x+2),x);
> f:=x->exp(x)*cos(x);
> int(f(x),x);
В пункте 3 реализовано 2 способа задания подынтегральной функции: непосредственное задание ln(x+2)в качестве параметра функции int и предварительное определение функции exp(x)*cos(x) в предыдущей строке.
Далее показаны примеры таких вычислений с применением функции dif для вычисления производной и int для вычисления определенных интегралов.
> diff(sin(x)^2,x);
> Int(1/sqrt(1-x^2),x=0..1);
> int(1/sqrt(1-x^2),x=0..1);
> Int(exp(-t)/t^(1/3),t=0..infinity);
> int(exp(-t)/t^(1/3),t=0..infinity);
Обратите внимание на функцию Int — инертную форму функции int. Как уже отмечалось, инертная форма служит для вывода записи интеграла в естественной математической форме, но с отложенным «на потом» выводом результата вычислений. Как отмечалось, это один из путей наглядного представления входных выражений. Все инертные функции имеют имена, начинающиеся с большой буквы, тогда как обычные функции имеют имена, начинающиеся с маленькой буквы.
Несобственный интеграл выражается через гамма-функцию Г(t), ее значение в точке 2/3 можно вычислить с помощью функции evalf:
> evalf(%);