Интерфейс с FORTRAN'ом и LATEX'ом
Методическое
Пособие
По
Курск 2011
СОДЕРЖАНИЕ
Лабораторная работа №1 «Возможности Mathematica». 3
Введение. 3
Численные вычисления. 3
Управление системой. 4
Использование палитр. 6
Интерфейс с FORTRAN'ом и LATEX'ом.. 7
Лабораторная работа №2. «Основные объекты». 10
Числа и переменные. 10
Функции. 11
Списки. 12
Выражения. 13
Лабораторная работа №3. «Дифференциальное и интегральное исчисление». 21
Вычисление производных. 21
Определённые и неопределённые интегралы.. 22
Пределы.. 23
Разложения в ряды.. 24
Лабораторная работа №4. «Построение графиков в СКМ Mathematica». 28
Построение простейших двумерных и трехмерных графиков. 28
Стиль линий графиков. 28
Оси графика. 29
Размеры графика. 30
Оформление графика. 30
Лабораторная работа №5. «Решение уравнений». 34
Уравнения в системе Mathematica. 34
Решения алгебраических уравнений. 35
Решения дифференциальных уравнений. 36
Пример решения задачи по механике. 41
Лабораторная работа №1 «Возможности Mathematica»
Введение
Mathematica - это программа для выполнения аналитических и численных вычислений. Данная лабораторная работа демонстрирует ее основные возможности. Она содержит пояснительный текст и команды, которые можно выполнять, установив курсор на ее конец и нажав комбинацию клавиш Shift + Enter. Последовательное выполнение команд документа можно осуществлять путем нажатия клавиш Shift + Enterна клавиатуре, при первом нажатии осуществляется переход к следующей ячейке, при втором - выполнение команды. Команды набраны полужирным шрифтом, регистр букв в них является существенным. Вы можете вносить изменения в команды и вновь выполнять их. Для того чтобы сохранить файл лабораторной работы неизменным, рекомендуется при выходе из программы не сохранять сделанных изменений.
Численные вычисления
Mathematica позволяет выполнять с неограниченной точностью операции с целыми, рациональными, вещественными и комплексными числами. Так, не представляет труда найти факториал любого (в пределах разумного!) целого числа:
157!
Обратный слэш ( \ ) в записи результата означает перенос.
Арифметические операции с рациональными числами выполняются точно; при этом общий множитель сокращается:
Можно вычислить квадратный корень с любой требуемой точностью, например, с 25 десятичными цифрами:
Операции с комплексными числами ( I = J = - мнимая единица ) также встроены в Mathematica:
[I 0.5]
Управление системой
Управление системой Mathematica осуществляется с помощью команд оболочки Front End , которые можно выдавать из главного меню.
Для наиболее часто используемых команд имеются клавиатурные комбинации (так называемые "горячие клавиши").
Главное меню системы Mathematica включает в себя девять групп команд:
File - для работы с файлами
Edit - основные операции редактирования
Cell - работа с ячейками
Format - команды форматирования ячеек документа
Input - команды ввода различных объектов
Kernel - команды управления ходом вычислений
Find - операции поиска и замены
Window - операции с окнами и их расположением
Help - справочная база данных
1.Группа команд File предназначена для работы с файлами и позволяет создавать новые ( New, Ctrl + N) и открывать существующие файлы ( Open, Ctrl + O), сохранять их ( Save , Ctrl + S, или под другим именем Save As, Shift + Ctrl + S) и экспортировать в другие форматы ( Save As Special), такие, как TEX, HTML и др. С помощью пункта Paletters можно вызвать различные палитры, а пункты Printing Setting, Print ( Ctrl + P) и Print Selection ( Shift + Ctrl + P) позволяют устанавливать опции печати и выводить на печать документы и их части. Команда Exit служит для выхода из системы.
2.Группа команд Edit включает стандартные команды редактирования, такие как отмена последного изменения ( Undo, Ctrl + Z), удаление с помещением в буфер обмена ( Cut, Ctrl + X), копирования в буфер обмена ( Copy, Ctrl + C), вставки из буфера ( Paste, Ctrl + V) и удаления без помещения в буфер обмена ( Clear , Del ). Кроме этого, имеются команды копирования, вставки и записи отдельных фрагментов в различных форматах ( Copy As, Paste As, Save Selection As) и выделения всего текста ( Selection All, Ctrl + A). Пункт меню Preferencts содержит множество настроек системы, изменять которые без острой необходимости не стоит.
3.Группа команд Cell позволяет работать с ячейками, из которых состоит любой документ системы Mathematica: форматировать их, устанавливать статус, открывать и закрывать.
4.Группа команд Format позволяет выбрать шрифт ( Font ), его тип ( Face ), размер ( Size ), цвет текста ( TextColor ) и фона ( Background Color ). Она содержит команды, определяющие тип выравнивания текста ( Text Alignment и Text Justification ) и ряд команд, определяющих вид документа ( Show Ruler, ToolBar, PageBreaks, Magnificftion ).
5.Группа команд Input позволяет упростить ввод многих команд. Так, можно выбрать точку наблюдения для трехмерных графиков (3D ViewPoint Selector ), необходимый оттенок цвета (Color Selector ), ввести полный путь к необходимому файлу ( Get File Path ), создать таблицу, матрицу или палитру (Create Table/Matrix/Palette ), гиперссылку (Create Hyperlink ) и т.д.
6.Группа команд Kernel позволяет управлять ходом вычислений. Подгруппа команд Evaluation дает возможность выполнять команды в текущей ( Evaluate Cell , Shift + Enter) и в следующей ( Evaluate Next Input, Shift + Enterна циф. клав. , первое нажатие - переход к следующей ячейке, второе - выполнение) ячейках и все команды документа ( Evaluate Notebook ). Прекращение вычислений осуществляется командами Interrupt Evaluation и Abort Evaluation. Команда Delete All Output уничтожает в документе все выходные ячейки с результатами вычислений и диагностикой (при этом в памяти системы они остаются).
7.Группа команд Find включает стандартные операции поиска и замены текстовых фрагментов.
8.Группа команд Window содержит информацию о всех открытых окнах документов и палитрах, позволяет произвольным образом переключаться между ними. Команды Stack Windows, Tile Windows Wide и Tile Windows Tall позволяют управлять расположением окон документов.
9.Группа команд Help позволяет работать со справочной базой данных системы Mathematica, которая занимает более 100 Мб дисковой памяти. Эта база содержит руководство для начинающего пользователя с многочисленными примерами ( Getting Started/Demos ), электронный вариант книги автора системы Стефана Вольфрама ( The Mathematica Book ), полный список команд Mathematica ( Build-in Function ), описание пакетов расширений ( Add-ons ), дополнительной информации о работе с оболочкой ( Other Information ) и подробного предметного указателя ( Master Index ).
Более подробное описание команд главного меню системы Mathematica можно посмотреть в разделе помощи Other Information → Menu Commands, а список "горячих клавиш" - в разделе Other Information → Keyboard Shortcuts → Microsoft Windows (на английском языке).
Использование палитр
Палитры являются эффективным инструментом, позволяющем упростить и ускорить работу с системой, особенно по набору различных математических выражений.
Для создания формулы нужно последовательно выбирать шаблоны и символы из соответствующих палитр и вставлять их в слоты. Шаблонами называются форматированные наборы символов и пустых полей (слотов). Слот - это поле, в котором находится часть формулы. Перемещение по слотам осуществляется клавишей Tab(вперед) и Shift + Tab(назад). Для возврата в основную строку следует нажать Ctrl + Space.
Далее перечислены палитры, имеющиеся в системе Mathematica . Вызвать их можно, щелкнув левой кнопкой мыши на подчеркнутом названии палитры. Рекомендуется тщательно изучить состав и возможности каждой из палитр.
Палитра Basic Input позволяет вводить шаблоны основных математических конструкций: степеней, дробей, радикалов, интегралов, производных, сумм, произведений, матриц. Она содержит набор наиболее часто употребляемых греческих букв, численных констант и математических символов.
Более полный набор объектов и операторов содержит палитра Basic Typesetting . В нее входят, в частности, полный греческий алфавит, шаблоны для индексов.
Палитра Complete Characters содержит полный набор специальных символов, доступных в системе Mathematica : греческих (Greek), рукописных (Script), готических (Gotic), "двойных" (Double-Struck), "дополнительных" (Extended Latin) букв, "буквоподобных" символов (Letter-like Forms) и операторов (Operators). Отметим, что буквы латинского алфавита, соответствующие различным шрифтам (стандартному, Script, Gotic, Double-Struck ), интерпретируются системой как различные объекты.
Палитра Basic Calculation содержит шаблоны большого количества команд, используемых в системе, которые сгруппированы в семь разделов:
Arithmetic and Numbers - арифметические операции и вычисление численных значений;
Algebra - решение уравнений, операции с полиномами, различные упрощения, комплексные числа;
Lists and matrices - создание списков и матриц, матричные операции;
Trigonometric and Exponential Functions - тригонометрические и экспоненциальные функции;
Calculus - общие операции, дифференциальные уравнения, символические преобразования, численное нахождение корней уравнений;
Other Functions - целые и специальные функции;
Graphics - построение двумерных и трехмерных графиков.
Палитра Algebraic Manipulation позволяет вводить основные команды, управляющие алгебраическими преобразованиями различных выражений: упрощением, разложением, факторизацией и т. д. Характерной особенностью этих команд является то, что они могут быть применены как во входных (Input) так и в выходных (Output) ячейках и, кроме того, к части выражения. Для этого нужно требующую преобразования часть формулы (или всю формулу) выделить с помощью мыши и нажать соответствующую кнопку на палитре.
Палитра International Characters предназначена для ввода некоторых букв кириллицы, других национальных алфавитов и некоторых специальных символов (денежных единиц и др.).
Палитра Notebook Launcher предназначена для создания новых документов, соответствующих различным стилям.
Рассмотренные выше семь палитp могут быть вызваны из пункта меню File → Paletters.
Некоторые из палитр доступны только из раздела помощи Getting sterted/Demos → Demos → Paletter Demos
Интерфейс с FORTRAN'ом и LATEX'ом
Mathematica позволяет полученные с ее помощью результаты (формулы, например) переводить в формат алгоритмического языка FORTRAN для использовании при написании программ численных расчетов, например
Можно также перевести полученный результат в нотацию LATEX'а (знак %% означает ссылку на предпоследний результат):
Полученные таким образом фрагменты можно через буфер обмена (Clipboard) вставить в текст программы на FORTRAN'е или в статью, подготавливаемую с помощью LATEX'а.
Индивидуальные задания:
1. Вычислить значения арифметических выражений с заданной точностью:
№ | Задание | Точность (в знаках) | № | Задание | Точность (в знаках) |
+3! | |||||
*5! | -6!! | ||||
+3! | |||||
-4!! |
2. Представить выражение в формате Latex и Fortran:
№ | Выражение |
Лабораторная работа №2. «Основные объекты»
Числа и переменные
Важнейшие объекты любой вычислительной системы - это числа и переменные. Переменным, вводимым пользователем, в Mathematica следует выбирать имена, состоящие букв и цифр и начинающиеся строчной буквой. Имена, начинающиеся с прописных букв, соответствуют встроенным объектам Mathematica и использовать их без особой необходимости не следует. Строчные и прописные буквы в именах различаются, отличаются друг от друга и буквы различных начертаний (например, Script от Gotic).
Mathematica имеет дело с четырьмя типами переменных и чисел:
1. Integer - целое число произвольной длины
2. Rational - рациональное число, представимое как отношение целых чисел
3. Real - действительное число с любым числом десятичных знаков
4. Complex - комплексное число, записываемое в форме число+число*I, где I= - мнимая единица
Тип числа определяется по его написанию (наличие или отсутствие десятичной точки, знака деления, мнимой единицы). Например, можно определить переменные, присвоив им значения чисел различного типа:
I
Узнать значение каждой переменной можно, напечатав соответствующее имя:
Удалить значение, присвоенное данной переменной, можно следующим образом:
После этого x выступает уже как символическая переменная.
Арифметические операции изображаются обычным образом: "+", "-", "*", и "/". Вместо знака умножения (звездочка "*") может использоваться пробел, возведение в степень обозначается как a^n.
Mathematica имеет ряд зарезервированных обозначений для математических констант:
I=J - мнимая единица,
Infinity = ∞ - бесконечность
Pi=π - число пи
Degree = º - число градусов в радиане
GoldenRatio - золотое сечение
E=e основание натуральных логарифмов
EulerGamma - константа Эйлера
Catalan - константа Каталана
Mathematica позволяет переходить от одного типа чисел к другому. Так, с помощью команды
можно найти действительное представление рационального числа (с необходимым числом десятичных цифр - в данном примере с 30-ю). Обратная операция - нахождение рационального приближения к действительному числу осуществляется командой
где последний аргумент определяет точность представления.
Выяснить, имеется ли некоторое имя в системе можно, напечатав его после знака вопроса, например:
Более подробная информация, включающая атрибуты данного имени, выводится после двух знаков вопроса:
В случае, если имя еще не определено, выдается следующая информация:
Функции
Основным в математическом анализе является понятие функции. Mathematica содержит в своем составе все элементарные функции, например Sqrt[x], Exp[x], Log[x] (натуральный логарифм), Log[b,x] (логарифм по основанию b), Sin[x], Cos[x], Tan[x], ArcSin[x], ArcCos[x], ArcTan[x], и достаточно богатый набор специальных функций, среди которых
LegendreP[n,x] - полиномы Лежандра
HermiteH[n,x] - полиномы Эрмита
BesselJ[n,z], BasselY[n,z] - функции Бесселя
Gamma[z] - гамма-функция Эйлера
Полный список элементарных и специальных функций можно найти в разделе помощи Built-in Functions → Mathematical Functions. Отметим, что аргументы функции перечисляются в квадратных скобках через запятую и не допускается никакого произвола в написании имени функции.
В качестве примера можно найти аналитический вид полинома Эрмита пятого порядка:
Пользователь может определить свои функции по правилу
здесь следует обратить внимание на знак подчеркивания после аргументов функции и особый знак соответствия. Действующее определение функции в любой момент можно вспомнить с помощью команды
Отменить данное определение можно командой
после которой обозначение f можно использовать для других целей, проверка это подтверждает:
В случае необходимости можно дать разрывное определение функции, например
При желании посмотреть на график этой функции можно с помощью команды
Списки
Списком (List) называется упорядоченная последовательность некоторых элементов. Список заключается в фигурные скобки, его элементы разделяются запятыми:
Допускается использование вложенных списков
Выделить любой элемент из списка можно следующим образом:
Списки естественно использовать для представления различных векторов, матриц и т.д. Увидеть список в матричной форме можно с помощью команды
Mathematica располагает рядом команд для построения списков. Так, команда Table[f,{i,m},{j,n}] строит список значений функции f[i,j] вычисленных для i=1, …, m и j=1, …, n:
В виде списков можно представлять такие важные для физики объекты, как векторы. Определим, для примера, два трехмерных вектора
Для них определены основные операции векторной алгебры: умножение на число (скаляр)
скалярное умножение
и векторное умножение (знак векторного умножения находится на палитре Basic Input в третьей колонке)
Матрицы представляются двумерными списками, например
Используя команду MatrixForm, можно увидеть их в привычном виде:
Умножение матриц определяется по каноническому правилу - строка на столбец:
Выражения
Важнейшим понятием Mathematica является выражение (expression). Выражение может быть записано в форме h[e1,e2, …], где h называется заголовком (head), а e1,e2, … - элементами выражения. И заголовок, и элементы сами могут быть выражениями. Выражение есть главный тип данных в Mathematica: все, что вводится (формулы, списки, графики) Mathematica рассматривает как выражения и преобразует в стандартное внутреннее представление. Его можно увидеть с помощью команды FullForm[expr]:
Заголовок выражения может быть определен с помощью команды Head:
Важнейшей задачей любой системы аналитических вычислений является преобразование (и упрощение) различных выражений и, в частности, полиномов.
Mathematica располагает мощным аппаратом для работы с полиномами одной или нескольких переменных: складывать, вычитать, умножать, делить и возводить в степень.
Определим для дальнейшей работы следующие полиномы:
можно их сложить
Записав отношение двух полиномов переменной x в виде
можно с помощью следующей команды сократить общий множитель в числителе и знаменателе данного выражения
Результат возведения полинома в целую степень Mathematica записывает в факторизованной форме
представить его в виде суммы степеней переменной x можно с помощью команды
Команда Expand[poly] разлагает полином на сумму произведений и степеней
а команда Factor[poly] - полностью его факторизует, т.е. представляет его в виде произведения максимально простых сомножителей:
Команда FactorTerms не осуществляет полной факторизации полинома, а ограничивается выделением общего множителя из всех членов
Для упорядочения членов полинома как суммы степеней какой-либо переменной используется команда
Для определения структуры полинома и работы с отдельными его частями Mathematica располагает рядом команд. Так, проверить, является ли данное выражение
полиномом по определенным переменным можно следующими командами
а определить переменные полинома и число членов в нем - с помощью команд
Максимальная степень при переменной в полиноме может быть определена командой
а команда Coefficient[poly,x,n] определяет коэффициент перед n-й степенью переменной x в полиноме poly:
Mathematica позволяет выполнять ряд операций с рациональными выражениями. Так, определив рациональное выражение t в виде суммы полинома и двух отношений полиномов
можно выполнить разложение числителей во всех членах
или представить результат такого разложения в виде дробей, где каждый член в числителе поделен на соответствующий знаменатель
Следующая команда выполняет аналогичное разложение знаменателя
а ExpandAll разлагает числитель и знаменатель одновременно, деля каждый член числителя на соответствующий знаменатель:
Определим теперь другое рациональное выражение
Mathematica одной командой может привести его к общему знаменателю
или представить в виде суммы членов, каждый из которых имеет максимально простой знаменатель:
Команда Cancel сокращает общий множитель в числителе и знаменателе:
Cancel[u]
Mathematica с помощью команды Simplify[expr,assume] позволяет путем последовательных алгебраических преобразований приводить выражение к простейшему виду, например:
Параметр assume, определяющий условия, налагаемые на переменные, может отсутствовать.
Для упрощения выражений, содержащих элементарные (в том числе и тригонометрические) и специальные функции, используется команда FullSimplify[expr,assume]
Mathematica может использоваться для различных преобразований формул, в частности, для замены переменных и подстановок. Пусть имеется полином от переменной x:
с помощью замены (/.->) можно преобразовать его к виду аналогичного полинома переменной y:
В свою очередь, вместо переменной y можно подставить дробь
и привести полученную сумму к общему знаменателю (знак "%" означает ссылку на предыдущий результат)
Mathematica знает и умеет применять простейшие тригонометрические тождества, например:
Индивидуальные задания:
1. Преобразовать рациональное число в действительное, выполнить обратное преобразование:
№ | Задание | № | Задание | № | Задание | № | Задание |
2. Задать функцию, построить ее график, вывести информацию о функции, очистить функцию:
№ | Задание | № | Задание |
3. Вычислить векторное и скалярное произведение векторов а и b, вычислить вектор с=№варианта*a:
№ | Вектор а | Вектор b | № | Вектор а | Вектор b |
a=[0.5 3.7 6.0] | b=[3.6 7.0 7.1] | a=[6.6 -5.0 -2.7] | b=[7.1 4.2 1.3] | ||
a=[-4.8 -1.3 -1.0] | b=[-1.1 -1.9 7.1] | a=[-1.9 0.4 1.8] | b=[1.2 -1.2 3.4] | ||
a=[1.0 -3.9 -2.3] | b=[3.5 6.1 -2.8] | a=[-4.0 -2.3 -4.4] | b=[7.1 5.4 2.6] | ||
a=[-2.4 3.3 -0.1] | b=[7.1 1.1 3.5] | a=[4.0 5.8.4.3] | b=[4.8 -5.2 7.4] | ||
a=[8.4 -5.9 -6.5] | b=[1.1 1.2 -6.3] | a=[3.8 1.9 1.1] | b=[-8.1 5.5 -6.2] | ||
a=[5.3 6.8 -7.1] | b=[-4.5 -3.3 9.0] | a=[-7.1 6.8 -4.0] | b=[5.1 0.9 -4.0] | ||
a=[1.2 -4.1 -0.8] | b=[3.1 4.8 -5.2] | a=[0.4 1.8 4.2] | b=[1.9 -4.4 9.2] |
4. Задать матрицу с помощью вложенных списков и вывести ее в матричной форме:
№ | Задание | № | Задание |
5. Разложить на множители выражения:
№ | Задание | № | Задание |
6. Упростить выражение:
№ | Задание | № | Задание |
7. Раскрыть скобки и привести подобные в выражении:
№ | Задание | № | Задание |
1. | 8. | ||
2. | 9. | ||
3. | 10. | ||
4. | 11. | ||
5. | 12. | ||
6. | 13. | ||
7. | 14. |
8. Определите функцию f(x), вычислить её значение при x=2,9:
№ | Задание | № | Задание | № | Задание | № | Задание |
Лабораторная работа №3. «Дифференциальное и интегральное исчисление»
Вычисление производных
Частные производные можно вычислять, используя команду D[…] или шаблон . Ее аргументы могут выглядеть по-разному. Простейший вариант - указать функцию и переменную, по которой надо дифференцировать:
Производные порядка выше первого вычисляются командой, в которой переменная и порядок дифференцирования по ней указываются в фигурных скобках и разделяются запятыми:
Если надо вычислить смешанную производную по нескольким аргументам, то их надо перечислить через запятую с указанием порядка (первый порядок можно не указывать):
Производные можно вычислять и по отношению к некоторому выражению, например:
С помощью опции NonConstants→{} можно указать список объектов, которые должны считаться неявными функциями переменной, по которой осуществляется дифференцирование:
Полный дифференциал функции одного или нескольких аргументов вычисляется командой Dt[f]
В Out-ячейке Dt[x] и Dt[y] следует понимать как дифференциалы независимых переменных dx и dy.