Maple 9.5/10 в математике, физике и образовании
Шрифт:
Полезность возможности Maple вычислять факториалы больших чисел демонстрирует следующий пример. Пусть в группе студентов 25 человек, а в году 365 дней. Тогда вероятность того, что ни у кого из студентов дни рождения не совпадают, составит:
При обычной арифметике был бы получен 0 или сообщение о некорректности операций из за превышения разрядной сетки компьютера.
А вот еще более характерный пример такого рода. Пусть вероятность рождения мальчика 0.515. Какова вероятность того, что среди 1000 новорожденных мальчиков будет не менее половины. Расчетная формула требует вычисления факториала 1000!:
Если увеличить число рождаемых мальчиков до 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):
Графики зависимостей, получаемые с помощью представленного выше примера показаны на рис. 3.1. Эти зависимости можно использовать в качестве моделей сигналов при моделировании электрических и электронных цепей (см. главу 11).
Рис. 3.1. Графики зависимостей, получаемых с помощью функций сравнения
3.2.6. Примеры вычисления тригонометрических функций
В ядре Maple (и других СКМ) определены следующие тригонометрические функции: sin — синус; cos — косинус; tan — тангенс; sec — секанс; csc — косеканс; cot — котангенс. Все эти функции являются периодическими (с периодом 2π, кроме тангенса и котангенса, у которых период равен π) и определены для действительного и комплексного аргументов. Примеры вычислений (файл calcfun):
Многие свойства тригонометрических функций можно оценить, рассматривая их графики. Для построения таких графиков средствами Maple можно использовать функцию plot. Примеры построения графиков тригонометрических функций даны в файле tfris.
3.2.7. Гармонический синтез пилообразных колебаний
Фундаментальная роль функций синуса и косинуса проявляется в решении задач спектрального анализа и синтеза. В Maple они реализуются с помощью функций прямого и обратного преобразований Фурье [39, 43]. Однако, смысл гармонического синтеза проще всего понять, просто суммируя синусоидальные функции с кратной частотой — гармоники. При этом характер результирующего колебания зависит от того, какие гармоники берутся (все, только четные или только нечетные), а также от того, по какому закону меняется амплитуда колебаний и их фаза в зависимости от номера гармоники. Покажем это на паре примеров.
На рис. 3.2 показан пример гармонического синтеза двух периодов пилообразного колебания (сигнала) при суммировании 3, 10 и 60 гармоник. Отчетливо видно, что по мере увеличения числа гармоник форма колебаний действительно приближается к треугольной. В условиях резкого ограничения числа гармоник в местах предполагаемого разрыва колебаний наблюдаются характерные колебания — эффект Гиббса.
Рис. 3.2. Гармонический синтез треугольных колебаний по 3, 10 и 60 гармоникам
Колебания описанной формы получаются за счет синтеза всех гармоник, причем амплитуда гармоник равна 1/k, где k — номер гармоники.
3.2.8. Гармонический синтез меандра
А теперь рассмотрим синтез симметричных прямоугольных колебаний, получивших название — меандр. Для синтеза меандра надо использовать только нечетные гармоники, т. е. с номерами n=1, 3, 5, … Проще всего получить нечетные числа, используя вместо параметра n значение 2n–1. Тогда для получения 3, 9 и 59 нечетных гармоник надо будет использовать значения n до 2, 5 и 30. Рис. 3.3 иллюстрирует синтез меандра.