Как пользоваться wolfram mathematica

Foodband

Введение в Wolfram Mathematica

На хабре уже не раз упоминалась Mathematica и если вам хочется начать работать с ней, то эта статья для вас. Я расскажу об основных аспектах работы с нею и покажу несколько интересных нововведений из последних версий Wolfram Mathematica.

Wolfram Mathematica — это программное обеспечение, не только для математических вычислений, это гораздо больше: от моделирования и симуляции, визуализации, документации, до создания веб-сайтов. Mathematica обладает возможностью осуществлять вызовы функций и принимать вызовы с C, .NET, Java и других языков, генерировать C код, компилировать автономные библиотеки и исполняемые файлы.
Обо всех достоинствах Mathematica можно почитать на официальном сайте

Для начала работы с Mathematica вам необходимо её получить и установить на свой компьютер. Mathematica прекрасно работает на Windows, Mac, Linux.
Скачать и бесплатно попробовать Mathematica так же можно на оф. сайте.
Если же вы надумаете её купить, то цены на неё вполне приемлемые. Например для студента за семестровый вариант она обойдётся в $44.95. Для домашнего использования в $295. Если вы планируете использовать её для коммерческих целей, то наилучший вариант лицензии это Standard Edition (Вы получаете подписку на Premier Service и бесплатные обновления).

Изучение

Самая лучшая книга по Mathematica — это встроенный Help. Имеет огромную кучу туториалов и советов. Огромное множество примеров. Всё что вам может понадобится находится там. Это первое место где нужно искать нужную информацию. Однако, если вам нужно больше, в интернете огромное множество сообществ посвещённых Mathematica. (Например: mathematica.stackexchange.com).

Блокноты и Ячейки
  • Ячейки ввода – в них задаются команды, которые будут вычислены
  • Ячейки результата – в них выводится результат вычислений
  • Другие ячейки – ячейки с текстом, заголовки и все остальное

Нумерация ячеек идёт в том порядке в котором вы их запустили. Для того что-бы вычислить значение ячейки нажмите SHIFT+ENTER или правый ENTER, либо Evaluation -> Evaluate Cells.

Для того что-бы обратиться к значению последней вычисленной ячейке используйте знак %.

Бесконечная точность

Одной из замечательных особенностью Mathematica является концепция бесконечной точности. Если результатом вычислений является корень из двух, то она так и напишет.

Вы можете попросить округлить ответ так:

Или же добавить дробную часть (или просто точку) к числам в выражении:

Ввод формул

В Mathematica реализован удобный ввод формул. Но для начала вам могут пригодится палитры (На картинке справа находится Palettes -> Basic Math Assistant).

У каждой кнопочки на палитре, есть свой горячие клавиши. Например, что бы написать знак интеграла нужно нажать Esc int Esc.

Вот список наиболее часто используемых горячих клавиш:

  • CTRL+2 – Шаблон квадратного корня
  • CTRL+6 – Верхний индекс
  • CTRL+7 – Надстрочный символ
  • CTRL+- – Нижний индекс
  • CTRL+= – Подстрочный символ
  • CTRL+/ – Дробь
  • CTRL+2, затем CTRL+5 – Корень любой степени
  • ALT+ENTER – Создает новую ячейку
  • SHIFT+CTRL+D – Разбивает текущую ячейку
  • SHIFT+CTRL+M – Склеивает несколько ячеек
Выражения, Списки, Функции

Все что записано внутри ячеек является выражениями. Каждое выражение состоит из головы и списка. Например в выражение Power[2, 2]. В нём головой является Power, а списком 2, 2.
Даже 2+2 является выражением. Чтобы посмотреть как Mathematica интерпретирует ввод, есть функция FullForm:

Функция Hold просит математику не вычислять выражение. Обратной функция является Evaluate.

Списки в Mathematica создаются при помощи фигурных скобок: <. >, что является сокращением от List[. ].

Для манипуляции со списками в Mathematica есть огромная куча функций. Всё что вам может когда-нибудь понадобиться уже есть там. Вам остаётся только найти нужную функцию.

Для того чтобы получить элемент списка есть функция Part, c сокращённым вариантом в виде двойных квадратных скобок [[. ]] либо с толстыми скобками (Esc [[ Esc).

Поскольку всё является выражениями (и списки тоже), мы может получить голову выражения таким вот способом:

Таким образом индекс первого элемента в списке это 1.

Так же есть возможность заменить голову любого выражения. Это делает функция Apply[head, expression]. Либо её сокращённый вариант @@.

В Mathematica есть несколько способов применить функции(головы) к выражениям. Это обычные квадратные скобки: f[x], префикс: f@x, постфикс: x // f

А так же инфикс: из x

Однострочное программирование

В Mathematica есть множество функций для обычного программирования, такие как For, If, Switch. Однако, их лучше не использовать без крайней необходимости. Так как практически всё тоже самое можно сделать в одну строчку при помощи специальных функций и их комбинированием (поначалу бывает сложно перестроиться на такой стиль программирования).

Вот хорошее видео демонстрирующее как работают некоторые из функций:

Динамические интерактивные вычисления

Одной из замечательнейших возможностью Mathematica, являются динамические вычисления. Они позволяют манипулировать данными и смотреть на то как динамически меняется результат.

Для динамических вычислений используются функции Dynamic, Manipulate и др.

Foodband

Заключение

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

Синтаксис Wolfram Alpha

Wolfram|Alpha&#160;— база знаний и набор вычислительных алгоритмов (англ. computational knowledge engine ), вопросно-ответная система. Запущена 15 мая 2009 года. Не является поисковой системой.

Содержание

Основные операции [ править ]

  • Сложение&#160; a + b <\displaystyle a+b>:&#160;a+b
  • Вычитание&#160; a &#x2212; b <\displaystyle a-b>:&#160;a-b
  • Умножение&#160; a &#x22C5; b <\displaystyle a\cdot b>:&#160;a*b
  • Деление&#160;&#160;&#160; a b <\displaystyle <\frac >> :&#160;a/b
  • Возведение в степень&#160; a b <\displaystyle <^>> :&#160;a^b
  • 314+278; 314—278; 314*278; 314^278;
  • (a^2+b^2)+(a^2-b^2); (a^2+b^2)/(a^2-b^2); (a+b)^(2+2/3).

Знаки сравнения [ править ]

Логические символы [ править ]

  • Конъюнкция "И" &#x2227; <\displaystyle \wedge >: &&
  • Дизъюнкция "ИЛИ" &#x2228; <\displaystyle \vee >: ||
  • Отрицание "НЕ" &#x00AC; <\displaystyle \neg >:&#160;!
  • Импликация =>

Основные константы [ править ]

Основные функции [ править ]

Решение уравнений [ править ]

  • Solve [Cos[x]+Cos[2x]+Sin[4x]=0,x]или Cos[x]+Cos[2x]+Sin[4x]=0;
  • Solve[x^5+x^4+x+1=0,x] или x^5+x^4+x+1=0;
  • Solve[Log[3,x²+x+1]-Log[9,x²]=0,x] или \Log[3,x²+x+1]-Log[9,x²]=0.
  • Cos[x+y]=0 или Solve[Cos[x+y]=0,x] или Solve[Cos[x+y]=0,y];
  • x²+y²-5=0 или Solve[x²+y²-5=0,x] или Solve[x²+y²-5=0,y];
  • x+y+z+t+p+q=9.

Решение неравенств [ править ]

  • Cos[10x]-1/2>0 или Solve[Cos[10x]-1/2>0,x];
  • x^2+5x+10>=0 или Solve[x^2+5x+10>=0,x].

Если Ваше неравенство содержит несколько переменных, то запись: f[x, y,…,z]>0 или f[x, y,…,z]>=0 даст весьма разнообразный набор сведений, как и в случае соответствующих уравнений. Чтобы получить решение такого неравенства по какой-либо одной из переменных нужно написать в строке: Solve[f[x, y,…,z]>0,j] или Solve[f[x, y,…,z]>=0,j], где j <\displaystyle j>— интересующая Вас переменная.

  • Cos[x+y]>0 или Solve[Cos[x+y]>0,x] или Solve[Cos[x+y]>0,y];
  • x^2+y^3-5<0 или Solve[x^2+y^3-5<0,x] или Solve[x^2+y^3-5<0,y];
  • x+y+z+t+p+q>=9.

Решение различных систем неравенств и уравнений [ править ]

Решение систем различного вида в Wolfram Alpha крайне просто. Достаточно набрать уравнения и неравенства Вашей системы, точно так, как это описано выше в пунктах 7. и 8., соединяя их союзом «И», который в Wolfram Alpha имеет вид &&.

  • x^3+y^3==9&&x+y=1;
  • x+y+z+p==1&&x+y-2z+3p=2&&x+y-p=-3;
  • Sin[x+y]+Cos[x+y]==Sqrt[3]/4&&x+y²=1;
  • Log[x+5]=0&&x+y+z<1.

Построение графиков функций [ править ]

  • Plot[x^2+x+2, ];
  • Plot[x^2+x+2, ,];
  • Plot[Sin[x]^x, ];
  • Plot[Sin[x]^x, ,].

Если Вам требуется построить сразу несколько графиков на одном рисунке, то перечислите их, используя союз «И»:Plot[f[x]&&g[x]&&h[x]&&…&&t[x],].

  • Plot[x&&x^2&&x^3, ,];
  • Plot[Sin[x]&&Sin[5x]&&Sin[10x]&&Sin[15x], ].
  • Plot[Sin[x^2+y^2],,];
  • Plot[xy,,].

Математический анализ [ править ]

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

Пределы [ править ]

  • Limit[n^3/(n^4 + 2*n), n -> Infinity];
  • Limit[(1+1/n)^n, n -> Infinity].
  • Limit[Sin[x]/x, x -> 0];
  • Limit[(1-x)/(1+x), x -> −1].

Производные [ править ]

Важно подчеркнуть, что Wolfram Alpha выдает пошаговое нахождение производной при нажатии на «Show Steps» в правом верхнем углу выдаваемого ей ответа.

  • D[x*E^x, x];
  • D[x^3*E^x, ];
  • D[x^3*y^2*Sin[x+y], x];
  • D[x^3*y^2*Sin[x+y], y],
  • D[x/(x+y^4), ].

Интегралы [ править ]

Важно подчеркнуть, что Wolfram Alpha выдает пошаговое нахождение интеграла при нажатии на «Show Steps» в правом верхнем углу выдаваемого ей ответа.

  • Integrate[Sin[x]/x², x].
  • Integrate[x^10*ArcSin[x], x].
  • Integrate[(x+Sin[x])/x, ].
  • Integrate[Log[x^3+1]/x^5, ].

Дифференциальные уравнения и их системы [ править ]

Если Вам требуется решить задачу Коши, то впишите: F[x, y, y’,y»,…], y[s]==A,y'[s]==B, …. Если нужно получить решение краевой задачи, что краевые условия, так же перечисляются через запятую, причем они должны иметь вид y[s]==S.

Решение систем дифференциальных уравнений также просто, достаточно вписать: , где f_1, f_2, …, f_n — дифференциальные уравнения, входящие в систему. К сожалению, решение задач Коши и краевых задач для систем дифференциальных уравнений пока что не поддерживается.

Первое знакомство с Mathematica

Если после выражения вы введёте знак точки с запятой " ; ", Mathematica вычислит значение выражения, но не выведет его на экран в ячейке Out. Это оказывается полезным, если результат является промежуточным в расчётах, и нет необходимости его видеть. В примере на рис. 1.8 мы задаём последовательность из 100 натуральных чисел, но не выводим её на экран, а затем находим сумму всех чисел последовательности.

Использование символа

Выражению не обязательно следует вмещаться в одну строчку: его можно "растянуть" на несколько строк, при этом Mathematica сама будет расценивать эти несколько строчек как единое целое (П. Веллин и др. [14, с. 22]). Однако для этого необходимо, чтобы выражение было заключено в скобки (пример In[1] на рис. 1.9), либо чтобы последним на строке оставался оператор действия, а каждая новая строчка начиналась с числа или переменной (пример In[2] ). Если строка будет начинаться с оператора, то строки будут рассмотрены как содержащие разные выражения (пример In[3] ).

Если в примере In[1] на рис. 1.9 мы воссоединили выражение искусственно, при помощи предназначенных для группировки круглых скобок, то в примере In[4] растянутое на несколько строчек выражение было обособлено квадратными скобками, использующимися изначально при задании функции логарифма Log .

Запись одного выражения в несколько строк

Зачастую средствами Mathematica приходится выполнять достаточно громоздкие вычисления, и если программа при этом выполняет свои функции без проблем, то у пользователя может возникнуть некоторый дискомфорт из-за обилия введённых данных на экране. Для разрешения этой ситуации в Mathematica предусмотрена возможность оставлять комментарии к тексту программы. Делается это обособлением комментариев сочетанием символов ( * и * ) — см. In[1] рис. 1.10.

Комментарий может также играть роль пробела. Так выражение x(**)y приведёт к перемножению x и y — пример In[4] рис. 1.10.

Ввод комментариев в Mathematica

В примере In[1] на рис. 1.10. мы также познакомились с новой командой " % ". Её ввод автоматически означает ссылку на предыдущее вычисленное выражение .

К слову, в Mathematica имеется обширная справочная документация, для пользования которой есть множество способов (П. Веллин и др. [14, с. 26–27]). Например, если нам в точности известно имя той или иной функции, например, function , но мы не знаем, для чего она используется, или просто хотим уточнить её синтаксис , следует в окно редактирования ввести ?function и запустить вычисления (нажав Shift+Enter ). Если же мы доподлинно знаем лишь фрагмент имени функции, например, func , то, введя ?func , мы получим на экране подсказку, содержащую имена всех функций, начинающихся на func . Если нажать на символ ", откроется окно Help-браузера, в котором дана более детальная информация о функции. На рис. 1.11 показан пример получения справки о функции Integrate и функциям начинающимся на Plo .

Получение справки о функциях

Ещё один способ получить справку о функции — щелкнуть на ней курсором и нажать на клавиатуре клавишу F1 . Это приведёт вас непосредственно к статье об этой функции в Help-браузере.

1.4. Ядро и интерфейсный процессор — базовые компоненты Mathematica

Теперь мы знаем достаточно для того, чтобы осуществлять простейшие вычисления в Mathematica, то есть, выражаясь языком сотрудников отдела кадров, мы стали пользователями начального уровня. Однако для большей полноты наших знаний о программе скажем несколько слов о "двуличии" Mathematica и узнаем, с чем мы имеем дело при работе за компьютером, и что на самом деле производит вычисления (П. Веллин и др. [14, с. 24]).

Когда мы работаем в Mathematica, на самом деле мы имеем дело с двумя разными программами — интерфейсным процессором (the front end ) и ядром (the kernel ). Интерфейсный процессор — это и есть пользовательский интерфейс , включающий в себя окно редактирования, в которое мы вводим данные, строку меню , палитру инструментов, упрощающих ввод данных. Ядро программы непосредственно выполняет вычисления. Таким образом, типичный процесс взаимодействия пользователя с Mathematica состоит из следующих шагов ( компонент Mathematica, отвечающий за выполнение каждого шага дан в скобках) (П. Веллин и др. [14, с. 24]):

  • ввод данных в окно редактирования (интерфейсный процессор с подачи пользователя);
  • отправка введённых данных в ядро для выполнения вычислений (интерфейсный процессор);
  • выполнение вычислений и отправка обратно в интерфейсный процессор (ядро);
  • вывод результатов на экран в окно редактирования (интерфейсный процессор).

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

Хотя интерфейсный процессор и ядро работают независимо друг от друга, так или иначе они должны обмениваться друг с другом данными. Для выполнения этой задачи существует специальный протокол — MathLink . Он также позволяет интерфейсному процессору взаимодействовать с другими программами помимо ядра, такими, как Fortran, C и др.

Хотя, обычно ядро работает стабильно, но порой во время работы программы возникает ситуация, когда Mathematica "начинает себя плохо вести" — долгое время не выдаёт результатов вычислений (например, если на входе была поставлена слишком сложная задача), зависает. В этом случае можно не ждать реакции компьютера и самостоятельно прервать вычисления. Способ, который предлагает П. Веллин и др. [14, с. 19], зависит от операционной системы компьютера. Для Macintosh — это комбинация клавиш Command key+точка , а затем буква A , для Windows — " Alt+точка ", для Unix — " Ctrl+точка ", а затем буква A .

Иногда эта попытка остановить вычисления оказывается неудачной. Если остановки вычислений не произошло в течение нескольких минут, Mathematica кажется зависшей, следует выполнить действие " kill the kernel ". Для этого нужно выбрать подпункт Quit Kernel->local в пункте меню Evaluation . Для перезапуска ядра без перезапуска интерфейсного процессора необходимо выбрать в том же пункте команду Start Kernel local , либо просто известным способом заставить Mathematica произвести вычисления: ядро при этом запустится самостоятельно.

Ключевые термины

Интерфейсный процессор ( front — end processor ) — компонент пакета Mathematica, управляющий взаимодействием с периферийными устройствами.

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

Операнд — выражение , содержащее и данные, и операторы .

Оператор — элемент записи математических выражений, указывающий на то, какие действия производятся над символьными или числовыми данными.

Палитра — дополнительная панель с кнопками быстрого управления.

Ядро ( kernel ) — компонент пакета Mathematica, непосредственно выполняющий вычисления.

Под ячейкой понимается связная часть рабочего поля, содержащая задачу, ответ, текст или другое.

Краткие итоги

В данной лекции мы впервые познакомились с системой компьютерной алгебры Mathematica, узнали о её возможностях при выполнении численных и символьных расчётов, визуализации результатов вычислений и использовании в качестве языка программирования. Мы познакомились с интерфейсом программы: с каждым пунктом главного меню , окном ввода и палитрами. Мы узнали основные принципы ввода данных, научились выполнять простейшие вычисления, познакомились с назначением каждого из четырёх видов скобок. Также мы научились пользоваться встроенной справочной документацией и узнали о "двуличии" пакета Mathematica — о двух его базовых компонентах — ядре и интерфейсном процессоре.

Вопросы

  1. Каковы основные возможности пакета Mathematica как системы компьютерной алгебры и языка программирования?
  2. Перечислите и по возможности опишите основные элементы интерфейса программы Mathematica.
  3. Для каких задач предназначен пункт главного меню File; Edit; Insert; Format; Cell; Graphics; Evaluations; Palettes; Window; Help ?
  4. Что понимают под ячейкой в окне ввода? Каким образом ячейки обозначаются на экране?
  5. Что такое палитры, и для каких целей они предназначены?
  6. Каким образом в Mathematica задаются простейшие математические операции?
  7. Поясните вопрос о порядке выполнения операций при работе Mathematica со сложными выражениями.
  8. Какие виды скобок используются в Mathematica? Для каких целей?
  9. Для каких целей в Mathematica применяется знак " ; "?
  10. Поясните вопрос о записи выражений на нескольких строках.
  11. Что такое интерфейсный процессор и ядро пакета Mathematica? Какие функции они выполняют?
  12. Как пользователю следует себя вести, если Mathematica перестаёт реагировать на "внешние раздражители", "зависает"?

Упражнения

  1. Выведите на экран значение числа \piс точностью до 5 значащих цифр; до 15 значащих цифр. Найдите разность между первым и вторым выражениями.
  2. Запишите выражение 2*3/2-52, пользуясь различными способами ввода арифметических операторов, вычислите результат выражения.
  3. Вычислите натуральный логарифм трёх произвольных чисел от 0 до 10 , найдите их сумму, произведение.
  4. Найдите числа, комплексно-сопряжённые числам 5i, 3-2i, log(5)+7i.
  5. Запишите в столбик первые 10 букв латинского алфавита, при помощи символа " ; " выведите в выходную ячейку каждую вторую букв; каждую третью букву; только гласные.
  6. "Растяните" несколькими способами выражение 1-2*3+4*5-6+7на три строчки, вычислите результат выражения.
  7. Получите разными способами справку по функциям Plot3D, Integrate, Simplify .
  8. "Зациклите" программу, задав вычисление выражения For[i=0,i<5,] , прервите вычисления известными вам способами.

Foodband

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *