Wolfram mathematica как запустить вычисление
Перейти к содержимому

Wolfram mathematica как запустить вычисление

  • автор:

Введение в 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 и др.

Заключение

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

Wolfram mathematica как запустить вычисление

Mathematica (далее М.) является системой символьной математики. Такие
системы позволяют пользователю, набрав несколько команд, подключиться к
готовым программам самой системы и провести необходимые вычисления.
После запуска М. или открытия уже существующего файла набирают нужный текст или математическую команду. М. воспринимает то, что набрано, как Input.
Обработка Input выполняется при нажатии клавиш: Shift+Enter. М. помечает Input
меткой In[n]: и результат обработки выводит в Output, помечая его Out[n]. Текст и команды находятся в ячейках, которые М. объединяет в группы.

Каждая ячейка (cell) имеет свой стиль. Границы групп и стиль ячеек показываются М. справа рабочего окна в виде квадратных скобок. Можно выбирать стиль ячейки, используя команду Format. По умолчанию, автоматически открываемая ячейка, имеет стиль Input (Input style), который
позволяет проводить математические вычисления. Если есть необходимость
открыть новую ячейку, двигают курсор вниз ячейки, пока не появится
горизонтальная линия. Если после этого нажать клавишу Enter – вы окажетесь в
новой ячейке.

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

Пример 1.

Обыкновенное присваивание.
Вычисления в Mathematica с примерами решения
Пример 2.

Задержанное присваивание.
Вычисления в Mathematica с примерами решения
Замечание. Во втором случае значения a и b хранятся в оперативной памяти и не выводятся в Output. Интерфейс в М. достаточно приятен. Можно активно использовать Help. Например, копировать там шаблоны стандартных функций и переносить их в свой документ. При этом Copy, Cut, Paste такие же как и в MS Word. Более подробно среда М. описана, например, в [7].

Рассмотрим функции М., позволяющие построить графики Plot, PolarPlot,
ParametricPlot, Plot3D. Синтаксис любой такой функции примерно одинаков.
Например для команды Plot:
Вычисления в Mathematica с примерами решения
график функции f[x] независимой переменной х в диапазоне от Вычисления в Mathematica с примерами решения
Вычисления в Mathematica с примерами решения Вычисления в Mathematica с примерами решения
аналогично (1) – графики функций Вычисления в Mathematica с примерами решения
Вычисления в Mathematica с примерами решения
график функции f(х) на промежутке от Вычисления в Mathematica с примерами решенияисключая точки Вычисления в Mathematica с примерами решения

Пример 1.

Построим график функции Вычисления в Mathematica с примерами решенияИспользуем команду: Вычисления в Mathematica с примерами решения
Вычисления в Mathematica с примерами решения
При построении графика в примере 1 М. использовала по умолчанию опции, касающиеся стиля графика и вида осей координат. Пользователь может изменять эти опции, задавая их в команде Plot. Например, для команды (1):
Вычисления в Mathematica с примерами решения
Рассмотрим некоторые опции.
1. Вычисления в Mathematica с примерами решения— метки горизонтальной и вертикальной осей координат.

Пример 2.

Для построения графика функции [Вычисления в Mathematica с примерами решенияиспользуем команду:
Вычисления в Mathematica с примерами решения

Вычисления в Mathematica с примерами решения
2. AspectRatio число → ; число задает отношение у – протяженности
графика к х – протяженности.
AspectRatio Automatic → — масштаб на обеих осях одинаков.

Пример 3.

Команда:
Вычисления в Mathematica с примерами решения

Вычисления в Mathematica с примерами решения

Результат:
3. PlotStyle опции → — определяют стиль рисования.

Пример 4.

Вычисления в Mathematica с примерами решения
Результат:
Вычисления в Mathematica с примерами решения
Пример 5.

Команда:
Вычисления в Mathematica с примерами решения
Результат:
Вычисления в Mathematica с примерами решения
4. Вычисления в Mathematica с примерами решения— метки на осях Оx и Оy .

Пример 6.

Вычисления в Mathematica с примерами решения
Результат:
Вычисления в Mathematica с примерами решения
Список всех опций можно просмотреть командой Options[Plot] и использовать их по мере надобности. Например, при построении графика Вычисления в Mathematica с примерами решениянеобходимо исключить точку разрыва x = 0. Это делается опцией Exclusion.

Пример 7.

Команды:
Вычисления в Mathematica с примерами решения
Результат:

Вычисления в Mathematica с примерами решения

Рассмотрим еще несколько примеров с командами , PolarPlot, ParametricPlot, Plot3D.
Синтаксис команды ParametricPlot:
Вычисления в Mathematica с примерами решения— график параметрически заданной функции Вычисления в Mathematica с примерами решенияпараметра при изменении t в диапазоне от t min до t max .

Пример 8.

Построим график эллипса:
Вычисления в Mathematica с примерами решения
Команды:
=
ParametricPlot[, ,Ticks→ >,PlotStyle→ ]

Вычисления в Mathematica с примерами решения
Синтаксис команды Plot3D:
Вычисления в Mathematica с примерами решения— график поверхности Вычисления в Mathematica с примерами решенияпри изменении х в диапазоне от х min до х max , у в
диапазоне от у min до у max .

Пример 9.

Построим график параболоида: Вычисления в Mathematica с примерами решенияпри ограничениях на х и у: Вычисления в Mathematica с примерами решения
Команда:
=
Plot3D[(x^2)/(a^2)+(y^2)/(b^2), , ,Axes→True,Ticks→ , >,AxesLabel→ ,RegionFunction→Function[ ,(x^2)/(a^2)+(y^2)/(b^2)≤10],PlotStyle→Directive[Yellow,Specularity[White,20],Opacity[2.4]],Boxed→Fale]
Результат:
Вычисления в Mathematica с примерами решения
При этом пояснения соответствующих опций можно легко найти в Help.
Синтаксис команды PolarPlot:
Вычисления в Mathematica с примерами решения— график кривой r=r[ϕ] в обобщенных полярных координатах при изменении ϕ в диапазоне от ϕmin до ϕmax .

Пример 10.

Построим график Вычисления в Mathematica с примерами решения
Команда:

Вычисления в Mathematica с примерами решения
Результат:

Вычисления в Mathematica с примерами решения

При копировании любых материалов с сайта evkova.org обязательна активная ссылка на сайт www.evkova.org

Сайт создан коллективом преподавателей на некоммерческой основе для дополнительного образования молодежи

Сайт пишется, поддерживается и управляется коллективом преподавателей

Telegram и логотип telegram являются товарными знаками корпорации Telegram FZ-LLC.

Cайт носит информационный характер и ни при каких условиях не является публичной офертой, которая определяется положениями статьи 437 Гражданского кодекса РФ. Анна Евкова не оказывает никаких услуг.

Использование Wolfram Mathematica в решении дифференциальных уравнений

В статье рассматриваются примеры решения обыкновенных дифференциальных уравнений в системе Wolfram Mathematica.

Ключевые слова

Текст научной работы

Системы компьютерной математики (Maple, Mathematica, MatLab, Derive и др.) применяются в различных областях науки. Они содержат процедуры для численных и аналитических расчетов, средства программирования, визуализации. В настоящее время пакеты прикладных программ используются не только при решении численных задач, но и при доказательстве теорем. Системы компьютерной математики используются в решении математических проблем в работах Д.С. Воронова, О.П. Гладуновой, Е.С. Корнева, М.В. Куркиной, Е.Д. Родионова, Я.В. Славолюбовой, В.В. Славского, Н.К. Смоленцева, Л.Н. Чибриковой и др.

Система компьютерной математики Wolfram Mathematica является одним из наиболее распространенных программных средств, которое позволяет выполнять численные, символьные вычисления, имеет развитую двумерную и трехмерную графику, а также встроенный язык программирования высокого уровня. Для знакомства с языком программирования Wolfram Language рекомендуется интернет-ресурс Wolfram Language & System «Documentation Center» (http://reference.wolfram.com/language/). Выбирая раздел, можно познакомиться с имеющимися командами для решения задач и с примерами их использования. Примеры использования Mathematica в решении геометрических задач приведены в [1-5].

Система Mathematica обладает обширными возможностями решения обыкновенных дифференциальных уравнений и их систем в символьном виде. Для этого используется функция DSolve, в алгоритме которой реализовано большинство известных на сегодняшний день аналитических методов.

Пример 1. Решим дифференциальное уравнение и построим график решений при различных значениях постоянной.

Пример 2. Решим уравнение y’=\frac

Попытаемся решить уравнение с помощью функции DSolve:

В данном случае функция DSolve не может решить нелинейное уравнение. Поэтому запишем уравнение в виде:

и будем интегрировать обе части уравнения:

Следовательно, общее решение уравнения примет вид

-(-2+y^2)\cos y+2y\sin y=x-10\ln (1-x)+13\ln(2-x)+C

Пример 3. Решим дифференциальное уравнение и построим поле направлений и график решения уравнения при различных значениях константы.

Построим таблицу решений, заменив С[1] на a, где a изменяется от -2 до 2 с шагом 0,5:

Отобразим два графика одновременно и покажем, что векторы поля направлений являются касательными к решениям дифференциального уравнения:

Система Wolfram Mathematica используется для решения дифференциальных уравнений не только в математике, но и актуальна в других научных областях. Ее можно применять и в механике, в частности, для решения различных постановок задач, где в качестве математических объектов используются дифференциальные уравнения. В работах [6,7] рассмотрены уравнения движения мембран и акустических сред в виде обыкновенных дифференциальных уравнений. Для их решения может быть использована система компьютерной математики Wolfram Mathematica.

Читайте также

  1. Зинина А.И.
  1. Зинина А.И.
  1. Зинина А.И.
  1. Зинина А.И.
  1. Зинина А.И.

Список литературы

  1. Букушева А.В. Использование Mathematica для описания геометрии динамических систем // Математика и ее приложения: фундаментальные проблемы науки и техники : сборник трудов всероссийской конференции, Барнаул, 24 — 26 ноября 2015. — Барнаул : Изд-во Алт. ун-та, 2015. С. 248-249.
  2. Букушева А.В. Применение Wolfram Language для выделения специальных классов почти контактных метрических структур // Компьютерные науки и информационные технологии : Материалы Междунар. науч. конф. — Саратов : Издат. центр.»Наука», 2016. С. 105-107.
  3. Букушева А.В. Использование систем компьютерной математики для решения геометрических задач сложного уровня // Информационные технологии в образовании: Материалы VI Всероссийской научно-практической конференции. – Саратов: ООО «Издательский центр «Наука»». 2014. – С. 76-77.
  4. Букушева А.В. Решение учебно-исследовательских задач с использованием систем компьютерной математики // Информационные технологии в образовании: Материалы VII Всеросс. научно-практ. конф. – Саратов: ООО «Издательский центр «Наука»», 2015. С.185-187.
  5. Букушева А.В. Учебно-исследовательские задачи в продуктивном обучении будущих бакалавров-математиков // Образовательные технологии. 2016. №2. С. 16-26.
  6. Вельмисова А.И. Распространение и отражение гармонических волн в плоском акустическом слое с гибкими стенками в случае разрыва упругих свойств на одной из стенок // Математика. Механика: Сб. науч. тр. Саратов: Изд-во Сарат. ун-та, 2010. Вып.12. С. 136-140.
  7. Вельмисова А.И., Вильде М.В., Кириллова И.В. Распространение и отражение гармонических волн в плоском акустическом слое с кусочно-неоднородными гибкими стенками // Известия Саратовского университета. Новая серия. Серия: Математика. Механика. Информатика. 2011. Т.11. №4. С. 68-73.

Цитировать

Зинина, А.И. Использование Wolfram Mathematica в решении дифференциальных уравнений / А.И. Зинина. — Текст : электронный // NovaInfo, 2016. — № 55. — С. 5-9. — URL: https://novainfo.ru/article/8754 (дата обращения: 13.06.2022).

Поделиться

Электронное периодическое издание зарегистрировано в Федеральной службе по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), свидетельство о регистрации СМИ — ЭЛ № ФС77-41429 от 23.07.2010 г.

Введение в Wolfram Mathematica

Введение в Wolfram Mathematica

2013-05-25 в 16:51, admin , рубрики: mathematica, Wolfram, математика, Программирование, метки: mathematica, Wolfram

Введение в Wolfram Mathematica

Введение

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

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

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

Все версии Mathematica абсолютно одинаковые, и отличаются только лицензированием. Все что вы можете делать в Enterprise версии, вы можете делать и в Student.

Изучение

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

Блокноты и Ячейки

Все вычисления в Mathematica находятся в блокнотах. И имеют расширение .nb. В блокнотах находятся как и код, так и результаты вычислений. Блокноты разбиты на ячейки различного типа:

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

Введение в Wolfram Mathematica

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

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

Введение в Wolfram Mathematica

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

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

Введение в Wolfram Mathematica

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

Введение в Wolfram Mathematica

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

Введение в Wolfram Mathematica

Введение в Wolfram 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:

Введение в Wolfram Mathematica

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

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

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

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

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

Введение в Wolfram Mathematica

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

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

Введение в Wolfram Mathematica

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

Введение в Wolfram Mathematica

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

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

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

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

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

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

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

Введение в Wolfram Mathematica

Заключение

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

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 и др.

Заключение

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

Вычисления в Mathematica с примерами решения

Mathematica (далее М.) является системой символьной математики. Такие
системы позволяют пользователю, набрав несколько команд, подключиться к
готовым программам самой системы и провести необходимые вычисления.
После запуска М. или открытия уже существующего файла набирают нужный текст или математическую команду. М. воспринимает то, что набрано, как Input.
Обработка Input выполняется при нажатии клавиш: Shift+Enter. М. помечает Input
меткой In[n]: и результат обработки выводит в Output, помечая его Out[n]. Текст и команды находятся в ячейках, которые М. объединяет в группы.

Каждая ячейка (cell) имеет свой стиль. Границы групп и стиль ячеек показываются М. справа рабочего окна в виде квадратных скобок. Можно выбирать стиль ячейки, используя команду Format. По умолчанию, автоматически открываемая ячейка, имеет стиль Input (Input style), который
позволяет проводить математические вычисления. Если есть необходимость
открыть новую ячейку, двигают курсор вниз ячейки, пока не появится
горизонтальная линия. Если после этого нажать клавишу Enter – вы окажетесь в
новой ячейке.

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

Пример 1.

Обыкновенное присваивание.
Вычисления в Mathematica с примерами решения
Пример 2.

Задержанное присваивание.
Вычисления в Mathematica с примерами решения
Замечание. Во втором случае значения a и b хранятся в оперативной памяти и не выводятся в Output. Интерфейс в М. достаточно приятен. Можно активно использовать Help. Например, копировать там шаблоны стандартных функций и переносить их в свой документ. При этом Copy, Cut, Paste такие же как и в MS Word. Более подробно среда М. описана, например, в [7].

Рассмотрим функции М., позволяющие построить графики Plot, PolarPlot,
ParametricPlot, Plot3D. Синтаксис любой такой функции примерно одинаков.
Например для команды Plot:
Вычисления в Mathematica с примерами решения
график функции f[x] независимой переменной х в диапазоне от Вычисления в Mathematica с примерами решения
Вычисления в Mathematica с примерами решения Вычисления в Mathematica с примерами решения
аналогично (1) – графики функций Вычисления в Mathematica с примерами решения
Вычисления в Mathematica с примерами решения
график функции f(х) на промежутке от Вычисления в Mathematica с примерами решенияисключая точки Вычисления в Mathematica с примерами решения

Пример 1.

Построим график функции Вычисления в Mathematica с примерами решенияИспользуем команду: Вычисления в Mathematica с примерами решения
Вычисления в Mathematica с примерами решения
При построении графика в примере 1 М. использовала по умолчанию опции, касающиеся стиля графика и вида осей координат. Пользователь может изменять эти опции, задавая их в команде Plot. Например, для команды (1):
Вычисления в Mathematica с примерами решения
Рассмотрим некоторые опции.
1. Вычисления в Mathematica с примерами решения— метки горизонтальной и вертикальной осей координат.

Пример 2.

Для построения графика функции [Вычисления в Mathematica с примерами решенияиспользуем команду:
Вычисления в Mathematica с примерами решения

Вычисления в Mathematica с примерами решения
2. AspectRatio число → ; число задает отношение у – протяженности
графика к х – протяженности.
AspectRatio Automatic → — масштаб на обеих осях одинаков.

Пример 3.

Команда:
Вычисления в Mathematica с примерами решения

Вычисления в Mathematica с примерами решения

Результат:
3. PlotStyle опции → — определяют стиль рисования.

Пример 4.

Вычисления в Mathematica с примерами решения
Результат:
Вычисления в Mathematica с примерами решения
Пример 5.

Команда:
Вычисления в Mathematica с примерами решения
Результат:
Вычисления в Mathematica с примерами решения
4. Вычисления в Mathematica с примерами решения— метки на осях Оx и Оy .

Пример 6.

Вычисления в Mathematica с примерами решения
Результат:
Вычисления в Mathematica с примерами решения
Список всех опций можно просмотреть командой Options[Plot] и использовать их по мере надобности. Например, при построении графика Вычисления в Mathematica с примерами решениянеобходимо исключить точку разрыва x = 0. Это делается опцией Exclusion.

Пример 7.

Команды:
Вычисления в Mathematica с примерами решения
Результат:

Вычисления в Mathematica с примерами решения

Рассмотрим еще несколько примеров с командами , PolarPlot, ParametricPlot, Plot3D.
Синтаксис команды ParametricPlot:
Вычисления в Mathematica с примерами решения— график параметрически заданной функции Вычисления в Mathematica с примерами решенияпараметра при изменении t в диапазоне от t min до t max .

Пример 8.

Построим график эллипса:
Вычисления в Mathematica с примерами решения
Команды:
=
ParametricPlot[, ,Ticks→ >,PlotStyle→ ]

Вычисления в Mathematica с примерами решения
Синтаксис команды Plot3D:
Вычисления в Mathematica с примерами решения— график поверхности Вычисления в Mathematica с примерами решенияпри изменении х в диапазоне от х min до х max , у в
диапазоне от у min до у max .

Пример 9.

Построим график параболоида: Вычисления в Mathematica с примерами решенияпри ограничениях на х и у: Вычисления в Mathematica с примерами решения
Команда:
=
Plot3D[(x^2)/(a^2)+(y^2)/(b^2), , ,Axes→True,Ticks→ , >,AxesLabel→ ,RegionFunction→Function[ ,(x^2)/(a^2)+(y^2)/(b^2)≤10],PlotStyle→Directive[Yellow,Specularity[White,20],Opacity[2.4]],Boxed→Fale]
Результат:
Вычисления в Mathematica с примерами решения
При этом пояснения соответствующих опций можно легко найти в Help.
Синтаксис команды PolarPlot:
Вычисления в Mathematica с примерами решения— график кривой r=r[ϕ] в обобщенных полярных координатах при изменении ϕ в диапазоне от ϕmin до ϕmax .

Пример 10.

Построим график Вычисления в Mathematica с примерами решения
Команда:

Вычисления в Mathematica с примерами решения
Результат:

Вычисления в Mathematica с примерами решения

При копировании любых материалов с сайта evkova.org обязательна активная ссылка на сайт www.evkova.org

Сайт создан коллективом преподавателей на некоммерческой основе для дополнительного образования молодежи

Сайт пишется, поддерживается и управляется коллективом преподавателей

Telegram и логотип telegram являются товарными знаками корпорации Telegram FZ-LLC.

Cайт носит информационный характер и ни при каких условиях не является публичной офертой, которая определяется положениями статьи 437 Гражданского кодекса РФ. Анна Евкова не оказывает никаких услуг.

Методические указания общего характера по применению средств программы «Wolfram Mathematica 7»

Система компьютерной математики «Wolfram Mathematica 7» (далее просто WM7) предназначена для выполнения математических расчетов всех видов: числовых, символьных, графических. Работа пользователя с этой системой основана на программировании математических объектов и их свойств, а также действий с объектами.

1. При запуске программы WM7 в ее окне открывается рабочий лист *.nb. Одновременно появляется отдельное окно Welcome to WM7, из которого предлагается доступ к ресурсам системы.

2. Из окна Welcome to WM7 через Complete Documentation можно перейти в окно справочной службы Wolfram Mathematica: Documentation Center. Другой путь в окно Documentation Center проходит через меню Help на верхней панели окна программы WM7.

3. В режиме диалога пользователь вводит на текущий рабочий лист *.nb свои директивы (указания), формулируя их на языке программирования для СКМ WM7. Чтобы система корректно и однозначно распознавала все формулировки пользователя, приходится соблюдать определенные правила.

4. При написании тех или иных формулировок широко используются различные средства системы, в том числе функции. Имена всех функций системы и другие служебные слова зарезервированы и начинаются с заглавной буквы. По этой причине имена переменных и функций, вводимых пользователем, не должны содержать заглавных букв.

5. О каждой функции системы исчерпывающая информация (выполняемые действия, правила написания, примеры использования, и т.п.) может быть найдена на странице этой функции в справочной службе.

6. Для задания свойств некоторых математических объектов (например, графических изображений) применяются опции. Если выбранная функция допускает опции, то исчерпывающая информация о доступных опциях (вместе с примерами) может быть найдена на странице этой функции в справочной службе WM7: Documentation Center.

7. При составлении той или иной формулировки применяются различные стили: FullForm, InputForm, OutputForm, StandardForm, а также TraditionalForm, и др. Различие между стилями определяется мерой использованием основной клавиатуры. В частности, с основной клавиатуры компьютера можно вводить любые формулировки на языке программирования в стиле FullForm. Однако в других стилях для набора ряда специальных символов используются соответствующие комбинации клавиш.

8. Более эффективный ввод формулировок связан с программированием в стиле StandardForm. Для реализации этого способа в системе WM7 имеются палетки (Paletts) с различными виртуальными клавиатурами. Полезная палетка Basic Math Assistant 1 может быть установлена через меню Paletts на верхней панели окна программы WM7.

9. Палетка Basic Math Assistant содержит «карманы» Basic Commands и Typesettings. В каждый из этих «карманов» вложены виртуальные клавиатуры.

10. Виртуальные клавиатуры предназначены для ввода специальных символов и шаблонов элементов математических выражений.

1. Списки и множества

Цель работы состоит в освоении технологий решения типовых задач по теме «Списки и множества».

Key words: List, Length, Lists as Sets, Union, Intersection, Complement, Table, Range, TableForm, Flatten.

Возможные пути к ресурсам из окна Documentation Center:

1) Core Language Lists;

2) Data Manipulation Arrays.

Справка. Списки являются центральными конструкциями системы Mathematica, используются для представления коллекций, массивов, множеств и последовательностей всех видов. Более тысячи встроенных функций всей системы Mathematica работают непосредственно на списки, что делает списки мощным средством для взаимодействия.

Всякий список (List) рассматривается как упорядоченный перечень элементов. Список может иметь свое имя 2 . Один из способов задания списка (с присвоением имени):

Здесь число определяетдлину списка. Чтобы извлечь элемент , занимающий-ую позицию в данном списке, можно написать:

Длина списка может быть получена с использованием формулировки:

Система Mathematica позволяет работать со списками как с множествами (Lists as Sets). В этом контексте всякое конечное множество (Set) вводится как неупорядоченный перечень своих элементов. (При этом по умолчанию предполагается, что перечень не содержит совпадающих элементов.) Чтобы преобразовать данный список в множество (с присвоением нового имени), можно использовать формулировку:

Длина списка совпадает смощностью (числом элементов) его множества.

Система Mathematica позволяет выполнять теоретико-множественные операции над списками: объединение, пересечение, взятие разности. При этом нет необходимости предварительно преобразовывать списки в множества. Результат каждой из этих операций над списками совпадает с результатом над их множествами.

Математическая операция

Функциональная форма

Операционная форма

Объединение:

Union[]

Пересечение:

Intersection[]

Взятие разности:

Complement[]

Нередко генерируют списки путем табуляции, т. е. путем вычисления значений тех или иных выражений, содержащих индексы. Для создания списка значений некого выражения можно написать:

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

В качестве примера определим прямое произведение 3 множестви, как множество всех упорядоченных пар, гдеи. Для решения этой задачи можно написать:

Wolfram mathematica как запустить вычисление

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

Mathematica была создана Стефаном Вольфрамом (Stephen Wolfram) и разрабатывается Wolfram Research. Первая версия была выпущена 23 июня 1988 года.

Mathematica предоставляет пользователю огромный инструментарий:

  • символьные и численные вычисления,
  • библиотеки математических и статистических функций, теории групп и теории чисел,
  • работа с графикой, в том числе инструменты визуализации и анимации, обработка и распознавание изображений,
  • инструментарий для финансовых вычислений, анализа текстовых и графических данных и т.д.
  • база данных математической, научной и социально-экономической информации,
  • встроенный язык программирования, поддерживающий функциональный, процедурный и объектно-ориентированный стили прогграммирования.
  • средства создания программ и пользовательских интерфейсов, параллельных вычислений, подключения внешних DLL и т.д.

Одним из базовых принципов встроенного языка Mathematica является представление любых сущностей в виде списков. Например, сумма чисел — это список с головным элементом Plus . Операции Map и Apply позволяют заменять головные элементы списков и применять заданное выражение к каждому элементу списка.

Элементы синтаксиса:
Комментарии, которые не могут быть вложенными (* . *)
Регистрозависимость да
Регулярное выражение идентификатора переменной [_a-zA-Z][_a-zA-Z0-9]*
Регулярное выражение идентификатора функции [_a-zA-Z][_a-zA-Z0-9]*
Присваивание значения переменной a=b, a:=b(отложенное или ленивое присвоение)
Объявление переменной (происходит в месте ее первого использования)
Объявление переменной с присваиванием значения <varname> = <value>;
Группировка выражений ( . )
Блок [ . ]
Равенство ==
Неравенство !=
Сравнение < > >= <=
Определение функции f[x_, y_, z_] := (x + y + z)
Вызов функции f[x, y, z]
Вызов функции без параметров f[]
Последовательность ;
Если — то If[condition, trueBlock]
Если — то — иначе If[condition, trueBlock, falseBlock]
Бесконечный цикл While[1<2, loopBody]
Цикл с предусловием While[condition, loopBody]
Цикл for — next для диапазона целых чисел с инкрементом на 1 For[i = 0, i < 10, i++, loopBody]
Цикл for — next для диапазона целых чисел с декрементом на 1 For[i = 10, i > 0, i—, loopBody]

Логотип Wolfram Mathematica
Логотип Wolfram Mathematica

Ссылки:
Примеры:
Квадратное уравнение:

После ввода коэффициентов определяем переменную y — квадратное уравнение с заданными коэффициентами. Так как x не определено, в уравнении оно останется обычной переменной (например, Print[y] выведет запись полученного уравнений c + b x + a x^2 с подставленными коэффициентами a, b и c). Функция Reduce вычисляет значения переменных, при котором указанное условие будет истинным. Условие в данном случае — квадратное уравнение, а переменная — x.

Факториал:

Используется встроенная функция вычисления факториала ! . Do — один из способов реализации циклов; выполняет первый аргумент для всех значений, заданных вторым аргументом, а именно: для всех i от 0 до 16 с шагом 1.

Числа Фибоначчи:

Print обязательно завершает вывод переносом строки, поэтому для того, чтобы вывести все числа Фибоначчи в одной строке, их нужно накопить в переменной msg и вывести ее. <> — оператор конкатенации; он работает только с явными строками, поэтому результат вызова Fibonacci нужно явно перевести в строку функцией ToString .

Hello, World!:

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

Hello, World!:

В этом случае создается временная строковая переменная. В конце строки нет символа “;”, и значение этой переменной выводится отдельным Out , что не всегда удобно.

Факториал:

Используется рекурсивное определение факториала. Обратите внимание на то, что при определении функции ее аргумент дополняется символом _ .

Числа Фибоначчи:

Этот пример использует функцию Riffle , которая в данном случае перемежает элементы массива чисел Фибоначчи копиями строки “,”.

Факториал:

Символу f[x] ставится в соответствие список (List[…]) первых x натуральных чисел, генерируемый функцией Range[x], в которой головная часть List заменяется на Times при помощи функции Apply[head, expr], записанной здесь как head@@expr.

Здесь использованы две парадигмы программирования, реализованные в Wolfram: во-первых, с помощью шаблонного выражения x_ число, вписанное в квадратные скобки, подставляется в соответствующее место справа от знака отсроченного присваивания := . Во-вторых, функциональная парадигма позволила избавить код от громоздких процедурных конструкций и придти к похожей на математическую записи.

Бесплатные инструменты для Wolfram Language

34 500 руб. в день написания статьи). Для коммерческого использования и для учебных заведений цена ещё выше.

Но это не самая большая проблема. Если рассматривать Wolfram Mathematica как инструмент для учёного, то всё нормально — пользователи просто приобретают ПО для своих личных целей. Когда дело доходит до применения Wolfram как языка программирования, становится намного сложнее.

Допустим я написал код и хочу его распространить. Никто не мешает мне выложить исходники на GitHub, однако тот, кто заинтересуется моим проектом должен будет иметь лицензию чтобы просто его запустить. В итоге распространение свободного ПО на Wolfram остаётся в рамках относительно узкого сообщества пользователей с очень отличающимися интересами.

X-MAS HACK 2022

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

Wolfram Engine

Wolfram Engine — бесплатная реализация языка Wolfram, которая содержит в себе полную стандартную библиотеку языка — ка Mathematica, но без пользовательского интерфейса. То есть это само ядро Wolfram, взаимодействие с которым осуществляется через интерфейс командной строки.

На мой взгляд отсутствие UI — это очень маленькая плата за то, что у пользователей появится законная и бесплатная версия языка. Конечно же, те кто привык к Mathematica, не смогут быстро перестроится к другому рабочему процессу, но при наличии терпения работа с Wolfram Engine может стать более эффективной, чем с Mathematica.

Теперь рассмотрим процесс установки Wolfram Engine:

  1. Переходим на страницу загрузки.
  2. Выбираем подходящую версию и скачиваем.
  3. После скачивания необходимо получить лицензию — для этого нужно зарегистрироваться или авторизоваться в учетной запись account.wolfram.com.
  4. Запускаем установщик и следуем инструкции.
  5. После установки в консоли и выполняем команду wolframscript .
  6. При первом запуске ядра необходимо ввести учетные данные из шага 3.

После выполнения действий выше Woflram Engine готов к использованию — вместе с ним устанавливаются ещё две утилиты: Wolfram Script и Wolfram Player. Первая — утилита командной строки, которая по сути является расширением стандартного интерфейса командной строки ядра.

Вторая — программа для просмотра блокнотов Mathematica и вычисляемых документов. Редактировать и выполнять код с её помощью нельзя, но если блокнот был подготовлен должным образом, в нём будут работать все заранее выгруженные интерактивные объекты. Получается таким образом Wolfram Player можно использовать для запуска подготовленных программ.

Hello World

Теперь напишем первую программу. Откроем консоль и запустим ядро:

После чего можно будет использовать его в режиме интерпретатора. Введём следующую команду:

Первая традиционная программа заработала — ниже должна была напечататься строка «Hello, World!» :

В режиме интерпретатора

Другой способ — запустить код напрямую из командной строки (без запуска интерпретатора). Для этого достаточно в консоли выполнить следующее:

Выполнения строки с кодом из консоли

И третий способ — создать скрипт (обычно это файлы с расширениями .m, .wl, .wls), добавить туда код и выполнить его в консоли:

Скрипт в текстовом редакторе

Выполнения скрипта в консоли

Wolfram Script

Как было сказано выше, это расширение интерфейса командной строки. В общем случае Wolfram Script может устанавливаться совершенно отдельно и работать с любым ядром Wolrfam. То есть на локальном компьютере может и не быть Wolfram Engine или Mathematica, но при помощи Wolfram Script можно подключиться к удаленному ядру на другом компьютере или же в облако Wolfram Cloud и запускать команды там, при этом получая вывод в консоль. Например так можно выполнить код в облаке:

Ниже мы рассмотрим еще несколько полезных опций командной строки.

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

Здесь думаю объяснения не требуются. Это способ указать что далее идет набор аргументов командной строки.

Эта опция позволяет задать типы аргументов по порядку. Список доступных типов довольно большой и сводится он в итоге ко всем заголовкам выражений Wolfram, которые язык может интерпретировать из строки или числа. Для проверки, что данный тип поддерживается можно просто посмотреть содержимое переменной $InterpreterTypes в интерактивном режиме (не все из перечисленных типов можно будет конвертировать из строки):

Список типов, которые может интерпретировать Wolfram

Три опции, показанные выше, лучше всего использовать вместе.

Вот как это будет выглядеть в командной строке:

Все опции вместе

Есть ещё одна хитрость. В функцию можно превратить целый скрипт. Необходимо просто указать это в его первой строке, тогда Wolfram Script будет воспринимать вызов скрипта именно как вызов функции с некоторыми аргументами. Это даёт возможность очень сильно упросить процесс обработки аргументов командной строки. Важно, что код скрипта должен заканчиваться точкой входа — функцией.

Создадим простой скрипт и превратим его функцию. Пусть код просто печатает числа Фибоначчи от нулевого и до указанного. Код скрипта будет выглядеть так:

Сохраним его с именем Fib.wls и вызовем этот файл из консоли:

Результат в консоли

При этом, благодаря тому, что мы указали сигнатуру функции, то по умолчанию будет происходить проверка типов аргументов:

Wolfram Script не смог интерпретировать string1 как целое число

Выше результат напечатался в виде списка в фигурных скобках. В данном случае это представление ещё достаточно удобное, однако, часто бывает так, что результат выполнения функции — это картинка, график, таблица, трёхмерный массив и вообще что угодно. Всё вышеперечисленное неудобно просматривать в консоли. Для таких случаев существует специальная опция:

Она позволяет экспортировать результат в нужное представление. Все доступные аргументы — это, по сути, список доступных форматов для функции Export. Например, ниже те же числа Фибоначчи в виде таблицы и json:

В виде таблицы и массива json

Так же стоит перечислить те форматы, которые будут использоваться чаще всего: XML, CSV, TSV, PNG, JPEG, RawJSON, RawData, String, Buinary и так далее. Кроме того результат выполнения кода и экспорта в какой-либо формат затем очень легко записать в файл просто перенаправив выход консоли.

Известные проблемы

При работе с Wolfram Script пользователи могут встретиться со многими трудностями, которые зависят от конкретной программы, которая используется в качестве терминала. У меня например при запуске скрипта в Windows Terminal + PowerShell не выводится результат — вместо этого PowerShell решает запускать саму по себе утилиту Wolfram Script в отдельном окне, где всё и происходит.

При работе в консоли MINGW64, которая устанавливается на Windows вместе с git, нельзя запустить скрипт как исполняемый файл, так как MINGW воспринимает первую строку в скрипте как путь к платформе для запуска — то есть так, как это происходит в Linux. На Windows этого пути не существует. Хотя в Windows файлы с расширением .wls по умолчанию являются исполняемыми — более того, они легко запускаются двойным щелчком или в PoserShell или CMD.

Так же в PoserShell будут трудности при передачи нескольких строк как нескольких аргументов если там содержатся кавычки или пробелы.

А в Linux нельзя использовать сокращённый вариант передачи аргументов — так как он воспринимается как «системный» символ, а не как опция для Wolfram Script.

Но после некоторых экспериментов с предпочтительным типом терминала можно понять оптимальный способ работы с Wolfram Script.

Wolfram Player

Его можно установить как отдельную программу или вместе с Wolfram Engine.

Как было сказано выше, это программа для просмотра интерактивных документов без возможности их редактирования. Но также в данной программе отключен пользовательский ввод данных — то есть, увы, не получится сделать документ, который будет импортировать файлы чтобы затем их обрабатывать. Основной функционал — просто открытие блокнотов (.nb) и вычисляемых документов (.cdf). Ниже скриншоты:

Блокнот созданный в Mathematica

Чтобы посмотреть как будет выглядеть вычисляемый документ — создадим его сами при помощи Wolfram Script. Пусть это будет то же, что и выше, но с возможностью интерактивно менять начальные условия. Код скрипта будет вот такой:

Выполним его и получим файл SIR.cdf. Его можно будет открыть в Wolfram Player и график будет интерактивно меняться при изменении положения бегунков:

Подготовленный вычисляемый документ

При выгрузке в вычисляемый документ Wolfram сохраняет в него все необходимые определения и интерактивные объекты. Поэтому выполнять код не требуется — график с манипуляторами работает сразу после открытия.

Редакторы кода

По очевидным причинам, рассмотренного ранее недостаточно, чтобы эффективно работать с языком Wolfram. Ведь весь этот код надо ещё как-то написать. Использовать Vim или блокнот не очень удобно, хотя вполне возможно, если требуется написать что-то короткое (опытные пользователи Vim со мной не согласятся и по-своему будут правы).

Поэтому далее мы рассмотрим несколько бесплатных редакторов кода, которые имеют расширения специально для Wolfram Language. Я не буду описывать подробно процесс установки редакторов, так как он во всех случаях практически одинаков, но указать какие расширения необходимо поставить стоит.

Visual Studio Code

Скачиваем установочный файл со страницы загрузки и устанавливаем по инструкции. После установки необходимо перейти в менеджер расширений и в строке поиска ввести Wolfram:

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

Теперь посмотрим как же выглядит код на Wolfram в этом редакторе:

Пример кода — пакет для создания ботов в Telegram

Очень удобно то, что в VS Code и других текстовых редакторах легко запустить консоль, в которой можно проверять работоспособность кода. Выглядеть это будет вот так:

Тестирование функции в терминале редактора

На этом мы перейдём к следующему редактору кода, но к Visual Studio Code еще вернемся ниже.

GitHub Atom

Установка данного редактора ещё проще и быстрее. Необходимо просто скачать установочный файл и запустить — редактор установится автоматически в папку пользователя и сразу же запустится.

После запуска, как и в предыдущем случае, переходим в менеджер расширений и ищем расширения по ключевому слову Mathematica (или Wolfram, но тогда строка поиска и расширение, которое я выбрал, не помещаются на одной странице). Я использую расширение от разработчика Fitzse:

Менеджер расширений Atom — в него легко перейти из Welcome Guide сразу после запуска

Полезная функция расширения для Atom: в нём по умолчанию работает автодополнение с пометкой типа имени (функция, переменная или встроенное имя) и для системных функций, и для всех имён, используемых в текущем файле:

Пример авто-дополнения — в списке предложения не зависимо от регистра

Sublime Text

Ещё один популярный редактор кода. В отличии от рассмотренных выше, он не был написан на Electron, поэтому в среднем, по моим ощущениям, работает чуть-чуть быстрее: быстрее открывает большие файлы, нет тормозов при вызове авто-дополнения и так далее.

Стандартная установка: необходимо просто скачать инсталлятор и следовать инструкциям. После этого перейти в менеджер расширений. Сделать это можно при помощи сочетания клавиш Ctrl + Shift + P или в основном меню Preferences > Package Control:

Меню Sublime Text для перехода в менеджер расширений

После чего в поле ввода необходимо написать Install Package или выбрать этот пункт:

Доступные действия менеджера

Далее в открывшемся поле поиска необходимо ввести как обычно ключевое слово Wolfram:

Поиск нужного расширения

После установки, как это было выше для файлов с кодом на Wolfram, станет доступна подсветка синтаксиса и автодополнение для системных имён и имён, используемых в текущем документе:

Пример авто-дополнения и подсветки кода- в списке предложений указаны типы имен

Jupyter Notebook

С помощью бесплатной среды исполнения и текстовых редакторов можно построить свой рабочий процесс в таком виде: пользователь сначала пишет скрипт или пакет, затем открывает консоль, запускает интерпретатор и уже там проверяет его работу.

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

Блокноты Mathematica с этим справляются просто отлично — в них легко писать код и проверять результат выполнения. Есть ли альтернативы? Конечно — использовать блокноты Jupyter. Обзор Jupyter Notebook самого по себе выходит за рамки этой статьи, однако основные шаги по установке мы всё же рассмотрим.

Для начала нам потребуется сама среда Jupyter. Если вы используете Linux, то ничего объяснять не надо — подробная инструкция есть по первой ссылке под заголовком. Установка Jupyter выполняется при помощи утилиты apt.

Если вы используете Windows и не знакомы с Python и Jupyter, лучший вариант — это установить пакет Anaconda по второй ссылке. Необходимо просто следовать инструкциям. При установке очень важно отметить пункт, в котором предлагается добавить пути к исполняемым файлам в системную переменную PATH. Вместе с Anaconda установится не только Python, но и автоматически установится среда Jupyter Notebook (и многое другое). Вот так будет выглядеть окно приветствия Anaconda:

Стартовое окно Anaconda — из него можно запустить нужную утилиту

Из всего многообразия на скриншоте выше в дальнейшем нам понадобится Jupyter Notebook. В теории можно было бы использовать и JupyterLab, но он, увы, не работает с ядром Wolfram.

Следующий шаг — добавление ядра Wolfram в Jupyter. Для этого, в первую очередь, необходимо скачать проект WolframLanguageForJupyter от разработчика Wolfram Research — третья ссылка под заголовком. После того как проект будет скачан на локальный компьютер, необходимо открыть терминал в корневой папке и выполнить следующее (предполагается что Wolfram Engine и Wolfram Script установлены):

Данная команда автоматически создаст в конфигурации ядер Jupyter новое ядро для языка Wolfram. Чтобы попробовать его, снова откроем навигатор и запустим Jupyter Notebook нажатием кнопки Launch, откроется браузер по умолчанию и обзор директории пользователя:

Обзор домашней директории пользователя в Jupyter

Перейдём в любую доступную папку и нажмем кнопку «Новый» (я искренне прошу прощения у всех читателей за то, что им приходится видеть русифицированный интерфейс Jupyter). В выпадающем списке выберем ядро Wolfram Language. Далее откроется новый блокнот. Выглядеть он будет примерно так:

Я решил не обращать внимания на проблемы с локализацией и любой ценой дописать статью

Готово. Теперь в ячейках можно писать код на язык Wolfram и выполнять его прямо в блокноте. Конечно же, конкретно для языка Wolfram пока что пользовательский интерфейс и возможности среды далеки от того, что есть в Mathematica (да даже далеки от того что есть в этом же Jupyter для Python).

Подсветки кода и автодополнения нет, а результаты исполнения команд могут быть только двух типов: текст и картинка. В картинку конвертируется абсолютно всё, что не является текстом. Это не очень большое разнообразие, но всё же лучше того, что мы видели в консоли. Ниже несколько примеров:

Решение уравнения и странный аттрактор системы Лоренца

К сожалению, манипуляторы, интерактивные объекты, таблицы, графики и многое другое не будет здесь работать. Также нельзя будет изменять графики непосредственно в ячейке вывода при помощи встроенных в UI Mathematica-инструментов.

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

nteract

Будем считать, что мы уже установили Jupyter, Wolfram Engine и они работают вместе. Тогда можно воспользоваться альтернативной средой для работы с блокнотами .ipynb — nteract.

Скачиваем по ссылке под заголовком и выполняем стандартную установку. После того как NTeract установится, просто запустим его и создадим новый пустой блокнот. Если ядро Wolfram было ранее добавлено правильно,яя то оно автоматически появится и в nteract:

Меню выбора ядра для создания нового блокнота

Здесь будет доступно то же, что и в Jupyter Notebook:

Площадь шарнирного многоугольника

Из плюсов nterat можно выделить то, что в нём по умолчанию больше настроек. Также очень удобно то, что данную программу можно использовать в качестве программы по умолчанию для открытия файлов с расширением .ipynb. И в моём случае более приятный пользовательский интерфейс.

Visual Studio Code + Jupyter

Вот мы и вернулись к редактору VS Code. Как я заметил выше, ни в Jupyter, ни в nteract нет подсветки кода. Однако в редакторе VS Code есть расширение, которое позволяет открывать, редактировать и выполнять код в блокнотах .ipynb. Конечно же, в этом случае, если установлено расширение для языка Wolfram, оно будет так же работать и в ячейках блокнота. Разработчик расширения — Miscrosoft, оно очень популярно и проблем с его установкой возникнуть не должно. Вот оно в менеджере расширений VS Code:

Расширение для VS Code

После установки расширения с его помощью можно будет открывать уже существующие блокноты и создавать новые. Чтобы создать новый блокнот, необходимо использовать сочетание клавиш Ctrl + Shift + P, открыть меню команд и выбрать создание нового блокнота (первая строка на скриншоте):

Команда для создания нового блокнота

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

Ячейки теперь с подсветкой кода, но результат так же текст и картинки

Если таким образом использовать VS Code, то разработка на языке Wolfram становится ещё проще. Ведь в VS Code тогда можно одновременно редактировать и пакеты с исходным кодом и сразу же проверять их работу в интерактивных блокнотах:

Пример кода пакета и его применения в одном окне редактора

Atom + Hydrogen + Jupyter

Примерно то же самое можно проделать и для редактора Atom. Устанавливаем расширение Hydrogen от разработчика nteract:

Менеджер пакетов Atom

Когда расширение установлено, его необходимо настроить. Для этого нужно открыть настройки (кнопка settings на скриншоте выше) и добавить сопоставление языков «wolfram language»: «Mathematica» вот так:

После этого выполнение кода станет доступно непосредственно в файлах с исходным кодом на Wolfram — то есть в скриптах и пакетах. Чтобы выполнить код, нужно выделить строку целиком с кодом (или несколько) и нажать сочетание клавиш Shift + Enter. Вот как это выглядит:

Научный форум dxdy

[Wolfram Mathematica] Символьные вычисления с условиями

Для интуитивно ожидаемой работы нужно писать
Sort[ , Less]
или
SortBy[ , N]

Я тут написал на коленке свой велосипед

Работает, но с неприемлемой факториальной сложностью.

Собственно, вопрос:
было у кого-то желание пощупать такого типа задачи, в которых были бы символьные манипуляции с условиями? Как это лучше всего делается? Какие есть техники в WM? Короче, прошу поделиться опытом.

Последний раз редактировалось agua 07.07.2015, 14:59, всего редактировалось 2 раз(а).

Скажем, так задача поставлена: вот есть матрица $n\times n$, каждую строку нужно отсортировать (матрицу можно не менять) и затем сравнить наибольший элемент из первого столбца и наименший элемент из второго столбца, причём все или некоторые элементы могут представляться выражениями с символами, которые не имеют числовые значения, хотя в $Assumptions предполагаются Reals или Complexes .

Основная проблема видится в том, что нельзя просто так взять несколько Piecewise и начать их сравнивать, сделав глобальный Piecewise, а затем раскрыть всё при помощи PiecewiseExpand, потому что число вариантов значений/условий такого монстра будет произведением числа вариантов значений/условий составляющих его условных выражений. И если число вариантов упорядочения каждой строки матрицы $n!$, то число вариантов любого выражения с двумя строками $n!^2$— слишком много.

На данный момент эта проблема не актуальна, свою задачу решил численным методом: для большого числа точек из пространства параметров отсортировал численно и сравнил численно, построив некоторую достаточно красивую и понятную диаграмму. Тем не менее, такое решение не общно и хотелось бы уметь получать автоматически выражения в символьном виде. В будущем может снова стать актуальной.

Последний раз редактировалось agua 07.07.2015, 16:40, всего редактировалось 4 раз(а).

Синтаксис Wolfram Alpha

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

Содержание
Основные операции [ править ]
  • Сложение  a + b : a+b
  • Вычитание  a − b : a-b
  • Умножение  a ⋅ b : a*b
  • Деление    a b > : a/b
  • Возведение в степень  a b > : 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).
Знаки сравнения [ править ]
Логические символы [ править ]
  • Конъюнкция «И» ∧ : &&
  • Дизъюнкция «ИЛИ» ∨ : ||
  • Отрицание «НЕ» ¬ : !
  • Импликация =>
Основные константы [ править ]
Основные функции [ править ]
Решение уравнений [ править ]
  • 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 — интересующая Вас переменная.

  • 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 — дифференциальные уравнения, входящие в систему. К сожалению, решение задач Коши и краевых задач для систем дифференциальных уравнений пока что не поддерживается.

Wolfram mathematica как запустить вычисление

Для запуска программы наберите команду mathematica в командном окне, либо в стартовом меню выберите пункт Mathematica.

При старте открывается рабочее окно, в котором отображаются ввод и вывод программы. В верхней его части находится меню, позволяющее выполнять различные действия, в том числе сохранение текущей сессии в файле с расширением nb. Кроме основного окна в работе участвуют так называемые палитры. Если они не появились при старте, то для их открытия можно воспользоваться пунктом Palettes из меню File. Палитра Basic Input предоставляет набор кнопок для ввода наиболее употребительных символов, таких как корни, дроби, интегралы, буквы греческого алфавита и т. д. Палитра Basic Calculations содержит шаблоны для вычисления основных алгебраических функций.

Чтобы инициировать процесс вычисления после набора команды нужно одновременно нажать клавиши Shift и Enter (либо клавишу Enter на числовой клавиатуре справа). После завершения расчета программа присваивает имена вида In[1] и Out[1] исходному выражению и результату. Можно отменить показ имен, отключив в меню Kernel пункт Show In/Out Names.

Mathematica в качестве имен функций почти всегда использует их английские названия. Исключениями являются несколько наиболее употребимых функций: кроме N для определения численного значения, символ D используется для нахождения производной.

Дополнительную информацию о назначении той или иной функции в ходе работы с системой можно получить, используя следующие команды:

? Name — помощь по заданному слову Name;
?? Name — расширенная помощь по заданному слову Name.

Большинство функций программы Mathematica являются встроенными, т. е. становятся доступными сразу после загрузки системы. Кроме того, имеется набор так называемых пакетов расширения, содержащих специализированные функции для работы в той или иной области. Среди них Algebra, Calculus, DiscreteMath, Geometry, LinearAlgebra, Miscellaneous, Graphics, NumberTheory, NumericalMath, Statistics и некоторые другие. Каждый из пакетов содержит набор подпакетов, например, в пакет Algebra входят такие подпакеты, как InequalitySolve для решения неравенств, SymbolicSum для вычисления сумм рядов, Trigonometry для работы с тригонометрическими выражениями и другие. Для того чтобы сделать доступными функции, входящие в состав специализированных пакетов, следует их подключить командой типа

< (обратите внимание на использование обратных апострофов). Если загружаемый подпакет содержит несколько функций, то их перечень выводится на экран. При наличии в пакете только одной функции ее имя совпадает с именем пакета.

Mathematica всегда старается упростить введенное выражение. Если вы попробуете вычислить корень квадратный из двадцати, для чего после ввода соответствующего выражения нажмете Shift+Enter, то результатом окажется выражение, равное двум корням из пяти. Программа упростит выражение, оставив его в символьном виде. Для того чтобы получить численное значение выражения expr, следует использовать функцию N[expr] или N[expr, n], где n задает точность вычислений. По умолчанию выводится значение выражения с пятью знаками после запятой.

Для ввода выражений удобно пользоваться палитрой Basic Input, которая содержит шаблоны для ввода степеней, дробей, радикалов, греческих букв и т. п. При выборе соответствующего шаблона появляется возможность ввести нужные значения (место для ввода значений выглядит как небольшой квадратик).

Отметим некоторые особенности синтаксиса системы, используемого при записи арифметических выражений:

  • знак умножения может быть заменен пробелом;
  • имена встроенных функций начинаются с большой буквы;
  • параметры функций задаются в квадратных скобках, например Sin[2];
  • круглые скобки используются для того, чтобы выделить части выражений и изменить порядок выполнения операций;
  • фигурные скобки используются при задании списков, например, при перечислении уравнений, входящих в систему.

Mathematica допускает использование чисел четырех видов: целые, рациональные, вещественные и комплексные. Все типы чисел могут содержать любое количество цифр. Чтобы число рассматривалось как вещественное, оно должно содержать точку в его записи, даже если дробная часть равна нулю, например, 2. или 2.0.

Для перевода числа, заданного в системе счисления с произвольным основанием, в десятичную используется конструкция Основание^^Число, а для обратного перевода числа a из десятичной системы в систему с основанием n (где n не превышает 32) — функция BaseForm[a, n].

Инициализация переменных осуществляется при помощи операции =, для аннулирования значения переменной следует после знака равно указать символ . (точка).

При выполнении вычислений особая роль отводится символу % — он означает результат предыдущей операции. Комбинация символов %% соответствует результату операции, выполненной перед предыдущей, и так далее.

Для того чтобы «заставить» систему упростить выражение, используется функция Simplify. Ниже приведены примеры использования этой функции.

Функция Expand раскрывает скобки в выражении. Например, в результате выполнения команды Expand[(a + b) 3 ] получится a 3 + 3a 2 b + 3ab 2 + b 3 .

К сожалению, функция Simplify не всегда выдает самый простой результат. В этом случае можно использовать функцию FullSimplify.

В этом примере мы сначала завели переменную poly для хранения многочлена, что позволило в дальнейшем избежать его повторного ввода. Упрощение результата раскрытия скобок не приводит к исходному выражению, которое получается только после применения функции FullSimplify.

Обратите внимание на символ ; (точка с запятой) в конце ввода многочлена. Этот символ препятствует выводу на экран результата обработки программой Mathematica введенного выражения.

Разложение на множители, если это возможно, осуществляет функция Factor. Эта функция может работать и с тригонометрическими выражениями, но в этом случае нужно использовать дополнительную опцию Trig -> True:

Напомним, это многочленом P(x)степени n от переменной x называется выражение вида

Для вынесения общего числового множителя в многочлене за скобки предназначена функция FactorTerms[poly, x], где poly есть многочлен от переменной x. Для получения списка коэффициентов при степенях x, начиная с нулевой, используется функция CoefficientList[poly, x].

Некоторые другие функции для работы с многочленами приведены в следующей таблице.

PolynomialGCD[poly1, poly2] Нахождение наибольшего общего делителя poly1 и poly2
PolynomialLCM[poly1, poly2] Нахождение наименьшего общего кратного
PolynomialQuotient[poly1, poly2, x] Нахождение частного от деления poly1 на poly2
PolynomialRemainder[poly1, poly2, x] Нахождение остатка от деления poly1 на poly2

Пример
Пусть P1(x)= x 4 +2x 3 -4x 2 -5x-6. Определим, является ли число 2 корнем уравнения P1(x)=0. Известно, что многочлен делится без остатка на выражение x-x0, где x0 — корень уравнения. Найдем остаток от деления P1(x) на x-2:

Введение в 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 и др.

Заключение

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

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

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