Ознакомительная версия.
Решение прошло успешно — во всех случаях пoлvчeны аналитические выражения для решения. Они более тривиальные, чем решение eq относительно х.
Не следует считать решения в аналитическом виде ограничением СКА. Большинство СКА, в том числе и Maple 9.5/10 легко решают подавляющее большинство задач и в численном виде и являются универсальными СКМ. Так, определив переменные а, b и с, присвоением им некоторых значений
> а:=2:b:=3:с:=4:
получим решение в численном виде:
> solve(eq,х);
Оно получено в виде комплексно-сопряженных чисел, в них I это мнимая единица, т. е. √-1.
1.2.5. Данные о скорости вычислений в Maple 9.5
В последних реализациях Maple много внимания было уделено повышению скорости вычислений. Система Maple 8, к примеру, вычисляла факториал максимально возможного числа 32000, затрачивая на это (на ПК с процессором Pentium III 600 МГц) 2,784 с [22]. A Maple 9.5 на современном ПК с процессором Pentium 4 Hyper Threading 2,6 ГГц справляется с этим в более чем в двадцать раз быстрее (файл bench):
> restart: t := time(): 32000!: TIME-time()-t;
TIME = 0.125
Разумеется, выигрыш в скорости в данном случае обусловлен как применением более скоростного компьютера, так и системы Maple 9.5. К примеру, на том же компьютере Maple 8 выдала результат за 0,583 с, a Maple 7 — 0,610 с. Таким образом, скорость вычисления у Maple 9.5 в данном случае (при равных аппаратных возможностях) оказалась выше более чем вдвое. Любопытно, что при повторном выполнении этой команды время выполнения было показано нулевым, что свидетельствует об эффективном кэшировании программных кодов.
Обратите внимание на примененный полезный прием оценки скорости вычислений с помощью функции time() без аргумента. Можно подыскать и куда более эффектные частные примеры. Например, сумма 100000 членов 1/k^2 в Maple 8 вычислялась на ПК автора с процессором Pentium 4 НТ 2,6 ГГц за время около 256 с:
> t := time():add(1/k^2, k=1..100000): TIME=time()-t;
TIME = 255.688
А в Maple 9.5 тот же пример дал время меньше 7 с:
> t := time() :add(1/k^2, k=1..100000): TIME=time()-t;
TIME = 6.500
В данном случае резкое ускорение вычислений обусловлено применением новой библиотеки целочисленной арифметики — GNU Multiple Precision (GMP).
Доброго обывателя в области математики поражает способность Maple выполнять точные арифметические операции с целыми числами, которые не помешаются в строку. При этом знак переносит вывод на следующую строку, а знак % подставляет в строку ввода результат предшествующей операции:
> 200!+123456789;
031904170324062351700858796178922222789623703897374720 000000000000000000000000000000000000000123456789
> %-200!;
123456789
Но Maple 9.5 идет еще дальше — почти мгновенно (особенно при повторе примера) система вычисляет факториал 100000:
> t : = time():bigFactorial := 100000!:TIME=time()-t;
TIME = .609
> t := time():bigFactorial := 100000!:TIME=time()-t;
TIME = 0
Заметно повышена и скорость многих сложных вычислений. Например, на вычисление внушительного определенного интеграла
> Int( х^n*ехр(-х^n) + Sum( cos(k*x)/k, k=1..n), х=0..1);
в стократно повторяющемся цикле, Maple 9.5 затрачивает чуть меньше трех сотых секунды на каждое вычисление интеграла:
> t := time():
for i from 1 to 100 do
evalf(Int(х^i*ехр(-x^i) + add(cos(k*x)/k, k=0..i), x=0..1)):
end do:
TIME=time()-t;
TIME = 2.922
В следующем примере вычисляется время, которое нужно для создания большой матрицы случайных чисел с помощью пакета расширения LinearAlgebra:
> М := LinearAlgebra:-RandomMatrix(500);
> timeconsumed = time(type(M, 'Matrix'(algebraic)));
time_consumed = 0.031
Повышение скорости вычислений обеспечено усовершенствованием алгоритмов численных вычислений (например, GNU) и применением подпрограмм национальной группы алгоритмов NAG — общепризнанных в области быстрых вычислений при решении задач линейной алгебры. Кстати, выше была приведена первая программа на Maple-языке программирования, использующая конструкцию цикла.
Читатели книги [23], описывающей предшествующую реализацию Maple 9, обратят внимание на то, что данные по скорости выполнения операций у Maple 9.5 лишь немного отличаются от приведенных для Maple 9, причем в ту или иную сторону. Это позволяет считать их практически равноценными.
Любопытно отметить, что последний пример в Maple 10 дал при первом пуске время 0.078 с, а при втором 0.015. Это говорит о том, что слишком щепетильно относиться к подобным тестам не стоит. Они дают лишь порядок величин, характеризующих скорость вычислений.
1.3. Интерфейс пользователя Maple 9.5
Как у всех приложений под Windows интерфейс Maple 9.5 имеет ряд характерных элементов, отчетливо видимых на рис. 1.2, 1.3 и 1.4:
• строка заголовка (сверху);
• строка главного меню;
• главная панель инструментов;
• контекстная панель инструментов, вид которой зависит от режима работы с Maple 9.5;
• окно ввода и редактирования документов;
• строка состояния (в самом низу окна);
• панели ввода специальных математических символов (см. ниже).
Пользовательский интерфейс Maple 9.5 позволяет готовить документы, содержащие одновременно текстовые комментарии, команды входного языка (с возможным преобразованием их в естественную математическую форму нажатием кнопки с буквой «х»), результаты вычислений в виде обычных математических формул и графические данные. Это обеспечивает понятное представление исходных данных и результатов вычислений, а также удобство их повторного использования.
Пользователь Maple 9.5 (как и ряда других математических систем) работает с документами, которые являются одновременно описаниями алгоритмов решения задач, программами и результатами их исполнения. Все данные команды и результаты размещаются в соответствующих ячейках. Графические построения выполняются как в ячейках документа, так и в отдельных окнах, и имеют свои меню для оперативного управления параметрами.
Наиболее полные возможности управления предоставляет меню системы Maple 9.5, расположенное под строкой заголовка — см. рис. 1.4 с открытой позицией View меню. Ниже дан перечень позиций меню, доступных при наличии открытого документа и стандартном виде интерфейса (см. рис. 1.2):
File — работа с файлами и печатью документов;
Edit — команды редактирование документа и операции с буфером обмена;
View — управление видом пользовательского интерфейса;
Insert — операции вставки;
Format — операции задания форматов;
Tools — доступ к инструментальным средствам;
Window — управление окнами;
Help — работа со справочной системой.
При классическом интерфейсе позиция Tools меню отсутствует, но есть другая позиция меню:
Spreadsheet — операции задания таблиц.
В позиции Tools меню стандартного интерфейса имеется доступ к ряду новых средства системы Maple 9.5, прежде всего к маплетам (maplets). Это надо учитывать при выборе интерфейса, с которым лучше работать.
В целом меню Maple 9.5 контекстно-зависимое и некоторые команды в позициях меню могут быть не активными. Такие команды представлены нечеткими серыми буквами, тогда как активные команды прописаны четкими черными буквами.
1.3.3. Палитры ввода математических символов
Полезно сразу обратить внимание на возможность модификации интерфейса системы Maple 9.5 с помощью команд меню View (рис. 1.4). Так, в этом меню можно увидеть список палитр Palettes, предназначенных для ввода математических знаков. Установив флажки соответствующих палитр можно вывести их на экран и переместить в любое место. Все четыре палитры математических символов в случае классического интерфейса представлены на рис. 1.4. Команда Zoom Factor позволяет менять масштаб просмотра документов.
Палитры можно выводить как поодиночке, так и все разом. Команда Hide All Palletes позволяет убрать все палитры. Каждую палитру можно убрать, активизируя кнопку со знаком минуса в начале титульной строки палитры.
Следует также отметить, что не всегда введенный на палитре символ буквально повторяет представленный на кнопке. Например, вместо символа Г может быть введено слово Gamma. Так происходит, если установлен действующий по умолчанию Maple-режим представления символов. Любопытно, что при этом это слово вовсе не означает гамма-функцию, которая в Maple обозначается как GAMMA, т. е. большими буквами. Следующие примеры иллюстрируют сказанное:
> Gamma;
Г
> GAMMA(1.1);
0.9513507699
Как уже отмечалось, в стандартном интерфейсе Maple 9.5 палитры входят в панель палитр и могут составить единый блок палитр (слева на рис. 1.3) или размещаться там, где это удобно пользователю.
Ознакомительная версия.