Категории
Самые читаемые
onlinekniga.com » Научные и научно-популярные книги » Математика » Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Читать онлайн Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 28 29 30 31 32 33 34 35 36 ... 125
Перейти на страницу:

Функции обычно подразделяются на четыре типа:

• встроенные в ядро системы предопределенные функции или внутренние функции;

• функции пользователя;

• библиотечные функции, вызываемые из пакетов или библиотек расширения системы, например sin(x) или ln(x);

• функции, заданные в виде программного модуля.

Кроме того, функции могут классифицироваться по характеру производимых ими преобразований входных параметров. Они делятся на алгебраические, тригонометрические, обратные тригонометрические, гиперболические, обратные гиперболические, специальные и так далее.

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

3.2.2. Математические выражения

Математические выражения это сложные (комбинированные) объекты, которые состоят из операторов, операндов и функций со списками их параметров. Например, в выражении (2+3)*sin(x) скобки ( ) и знаки + и * являются операторами, константы 2 и 3 — операндами, sin(x) — встроенной функцией, а х — входным параметром функции. Для оператора умножения выражение (2+3) и функция sin(x), т.е. по существу тоже выражение, являются операторами. Приоритет функций более высокий, чем у операторов.

В системах для численных расчетов математические выражения применяются в естественном виде и в разборе их структуры нет особой необходимости. Исключение составляет разве что анализ скобок, меняющих приоритет выполнения операций в выражениях.

Иное дела системы символьной математики. У них в ходе вычислений выражения эволюционируют, то есть видоизменяются по мере выполнения расчетов. Это может приводить к весьма неожиданным последствиям, например, когда сложнейшее выражение упрощается к 0 или 1, а внешне совсем не страшное выражение разворачивается так, что не помещается в десятке страниц экрана. Набор средств по разбору структуры и преобразованиям математических выражений в таких системах настолько велик, что всерьез разобраться с ними под силу математику-аналитику или достаточно опытному пользователю. Поэтому мы оставим рассмотрение функций анализа выражений на потом — оно будет дано при описании средств символьной математики.

3.2.3. Работа с элементарными функциями в системе Maple

Maple имеет полный набор элементарных математических функций [38–41]. Все они, кроме арктангенса двух аргументов, имеют один аргумент х, например sin(x). Он может быть целым, рациональным, дробно-рациональным, вещественным или комплексным числом. В ответ на обращение к ним элементарные функции возвращают соответствующее значение. Поэтому они могут быть включены в математические выражения. Все описанные здесь функции называются встроенными, поскольку они реализованы в ядре системы.

Как правило, если аргументом функции является фундаментальная константа, целое или рациональное число, то функция выводится с таким аргументом без получения результата в форме действительного числа с плавающей точкой. Например (файл calcfun):

> sin(Pi);

0

> sin(1);

sin(1)

> exp(1);

e

> ln(2);

ln(2)

> ln(Pi);

ln(π)

> arcsin(1/2);

> arcsin(1/3);

arcsin(⅓)

Нетрудно заметить, что есть и исключения из этого правила — например, на экране монитора ехр(1) будет выведено как константа е, а значение функции arcsin(1/2) все же вычислено и результат получен как 1/6 от константы Pi. Вообще говоря, если результат выражается через фундаментальную математическую константу, то он будет вычислен и представлен ею. В противном случае функция с целочисленным и рациональным аргументом или с константой просто повторяется в строке вывода в установленном для этой строки формате.

Для получения подробной информации о некоторой произвольной функции <f> достаточно задать команду

> ? <f>

Например, команда

> ? sin

открывает окно справки по тригонометрическим функциям, включая функцию синуса.

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

3.2.4. Некоторые целочисленные функции и факториал

Ниже представлены наиболее распространенные целочисленные функции Maple, используемые в теории чисел:

• factorial(n) — функция вычисления факториала (альтернатива — оператор !);

• iquo(a,b) — целочисленное деление а на b;

• irem(a,b) — остаток от деления а на b;

• igcd(a,b) — наибольший общий делитель;

• lcm(a,b) — наименьшее общее кратное.

Факториал целого числа N задается как N= 1*2*3*...*N при особых случаях 0!=1 и 1!=1. Примеры применения функций, отмеченных выше (файл calcfun):

> [factorial(10),10!];

[3628800, 3628800]

> iquo(234,5);

46

> irem(234,5);

4

> lcm(124,3);

372

> [3!!, (3!)!];

[720, 720]

В последних двух примерах применения оператора факториала полезно обратить внимание, что запись n!! означает лишь (n!)!, а не n!! = 2*4*6*…, то есть произведение четных целых чисел. Действие других функций очевидно. Целочисленные функции, хотя и не все, не могут использоваться для символьных операций, например интегрирования или дифференцирования.

Полезность возможности Maple вычислять факториалы больших чисел демонстрирует следующий пример. Пусть в группе студентов 25 человек, а в году 365 дней. Тогда вероятность того, что ни у кого из студентов дни рождения не совпадают, составит:

> evalf(%);

р = 0.2780571566 10-25

При обычной арифметике был бы получен 0 или сообщение о некорректности операций из за превышения разрядной сетки компьютера.

А вот еще более характерный пример такого рода. Пусть вероятность рождения мальчика 0.515. Какова вероятность того, что среди 1000 новорожденных мальчиков будет не менее половины. Расчетная формула требует вычисления факториала 1000!:

> evalf(%);

р = 0.8366435978

Если увеличить число рождаемых мальчиков до 10 или 100 тысяч, то такая задача может послужить хорошим тестом не только на работу с очень большими числами, но и на скорость вычислений. Решение таких задач без применения аппарата точной арифметики больших чисел встречает большие трудности, а подчас и просто невозможна.

3.2.5. Функции с элементами сравнения и их применение

Несколько хорошо известных функций использует при вычислениях средства сравнения чисел. Для действительного аргумента х это следующие функции:

• trunc(x) — при х>=0 возвращает наибольшее целое, меньшее или равное х, при x<0, trunc(x) = -trunc(-x).

• round(x) — округляет x до ближайшего целого.

• frac(x) — возвращает дробную часть х, так что frac(x) = х - trunc(x).

• floor(x) — возвращает наибольшее целое, меньшее или равное х.

• ceil(x) — возвращает наименьшее целое, большее или равное х.

Эти функции могут использоваться и для комплексного аргумента х. При этом справедливы следующие соотношения:

trunc(x) = trunc(Re(x)) + I*trunc(Im(x))

round(x) = round(Re(x)) + I*round(Im(x))

frac(x) = frac(Re(x)) + I*frac(Im(x))

ceil(x) = -floor(-x)

К этой категории относится и функция знака, синтаксис которой:

signum(x) signum(1,x) signum(0, х, у)

В основной (первой) форме она возвращает значение x/abs(x), где функция abs(x) — возвращает абсолютное значение действительного х, т.е. х при х>0 и при х<0.

Действия, выполняемые этими функциями, вполне очевидны и читатель может легко проверить это на практике. Данные функции можно использовать для моделирования периодически повторяющихся зависимостей (сигналов). Несколько таких примеров представлено ниже (файл modsig — рис. 3.1):

> restart;

RC:=2-2*ехр(3*(floor(t/2)-t/2));

upside:=1/(3+2*sin(Pi*t));

sawtooth:=t-floor(t):

roundsquare: = (tanh(100*sin(Pi*t) )+1) /2:

squarewave:= (1+signum(sin (Pi*t)))/2;

blimps:=squarewave*sawtooth;

triang:=blimps+(squarewave-1)*(sawtooth-1);

plot([sawtooth+5, upside+3, RC,blimps-2,squarewave-4,roundsquare-6,triang-8],t=0..10,-8..6,

color=[red,orange,green,black,magenta,brown,blue], thickness=3);

Графики зависимостей, получаемые с помощью представленного выше примера показаны на рис. 3.1. Эти зависимости можно использовать в качестве моделей сигналов при моделировании электрических и электронных цепей (см. главу 11).

Рис. 3.1. Графики зависимостей, получаемых с помощью функций сравнения

1 ... 28 29 30 31 32 33 34 35 36 ... 125
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов.
Комментарии