logo
Курс лекций КИТ

Преобразование математических выражений

В выражение могут входить константы, свободные переменные, математические функции. Пример выражения:

> A:=sin(sqrt(Pi)+exp(2));

Довольно часто в качестве выражений выступают многочлены от одной или нескольких переменных или рациональные выражения. Maple содержит различные функции для преобразования таких выражений.

Функция factor(eq) разлагает выражение eq на множители.

> P:=x^4+2*x^3+2*x^2+2*x+1:

factor(P);

Функция expand(eq) раскрывает скобки в выражении. Если указать один или несколько дополнительных параметров в виде expand(eq,a,b,c), то выражения a, b, c раскрываться не будут. Это полезно, если необходимо каждое слагаемое умножить на какое-то выражение.

Примеры:

> expand((x+1)*(x+2));

> expand(sin(x+y));

> expand((x+1)*(y+z),x+1);

Для приведения дробей к общему знаменателю с последующим сокращением используется функция normal(eq).

> normal(1/x+1/y);

> (a^4-b^4)/((a^2+b^2)*a*b);

> normal(%);

Функция simplify(eq) упрощает выражение eq. В качестве второго (необязательного) параметра, ей можно указать, какие выражения преобразовывать: trig – тригонометрические, power – степенные, radical – радикалы, exp – экспоненты, ln – логарифмы.

Пример:

> simplify(sin(x)^2+cos(x)^2);

Предел вычисляется при помощи функции limit. Ее синтаксис: limit(f(x),x=a), где f(x) – функция, предел которой необходимо вычислить, a – точка, в которой вычисляется предел:

> > limit(sin(x)/x,x=0);

В качестве точки могут фигурировать константы infinity и -infinity:

> > limit( (1+1/n)^n, n=infinity);

Если нужно вычислить левый или правый предел в точке, необходимо добавить еще один параметр left или right соответственно:

> > limit(abs(x)/x, x=0, left);

> limit(abs(x)/x, x=0, right);

Для вычисления сумм используется функция sum. Ее синтаксис: sum(f(k),k=a..b), где k – переменная, по которой осуществляется суммирование, f(k) – суммируемые слагаемые, зависящие от k, a и b – пределы суммирования. Например, сумма первых 100 натуральных чисел равна 5050, а сумма их квадратов – 338350:

> sum(k,k=1..100);

> sum(k^2,k=1..100);

При задании параметров можно использовать константу infinity, тогда будет вычислена сумма бесконечного ряда. Например, вычислим сумму бесконечной геометрической прогрессии со знаменателем q:

> > sum(q^k,k=0..infinity);

Для вычисления конечных или бесконечных произведений используется функция product с аналогичным синтаксисом:

> product(i,i=1..6);

> product( (1+1/i^2), i=1..infinity);

В последнем примере фигурирует специальная математическая функция "гиперболический синус" (sinh). Это аналог синуса, определенный не на единичной окружности, а на гиперболе. При необходимости, можно вычислить значение численно:

> evalf (product((1+1/i^2), i=1..infinity));

Большинство функций Maple для исcледований в области теории чисел содержатся в модуле numtheory. Для его подключения необходимо дать команду with(numtheory).

Функция floor(x) округляет число x вниз, ceil(x) округляет число вверх, функция round(x) округляет x до ближайшего целого, функция trunc(x) возвращает floor(x) для положительных x и floor(x) – для отрицательных. Функция frac(x) возвращает дробную часть числа x.

Для нахождения частного при целочисленном делении используется функция iquo, для вычисления остатка от деления – функция irem. У этих функций два параметра: делимое и делитель. Примеры:

> iquo(9,2);

> irem(9,2);

Для нахождения наибольшего общего делителя двух чисел используется функция igcd, для нахождения наименьшего общего кратного – функция ilcm. Пример:

> igcd(2224,122);

> igcd(13,17);

> ilcm(34,78);

Для проверки числа на простоту используется функция isprime, которая возвращает true, если число простое и false – если составное. Для разложения числа на множители используются функции ifactor и ifactors. Первая функция возвращает результат в виде произведения степеней простых чисел, вторая – в виде списка простых чисел и их степеней. Все эти функции работают значительно эффективней простого подбора делителей, проверка на простоту осуществляется быстрее полного разложения на множители.

Для построения простых чисел используются функции prevprime, nextprime, ithprime. Функция prevprime(n) возвращает наибольшее простое число, которое меньше n, функция nextprime(n) - которое больше n. Функция ithprime(n) возвращает n-е простое число.

Для нахождения случайного простого числа следует использовать эти функции вместе с функцией rand(), которая возвращает псевдослучайное 12-значное натуральное число. Для инициализации генератора псевдослучайных чисел необходимо использовать функцию randomize().

> isprime(137);

> isprime(2219);

> ifactor(2219);

> ifactors(2219);

> ifactor(408);

> > nextprime(408);

> isprime(408);

> isprime(409);

> ithprime(3);