ЧИГАРЕВ А.В., КРАВЧУК А.И., КРАВЧУК А.С. ОСНОВЫ СИСТЕМЫ MATHEMATICA 4.0. ЗАДАЧИ И РЕШЕНИЯ Минск –2002 УДК 681.3 Р Е Ц Е Н З Е Н Т Ы: Чигарев А.В., Кравчук А.И., Кравчук А.С. Основы системы Mathematica 4.0. Задачи и решения: Учебное пособие. – Минск: . – 150 с. В пособии изложены не только наиболее важные элементы системы Mathematica, позволяющие сэкономить время читателя при ее изучении, но и приведены примеры решения с ее помощью различных задач. Настоящее пособие предназначено для студентов, изучающих курсы “Высшая математика”, "Информатика", "Теоретическая механика", "Теория машин и механизмов", “Техническая механика”, а также при решении различных прикладных задач. Данное учебно-методическое пособие сопровождается электронным вариантом учебника в виде файлов в формате Notebook системы Mathematica и pdf-формате для AcrobatReader, что позволяет его использовать при работе на компьютере в качестве электронного помощника. Изложение материала сопровождается текстом упражнений и задач. Все это должно способствовать популяризации данной системы. Электронный вариант учебника можно заказать по адресу: [email protected] © Чигарев А.В., Кравчук А.И., Кравчук А.С. 2 ОГЛАВЛЕНИЕ ВВЕДЕНИЕ.............................................................................................................5 ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ О СИСТЕМЕ MATHEMATICA......7 Структура системы Mathematica..................................................................7 Встроенная справочная система................................................................11 Ввод спецсимволов.....................................................................................14 Специализированные программы..............................................................15 ВЫЧИСЛЕНИЯ...................................................................................................17 Арифметические операции и их последовательность.............................17 Точные и приближенные вычисления ......................................................18 Некоторые встроенные математические функции ..................................20 Комплексные числа.....................................................................................22 СИМВОЛЬНЫЕ ПРЕОБРАЗОВАНИЯ..........................................................24 Преобразования многочленов....................................................................24 Подстановки.................................................................................................26 Решение уравнений и неравенств..............................................................28 Вычисление пределов.................................................................................31 Дифференцирование функций...................................................................32 Интегралы и ряды........................................................................................33 Дифференциальные уравнения..................................................................36 ГРАФИКА.............................................................................................................39 Графические функции и их основные опции...........................................39 Функции трехмерной графики...................................................................52 Анимация графических образов................................................................61 Графические примитивы............................................................................65 СПИСКИ...............................................................................................................68 Конструирование списков..........................................................................68 Преобразования списков............................................................................74 Основные операции над матрицами..........................................................77 О ПРОГРАММИРОВАНИИ В СИСТЕМЕ MATHEMATICA. ПРОЦЕДУРНОЕ ПРОГРАММИРОВАНИЕ.................................................82 Функции, определяемые пользователем...................................................83 Циклы...........................................................................................................84 Условные операции.....................................................................................87 Процедуры, блоки, функция Module.........................................................89 Контроль за выполнением программы .....................................................95 ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ ТЕОРЕТИЧЕСКОЙ МЕХАНИКИ В СИСТЕМЕ MATHEMATICA............................................................................97 Пример 1.......................................................................................................97 Постановка задачи...................................................................................97 Текст программы рисунка постановки задачи.....................................98 Решение:...................................................................................................99 3 Текст программы анимации движения...............................................101 Пример 2.....................................................................................................103 Постановка задания...............................................................................103 Программа рисунка постановки задачи..............................................103 Решение:.................................................................................................106 Текст программы визуализации движения.........................................110 СПРАВОЧНЫЕ СВЕДЕНИЯ О ГЛАВНОМ МЕНЮ СРЕДЫ MATHEMATICA...............................................................................................115 File – меню работы с файлами.................................................................115 Edit – меню редактирования ....................................................................116 Cell – меню работы с ячейками................................................................118 Format – меню оформления документа...................................................119 Input – дополнительное меню работы с командами, управляющими функционированием рабочего поля........................................................120 Kernel – меню обращения к ядру системы .............................................121 Find – меню поиска...................................................................................122 Window – меню работы с окнами............................................................123 Help – меню обращения к справочной системе .....................................123 РЕШЕНИЕ НЕКОТОРЫХ МАТЕМАТИЧЕСКИХ ЗАДАЧ С ПОМОЩЬЮ СИСТЕМЫ MATHEMATICA........................................................................125 Преобразования многочленов..................................................................125 Решение уравнений...................................................................................126 Решение неравенств..................................................................................133 Вычисление сумм......................................................................................136 Дифференцирование функций.................................................................136 Разложение в ряд и вычисление интегралов функций..........................137 Графики функций......................................................................................139 Обработка списков....................................................................................146 СПИСОК ЛИТЕРАТУРЫ...............................................................................150 4 Введение Общей тенденцией современного развития средств программирования является дальнейший переход к более высокому уровню используемых макрокоманд, которые, с одной стороны, составляют основу языка (набора управляющих команд), а с другой – дают возможность во многих случаях получить требуемые результаты с помощью одного оператора (действия). Это общая тенденция развития позволяет на нынешнем этапе не углубляться в знание частных вопросов, а сосредоточиться непосредственно на объекте (цели) исследования, что не только повышает скорость достижения результата, но и позволяет не акцентировать внимание на особенностях или трудностях его достижения. Тенденция глобализации коснулась в настоящее время пакетов и систем, ориентированных на научные исследования. В настоящее время разработано достаточно большое количество приложений подобного рода (Maple, MathCAD, MathLAB, Mathematica и др.). Несмотря на существенное различие не только в концепции существующих приложений, в методах решений задач, лежащих в их основе, они направлены на достижение общей цели - освободить студента, аспиранта, исследователя от необходимости написания собственных библиотек функций или процедур для решения таких частных и элементарных задач, как вычисление интегралов, пределов и производных функций, построение их графиков и др. Обычно именно эти частные и несущественные вопросы занимают большую часть времени в исследованиях при решении конкретных задач, а использование указанных приложений позволяет значительно сократить время получения результата. При этом наиболее сильной стороной системы Mathematica по сравнению с другими приложениями является возможность проводить сложные символьные преобразования. Более того, по уровню использования графики Mathematica превосходит все имеющиеся к настоящему времени компьютерные математические системы. Необходимо подчеркнуть, что наибольшую ценность при решении частных прикладных задач физики, математики, техники имеют именно аналитические выражения и зависимости. И с появлением система Mathematica для выполнения аналитических преобразований исследователю нет необходимости искать в литературе способы и методы достижения поставленной цели. Система Mathematica является одной из самых мощных и эффективных компьютерных математических систем. Она может быть использована многими способами: как "калькулятор"- позволяет быстро и эффективно проводить 5 вычисления (с любой заданной точностью); решать многие задачи линейной алгебры, математического анализа, задачи теории чисел и статистики, дискретной математики. Кроме того, система Mathematica может служить средством для представления математических сведений. Сильной стороной этой компьютерной системы является развитая двух- и трехмерная графика, применяемая для вычерчивания кривых и изображения поверхностей по их уравнениям. Система Mathematica также является языком программирования высокого уровня, позволяющая использовать, в частности, процедурный стиль программирования. Система Mathematica интерактивная, т.е. работает в режиме постоянного диалога с пользователем. Она гибкая и универсальная, поэтому может быть использована всеми желающими - школьниками, студентами, аспирантами, научными работниками, активно использующими математические методы в своей работе. Благодаря указанным качествам в последние годы система Mathematica стала составной частью новых компьютерных технологий проведения научных исследований в США, Западной Европе и Японии. В этих странах она применяется даже в качестве базисной для построения курса математики во многих высших технических и гуманитарных учебных заведениях. Одно из преимуществ системы Mathematica над другими символьными системами такого рода заключается в том, что она является мощным инструментом для создания презентаций и электронных учебников, для оформления дипломных и научных работ, а также для выполнения заказов, требующих визуализации и моделирования различных процессов. В основе данного пособия лежит хорошо апробированный и устоявшийся стиль изложения основ использования тех или иных приложений. Это нашло отражение в том, что в данном пособии описаны не только наиболее важные элементы системы Mathematica, позволяющие экономить время читателя при ее изучении, но и приведены примеры решения с ее помощью различных задач. Настоящую работу можно использовать как методический материал для студентов, изучающих курсы "Информатика", "Теоретическая механика", "Теория машин и механизмов", а также при решении различных прикладных задач. Следует отметить, что данное учебно-методическое пособие сопровождается электронным вариантом учебника в виде файлов в формате Notebook системы Mathematica и pdf-формате для AcrobatReader, что позволяет его использовать при работе на компьютере в качестве электронного помощника. Изложение материала сопровождается текстом упражнений и задач. Все это должно способствовать популяризации данной системы. 6 Предварительные сведения о системе Mathematica Структура системы Mathematica Система Mathematica представляет программную среду, в которой создаются, документируются и выполняются вычисления и программы пользователя. Система состоит из двух основных частей: ядра (Kernel), производящего базисные операции и вычисления по заданным командам, и интерфейсного процессора (Front End), задающего внешнее оформление и характер взаимодействия пользователя с системой. Подобная структура является в настоящее время характерной чертой всех мощных комплексов (ANSYS, NASTRAN) и позволяет наиболее гибко обеспечить их использование на компьютерах различного типа. Ядро системы действует одинаково на всех компьютерах, а интерфейс, в отличие от него, использует различные возможности отдельных типов компьютеров. Наиболее общий (обычный) тип интерфейса основан на концепции рабочего поля или окна документа, известного как блокнот (NoteBook), содержащего строки ввода, вывода, текст (пометки пользователя), графику, палитры и другой материал (рис. 1). Записные книжки могут быть использованы для выполнения продолжающихся вычислений или как средства представления или публикации результатов. Рис. 1. Фрагмент документа в стиле «NoteBook». Вся работа осуществляется в окне рабочего документа - блокнота, 7 внешний вид которого, как уже отмечалось, зависит от типа платформы (PC, Macintosh) и определяется интерфейсным процессором, своим для каждой платформы. Блокноты системы Mathematica состоят из ячеек (Cell), выделенных по правому краю окна документа закрывающей квадратной скобкой (Bracket), вид которой указывает на тип ячейки. Основными видами ячеек являются: ячейка ввода (Input)- то, что печатает пользователь, и ячейка вывода (Output)- то, что печатает в ответ система. Ячейки подчинены определенной иерархии, которая просматривается за счет того, что скобки отдельных ячеек объединены более крупными скобками. Обозначенная таким образом группа ячеек может быть открыта или закрыта: в этом случае она приобретает вид ячейки, отмеченной справа одной квадратной скобкой с треугольником в нижней его части. Когда группа ячеек открыта, все ячейки можно увидеть явно; когда закрыта, можно увидеть только первую или возглавляющую ячейку в группе (рис. 2). Рис. 2. Иерархия ячеек в системе Mathematica. Большие блокноты часто разделяются на множество закрытых групп ячеек так, чтобы сначала можно было видеть только схему (контур) содержания блокнота. Скобки, окаймляющие группу ячеек, используются для того, чтобы свернуть (сделать невидимыми) содержимое внутренних ячеек. Для этого справа к внешней скобке подводят указатель мыши (он принимает вид стрелки, направленной влево и ограниченной у острия вертикальным отрезком) и выполняют двукратный щелчок левой кнопкой мыши, после чего «подчиненные» ячейки исчезают. Развернуть спрятанное содержимое ячейки можно тем же способом. Каждая ячейка в пределах определенного блокнота назначает специфический стиль, который указывает ее роль в пределах данного блокнота. Таким образом, например, ячейка, определенная в стиле Input, будет обработана ядром системы только в стиле Input, в то время как текстовая ячейка будет читаться только в стиле Text. Интерфейс системы Mathematica обеспечивает меню возможностями для создания ячеек с различными стилями и для изменения стилей существующих ячеек. Ниже показаны ячейки в различных стилях (рис. 3). Интерпретация ячейки в определенном стиле 8 определяет совокупность ее свойств, включая, например, шрифт и размер ее содержимого. Стили определяют не только формат содержимого ячейки, но и их размещение. Интерфейс системы позволяет изменять такие свойства для всей ячейки или для отдельных частей материала в пределах указанной ячейки. Рис. 3. Возможные варианты стилей ячеек. Как правило, в больших блокнотах имеются главы, секции, подсекции и так далее, представленные группами ячеек. Документы, подготовленные в системе Mathematica, могут содержать как специальные операторы (например, Integrate- интегрировать), так и альтернативные им математические символы (в данном случае знак интеграла - ∫ ). Математические символы, функции и основные операторы системы объединены в кнопочные палитры (Palettes). Палитра для данного приложения – это отдельное специализированное меню, состоящее из набора сгруппированных по определенному признаку разделов, представленных для удобства пользователя в виде кнопок с изображением символов на них (рис. 4). Палитры фактически представляют собой расширение клавиатуры (набора стандартных символов). При необходимости они легко подключаются и в значительной степени облегчают работу с документом. Для этого достаточно загрузить необходимую палитру (команда меню File, пункт Palettes), нажать мышью нужную кнопку и набрать требуемое выражение. Наиболее часто употребляемые палитры удобно «вывешивать» в начале каждого сеанса работы. Следует отметить, что в выполнении различных видов действий с блокнотами используются различные части системы Mathematica. Действия типа открытия и закрытия групп ячеек, мультипликация и воспроизведение звуков используют только малую часть интерфейса системы, и эти действия поддерживаются широко доступной программой, известной как MathReader, являющейся частью интерфейса системы. 9 Рис. 4. Примеры палитр системы. Однако, чтобы быть способным создавать и редактировать документы, необходимо полное использование интерфейса (Front End). И, наконец, чтобы фактически делать вычисления в пределах документа, необходимо в полной мере использование интерфейса системы и ее ядра (Kernel). При запуске системы Mathematica на экране появляется инструментальная панель (строка главного меню в верхней части экрана) и активное окно документа (рабочее поле) с временным именем Untitled-1, которое при дальнейшем сохранении документа можно изменить на постоянное (рис. 5). Работа в системе Mathematica происходит в режиме сессии (session) или сеанса. Во время сессии можно работать попеременно с несколькими документами. Решение любой задачи начинается с набора выражения, содержащего символы, числа, строки, для вычисления которого следует нажать клавиши Shift+Enter. Если выражение набрано без синтаксических ошибок, Mathematica вычислит его, при этом набранное выражение будет помечено ремаркой In[1]:=, а полученный ответ - ремаркой Out[1]:=. В противном случае Mathematica выдаст сообщение об ошибке. Под выходной ячейкой имеется горизонтальная черта- это означает, что Mathematica готова принять новое выражение (рис. 6). 10