Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ MAPLE ИС / ЛАБ 0-0-знакомство с пакетом.doc
Скачиваний:
48
Добавлен:
15.02.2015
Размер:
415.23 Кб
Скачать

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(%);