Как работать с wolfram mathematica

Корпорация "Центр"

Как работать с wolfram mathematica

Цитата:

Ошибка была бы тогда, если бы Математика сказала о завышенной точности полученного результата, несоответствующей действительности.

In[1]:= s = NSum[(Cos[n]/n)^2, ];
In[2]:= Precision[s]
Out[2]= MachinePrecision
In[3]:= Accuracy[s]
Out[3]= 16.1968

И при этом в расчётах по умолчанию PrecisionGoal = 1/2*WorkingPrecision = 1/2*MachinePrecision > 7, а AccuracyGoal = Infinity.
Если Mathematica по какой-то причине достичь заданной точности не может, она должна выдать предупреждение как минимум! А по-хорошему — выдать только правильные знаки!
Да и так ли уж наивно надеяться? По крайней мере, чтобы получить точность 6 значащих цифр, нужно взять всего лишь 10^6 членов ряда:
In[1]:= Sum[N[Cos[n]^2/n^2], ] // N // Timing
Out[1]=

Добавлено:
Всё же вы сами себе противоречите:

Цитата:

Хорошая точность первого числового суммирования (по сравнению со вторым) объясняется тем, что в первом случае мы имеем знакопеременный ряд, а во втором – нет. Так что к своей сумме первый ряд приближается с двух сторон, и по малому числу слагаемых мы можем довольно точно предсказать результат.

Смысл этой фразы — что первый ряд сходится быстрее, поскольку "к своей сумме первый ряд приближается с двух сторон, и по малому числу слагаемых мы можем довольно точно предсказать результат". Или я совсем разучился понимать русский язык?

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

Прежде всего, мы должны различать точность представления числа и величину ошибки метода получения какого-то результата по сравнению с действительным значением. Для краткости первую величину будем называть точностью числа, а вторую величину – точностью результата (данного метода). Когда вы пользуетесь такими функциями, как Precision или Accuracy, вы получаете точность числа. Точность же результата Математика, как правило, не контролирует. Например, вам нужно вычислить, чему равна функция f1[x]

f1[x_] := Cos[1] — (Sin[1 + x] — Sin[1 — x])/(2 x);

при h = 10^-12. Число, которое вы в результате получайте, будет всегда представлено с машинной точностью. Но это не значит, что результат, который вы хотите получить, имеет точность даже близкую к машинной. В конкретном случае получаем результат с большой ошибкой.

f1[10^-12] // N
0.0000122709

вместо нуля, хотя полученное число имеет машинную точность.

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

f2[x_] := (Cos[1] (x — Sin[x]))/x;

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

Цитата:

И как это соотносится с тем, что вы писали ранее?

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

Цитата:

при этом в расчётах по умолчанию PrecisionGoal = 1/2*WorkingPrecision

И что из этого? Математика не заявляет, что PrecisionGoal всегда будет достигнута.

Цитата:

AccuracyGoal = Infinity

Это значит, что AccuracyGoal не принимается в расчет, принимается в расчет только PrecisionGoal.

Цитата:

Если Mathematica по какой-то причине достичь заданной точности не может, она должна выдать предупреждение как минимум!

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

Теперь о вашем втором замечании.

Мне кажется, вы просто не внимательно читаете. Придется себя цитировать. С самого начала при постановке проблемы я сказал:

Цитата:

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

Одно дело – сходимость ряда, т.е. скорость приближения частных сумм к своему пределу, а другое дело – возможность точно оценить ошибку того или иного метода суммирования. Поскольку первый ряд незнакопостоянный, его частные суммы аппроксимируют точное значение с двух сторон. Во втором же случае частные суммы дают оценку только снизу. Это обстоятельство объясняет успешность Математики стандартным методом вычислить первую сумму и возникновение трудностей при вычислении второй суммы.

Цитата:

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

Хм. Действительно:

Цитата:

Even though you may specify PrecisionGoal->n, the results you get may sometimes have much less than n-digit precision.

Хотя я бы не сказал, что такое отношение к пользователю со стороны Wolfram Research мне нравится, и что оно вообще корректно! По сути, программа оказывается "чёрным ящиком", выдающим непредсказуемый результат безо всяких гарантий! За что же деньги плачены?

Цитата:

Хотя я бы не сказал, что такое отношение к пользователю со стороны Wolfram Research мне нравится, и что оно вообще корректно! По сути, программа оказывается "чёрным ящиком", выдающим непредсказуемый результат безо всяких гарантий! За что же деньги плачены?

Давайте попробуем разобраться с этой проблемой. Конечно, когда наш общий друг покупает один килограмм черной икры, он хочет знать, продали ему 1 ± 0.5 кг или же 1 ± 0.005 кг икры. Аналогичным образом, когда Математика отвечает на наш вопрос результатом равным 1.0, мы хотим знать, означает ли это 1 ± 0.5 или 1 ± 0.005. Но строго говоря, это будет второй вопрос. Например, при вычислении f1[10^-12] Математика отвечает на ваш первый запрос выполнением математических преобразований в том порядке, в каком вы ей указали. Следует ли при этом заставлять Математику каждый раз отвечать и на второй вопрос? Я бы поставил вопрос шире. Следует ли вообще требовать от программ, подобных Математике, чтобы каждый раз они отвечали на два вопроса? Если мы задумаемся над этой проблемой, то, скорее всего, откажемся от нашего требования по следующим причинам.

Во-первых. Осуществление нашего требования превратит обычные вычисления в вычисления, принадлежащие так называемой интервальной математике. Интервальная математика это отдельная ветвь математики и, соответственно, программироваться она должна как отдельный пакет. Заставлять Математику (для простоты будем здесь говорить конкретно о Математике) выполнять все обычные вычисления как вычисления в интервальной математике будет ничем неоправданной тратой ресурсов.

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

В-третьих. Когда возникает вопрос об оценке точности результата, у математика имеются достаточно средств, чтобы получить ответ на этот вопрос. Например, при вычислении f1[10^-12] мы можем задать точность промежуточных вычислений

N[f1[10^-12],$MachinePrecision]
9.005038431135662*10^-26

При вычислении бесконечной суммы – посчитать конечные суммы и сравнить с первоначальным результатом. При вычислении интеграла – увеличить точность промежуточных вычислений и сравнить с первоначальным результатом.

В-четвертых. Ответственность за возникновение ошибок результата лежит также и на пользователе. На пользователе лежит ответственность задавать Математике вопросы в корректной форме. В данном контексте это означает, что пользователь должен произвести аналитические преобразования своего вопроса, чтобы максимально его упростить по форме, а потом уже просить Математику численно его оценить. Другими словами, математик должен задавать вопрос в форме f2, а не в форме f1, чтобы получить точный результат.

1.) Integrate[Sin[(m*Pi*x)/L]*Sin[(n*Pi*x)/L], <x, 0, L>]/.m->n даёт Indeterminate, хотя
Integrate[Sin[(n*Pi*x)/L]*Sin[(n*Pi*x)/L], <x, 0, L>] даёт корректный ответ
(L*(2 — Sin[2*n*Pi]/(n*Pi)))/4.
То есть, в первом случае потерян ответ для случая m=n.

2.) Регрессионный баг (появился в Mathematica 6.00 — 6.02, в 5.2 его не было):
Integrate[Exp[a*x]*Cos[b*x], <x, 0, Infinity>]
даёт в Mathematica 6.02 ответ
If[b &#92;[Element] Reals, -(a/(a^2 + b^2)),
Integrate[E^(a*x)*Cos[b*x], <x, 0, Infinity>, Assumptions -> Im[b] < 0 || Im[b] > 0]]

(потеряно условие Re[a] < 0)
Для сравнения, при указании, что a и b — действительные числа, ответ правильный, и содержит условие a < 0:
Integrate[Exp[a*x]*Cos[b*x], <x, 0, Infinity>, Assumptions -> <a &#92;[Element] Reals, b &#92;[Element] Reals>]
приводит к ответу
If[a < 0, -(a/(a^2 + b^2)),
Integrate[E^(a*x)*Cos[b*x], <x, 0, Infinity>, Assumptions -> Element[b, Reals] && a >= 0]]

Ещё стоит привести результат Mathematica 5.2 для общего случая (без указания, что a и b — действительные числа):
If[b &#92;[Element] Reals && Re[a] < 0, -(a/(a^2 + b^2)),
Integrate[E^(a*x)*Cos[b*x], , Assumptions -> Re[a] >= 0 || b &#92;[NotElement] Reals]]

Легко видеть, что Mathematica 5.2 даёт ответ, содержащий все необходимые условия, а версия 6 важнейшее из них опускает.

Цитата:

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

Всё-таки я считаю, что в ситуации, когда Mathematica не способна сама надёжно оценивать точность получаемого результата, она должна как минимум выдавать предупреждение об этом! Подобных ситуаций не так уж и много, как я понимаю. В конкретном случае NSum[(Cos[n]/n)^2, ] неточность возникает потому, что Mathematica неправильно выбирает метод суммирования, как вы сами показали выше. Так что это вполне можно считать багом: в первую очередь Mathematica должна искать возможность применить надёжные методы, которые быстро дают результат с контролируемой точностью. Если же таких методов нет, она может использовать менее надёжный метод, точность которого контролировать не может, и при этом обязательно выдавать предупреждение! То, что она этого не делает, действительно способно наносить моральный и материальный ущерб пользователю! Пользователь не обязан глубоко разбираться в математических методах проверки точности результата (которых в других случаях может не быть или они могут быть труднодоступны для изучения по самым разным причинам, хотя бы из-за отсутствия времени). Он платит хорошие деньги за то, чтобы получить ожидаемый им красивый и правильный результат, используя простые команды! Необходимость перепроверять каждый результат несколькими способами, порой трудными для изучения, сводит на нет преимущества такой системы для огромного большинства пользователей, и низводит её до языка программирования высокого уровня, а не пакета символьной математики! Фактически, наличие функций, выдающих без предупреждения результат непредсказуемой точности (а уж тем более, просто неверный) вводит в заблуждение пользователя относительно возможностей пакета! Я даже больше скажу: лучше, чтобы Mathematica вообще не выдавала ответ в тех случаях, когда она не может дать его точно, чем выдавать ответ с неизвестной ошибкой!

Любопытно, что в функции Integrate, наоборот, исправлен баг с этой функцией в Mathematica 6.0.2:
Версия 6.02 под Windows правильно считает интеграл расходящимся (хоть и забывает про сходимость при a=0):
In[1]:= Integrate[Sin[x]*Erf[a*x], ]
Integrate::idiv: Integral of Erf[a x] Sin[x] does not converge on <0, Infinity>.
Out[1]= Integrate[Erf[a x] Sin[x], ]

А в версии 5.2 под Windows (а также в версиях 6.02 и 5.2 под MacOSX 10.5.2) выдаётся ложный ответ без каких-либо предупреждений:
In[1]:=Integrate[Sin[x]*Erf[a*x],]
Out[1]=If[Re[a] > 0 && Re[a^2] > 0, E^(-1/(4*a^2)),
Integrate[Erf[a*x]*Sin[x], , Assumptions -> Re[a^2] <= 0 || Re[a] <= 0]]

Например, проверим, как она берёт интеграл
Integrate[Sin[(m*Pi*x)]*Sin[(n*Pi*x)], x]
Вот результат:
Sin[(m — n)*Pi*x]/(2*(m — n)*Pi) — Sin[(m + n)*Pi*x]/(2*(m + n)*Pi)

А теперь возьмём этот же интеграл при m=n:
Integrate[Sin[(n*Pi*x)]*Sin[(n*Pi*x)], x]
Получаем:
x/2 — Sin[2*n*Pi*x]/(4*n*Pi)

Очевидно, подставив в первый из результатов m=n, мы получаем вовсе не второй, а неопределённость 0/0:
Indeterminate

Вот мы и обнаружили баг, даже не устанавливая Mathematica!

Добавлено:
Совершенно аналогичным образом можно убедиться, что Mathematica вообще "не видит" нулей (не умеет выделять условия, при которых функция вырождается)! Это — действительно крупная недоработка, особенно если учесть, что разработчики претендуют на то, что в программе по умолчанию всегда реализуется именно наиболее общий подход к задаче, а не частные случаи! Примеры ниже могут показаться безобидными, но в более сложных случаях ответ будет становиться просто непредсказуемым!

Попробуйте интегралы (для их взятия вам таблицы не потребуются!):

Integrate[E^((a-b)*x),x]
ответ:
E^((a — b)*x)/(a — b)
неверен при a=b (легко проверить самостоятельно).

. думаю, список нетрудно продолжить самостоятельно.

Добавлено:
И ещё один замечательный пример из той же серии, но уже с определённым интегралом:

Integrate[(a — b)^x, ] /. a -> b
ответ:
Indeterminate

Даже двоечник решит задачу правильно, а Mathematica не справилась.

Однако
Integrate[(a — b)^x, ] /. a -> b
даёт правильный ответ 0. Вот и пример недоделанных алгоритмов.

Цитата:

Трудно остановиться:
Integrate[Cos[a x]/Sin[x], x] /. a -> 1
ответ
ComplexInfinity

Еще хуже вот что. Даже предельный переход порождает мусор

Limit[Integrate[Cos[a z]/Sin[z], z], a -> 1]

то есть от z больше ничего не зависит. вместо

Log[Sin[z]] (* = Integrate[Cos[z]/Sin[z], z] *)

. "Вот такие, понимашь, политицские расколбасы"

VM and GEMM architect
Co-founder, CEO, Mathematical Director

Limit[Integrate[Exp[a z] Sinh[z], z], a -> 1]

In[1] := Integrate[Exp[1 z] Sinh[z], z]

Limit[Integrate[Exp[z] Sinh[a z], z], a -> 1]

Корпорация "Центр"

In[1] := Integrate[Exp[z] Sinh[1 z], z]

Цитата:

Давайте упростим ещё дальше:
Integrate[E^(a*x), x]
ответ:
E^(a*x)/a
неверен при a=0

А вот что дает мой любимчик Derive

Limit[Integrate[Cos[a z]/Sin[z], z], a -> 1]

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

Limit[Assuming[a > 0 && z > Pi/2 && z < Pi,
Integrate[Cos[a t]/Sin[t], ]], a -> 1]

получим выражение эквивалентное Log[Sin[z]].

Limit[Assuming[a > 0 && z > Pi/2 && z < Pi,
Integrate[Cos[a t]/Sin[t], ]], a -> 1]

Цитата:

Что-то уж очень сложный ты пример приводишь. По-хорошему, следуя твоей логике и объяснениям Daniel Lichtblau (Wolfram Research), всё должно работать правильно при следующей записи:
Limit[Integrate[Cos[a*t]/Sin[t], ], a -> 1]
Однако на моём компьютере MathKernel после 23 минут работы над этой задачей отожрал 80Мб оперативки, и я его вырубил.

Правильно, должно, но только при определенных ограничениях на интервал (m,n). Так, если внутри этого интервала лежит хоть один нуль синуса, то интеграл расходится. А если мы хотим получить ответ побыстрее, то нужно "помочь" прогамме указав как можно больше информации о параметрах. Поэтому мой пример выполняется около минуты, а не полчаса. Вообще то глупо требовать от этой, равно как и любой другой программы интеллектуальных способностей, это всего лишь инструмент и голову он никогда не заменит.

Wolfram Mathematica

Wolfram Mathematica (обычно называемая Mathematica ) — это современная техническая вычислительная система, охватывающая большинство областей технических вычислений, включая нейронные сети , машинное обучение , обработку изображений , геометрию , науку о данных , визуализацию и другие. Система используется во многих технических, научных, инженерных, математических и вычислительных областях. Он был разработан Стивеном Вольфрамом и разработан компанией Wolfram Research из Шампейна, штат Иллинойс . [8] [9] Язык Wolfram Languageэто язык программирования, используемый в системе Mathematica. [10]

Содержание

Интерфейс ноутбука [ править ]

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

Интерфейс, разработанный Теодором Греем [11] в 1988 году, предоставляет графический пользовательский интерфейс (GUI), который позволяет создавать и редактировать документы записной книжки [12], содержащие программный код с выделением синтаксиса , форматированный текст вместе с результатами, включая набор математических вычислений. , графика, компоненты графического интерфейса, таблицы и звуки. Весь контент и форматирование можно создавать алгоритмически или редактировать в интерактивном режиме. Поддерживаются стандартные возможности обработки текста, включая многоязычную проверку орфографии в реальном времени.

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

Инструменты Presenter поддерживают создание презентаций в стиле слайд-шоу, которые поддерживают интерактивные элементы и выполнение кода во время презентации.

Среди альтернативных интерфейсов — Wolfram Workbench, интегрированная среда разработки (IDE) на основе Eclipse, представленная в 2006 году. Она предоставляет инструменты разработки кода на основе проектов для Mathematica, включая управление версиями, отладку, профилирование и тестирование. [13] Существует плагин для IDE на основе IntelliJ IDEA для работы с кодом Wolfram Language, который в дополнение к подсветке синтаксиса может анализировать и автоматически заполнять локальные переменные и определенные функции. [14] Ядро Mathematica также включает интерфейс командной строки. [15] Другие интерфейсы включают JMath, [16] на основе GNU Readline и WolframScript. [17], который запускает автономные программы Mathematica (с аргументами) из командной строки UNIX.

Высокопроизводительные вычисления [ править ]

Возможности высокопроизводительных вычислений были расширены за счет введения упакованных массивов в версии 4 (1999) [18] и разреженных матриц (версия 5, 2003), [19], а также за счет использования библиотеки GNU Multi-Precision для оценки высокой точности. арифметика.

Версия 5.2 (2005 г.) добавила автоматическую многопоточность, когда вычисления выполняются на многоядерных компьютерах. [20] В этот выпуск включены оптимизированные библиотеки для ЦП. [21] Кроме того, Mathematica поддерживается сторонним специализированным оборудованием для ускорения, таким как ClearSpeed . [22]

В 2002 году была представлена gridMathematica, позволяющая выполнять параллельное программирование на уровне пользователя в гетерогенных кластерах и многопроцессорных системах [23], а в 2008 году технология параллельных вычислений была включена во все лицензии Mathematica, включая поддержку технологии grid, такой как Windows HPC Server 2008 , Microsoft Compute Cluster Server и Солнечная сетка .

Поддержка аппаратного обеспечения CUDA и OpenCL GPU была добавлена ​​в 2010 году. [24] Кроме того, начиная с версии 8, он может генерировать код C , который автоматически компилируется системным компилятором C, таким как GCC или Microsoft Visual Studio .

В 2019 году была добавлена ​​поддержка компиляции кода языка Wolfram Language в LLVM . [25]

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

Возможности Wolfram Mathematica: [26]

  • Библиотеки математических элементарных функций и специальных функций, включая функции теории чисел и комбинаторные функции
  • Поддержка комплексных чисел , арифметики произвольной точности , интервальной арифметики, чисел с цензурированными данными с неопределенностью , временных данных, временных рядов и данных на основе единиц измерения, а также символьных вычислений
  • Инструменты для работы с матрицами и данными, включая поддержку разреженных массивов и ассоциативных массивов
  • 2D и 3D инструменты для визуализации и анимации данных, функций и географии
  • Решатели для систем уравнений, диофантовых уравнений , обыкновенных дифференциальных уравнений (ODE), нелинейных дифференциальных уравнений в частных производных (PDE), дифференциально-алгебраических уравнений (DAE), дифференциальных уравнений с запаздыванием (DDE), стохастических дифференциальных уравнений (SDE) и рекуррентных соотношений
  • Анализ методом конечных элементов, включая создание 2D и 3D адаптивных сеток
  • Числовые и символьные инструменты для дискретного и непрерывного исчисления, включая непрерывные и дискретные интегральные преобразования
  • Ограниченная и неограниченная локальная и глобальная оптимизация
  • Библиотеки многомерной статистики, включая подгонку, проверку гипотез, а также вычисления вероятностей и ожиданий для более чем 160 распределений.
  • Расчеты и моделирование случайных процессов и очередей и неконтролируемыемашины обучения инструменты для данных, изображений и звуков в том числе искусственных нейронных сетей
  • Инструменты для интеллектуального анализа текста, включая регулярные выражения, семантический анализ, анализ тональности и извлечение фактов Инструменты интеллектуального анализа данных, такие как кластерный анализ , выравнивание последовательностей и сопоставление с образцом
  • Вычислительная геометрия в 2D, 3D и более высоких измерениях и 2D геометрия в стиле Евклида.
  • Библиотеки для обработки сигналов, включая вейвлет- анализ звуков, изображений и данных
  • Фильтры и меры обработки звука, включая распознавание звука
  • Инструменты для обработки 2D и 3D изображений[27] и морфологической обработкиизображений, включая распознавание изображений.
  • Инструменты для визуализации и анализа ориентированных и неориентированных графиков
  • Инструменты для криптографии, включая симметричные и асимметричные ключи, хеширование и криптографию на основе эллиптических кривых
  • Инструменты для финансовых расчетов, включая облигации, аннуитеты, деривативы, опционы и т. Д. и символьные тензорные функции
  • Инструменты для автоматического доказательства теорем
  • Библиотеки линейных и нелинейных систем управления
  • Комплект микроконтроллера для указания символических спецификаций, на основе которых он автоматически генерирует и развертывает код для автономной работы в микроконтроллерах.
  • Инструменты для вычислительной химии, включая расчеты длины и угла связи, а также базы данных химических свойств
  • Язык программирования, поддерживающий процедурные , функциональные , объектно-ориентированные конструкции и параллельное программирование.
  • Набор инструментов для добавления пользовательских интерфейсов в вычисления и приложения
  • Инструменты для создания и развертывания облачных вычислительных приложений и сервисов
  • Инструменты для подключения к библиотекам динамической компоновки (DLL), Java , .NET , C ++ , Fortran , CUDA , OpenCL и системам на основе протокола передачи гипертекста (HTTP)
  • Использование как « лингвистического ввода произвольной формы » ( пользовательский интерфейс на естественном языке ) [28][29], так и языка Wolfram Language в записной книжке при подключении к Интернету

Развертывание [ править ]

Есть несколько способов развертывания приложений, написанных на Wolfram Mathematica:

  • Mathematica Player Pro — это исполняемая версия Mathematica, которая запускает любое приложение Mathematica, но не позволяет редактировать или создавать код. [30] версия, Wolfram CDF Player , предназначена для выполнения программ Mathematica , которые были сохранены в формате вычисляемых документов (CDF). [31] Он также может просматривать стандартные файлы Mathematica, но не запускать их. Он включает плагины для распространенных веб-браузеров в Windows и Macintosh.
  • webMathematica позволяет веб-браузеру действовать как интерфейс для удаленного сервера Mathematica. Он разработан для обеспечения удаленного доступа к пользовательскому приложению через браузер на любой платформе. Его нельзя использовать для предоставления полного доступа к системе Mathematica. Из-за ограничений пропускной способности интерактивная трехмерная графика не полностью поддерживается в веб-браузере.
  • Код языка Wolfram Language можно преобразовать в код C или в автоматически созданную DLL.
  • Код языка Wolfram Language может быть запущен в облачной службе Wolfram как веб-приложение или как API либо на серверах, размещенных в Wolfram, либо в частной установке Wolfram Enterprise Private Cloud.

Соединения с другими приложениями, языками программирования и службами [ править ]

Связь с другими приложениями происходит через протокол, называемый Wolfram Symbolic Transfer Protocol (WSTP). Он обеспечивает связь между ядром Wolfram Mathematica и внешним интерфейсом, а также обеспечивает общий интерфейс между ядром и другими приложениями. [32] Wolfram Research бесплатно распространяет комплект разработчика для связывания приложений, написанных на языке программирования C, с ядром Mathematica через WSTP . Используя J / Link . [33], программа на Java может попросить Mathematica выполнить вычисления; аналогично, программа Mathematica может загружать классы Java , манипулировать объектами Java и выполнять вызовы методов. Аналогичная функциональность достигается с.NET / Link , [34], но с программами .NET вместо программ Java. Другие языки, которые подключаются к Mathematica, включают Haskell , [35] AppleScript , [36] Racket , [37] Visual Basic , [38] Python , [39] [40] и Clojure . [41]

Mathematica поддерживает создание и выполнение моделей Modelica для моделирования систем и подключается к Wolfram System Modeler.

Доступны ссылки на многие сторонние программные пакеты, включая OpenOffice.org Calc , [42] Microsoft Excel , [43] MATLAB , [44] [45] [46] R , [47] SageMath (который также может вызывать Mathematica), [48] [49] [50] [51] Singular , [52] Wolfram SystemModeler и Origin . [53] Он также связан с игровым движком Unity и OpenAI Gym . Математическими уравнениями можно обмениваться с другими вычислительными или наборными программами черезMathML .

Mathematica включает интерфейсы к базам данных SQL (через Java Database Connectivity JDBC), [54] MongoDB и может обращаться к базам данных графов RDF через SPARQL . Mathematica также может устанавливать веб-службы из описания на языке описания веб-служб (WSDL). [55] [56] Он может получать доступ к данным HDFS через Hadoop . [57]

Mathematica может вызывать различные облачные сервисы для получения или отправки данных, включая ArXiv , Bing , ChemSpider , CrossRef , Dropbox , Facebook , Federal Reserve , Fitbit , Flickr , Google (Analytics, Calendar, Contacts, Custom search, Plus, search, translate) , Instagram , LinkedIn , MailChimp , Microsoft Translator , Mixpanel , OpenLibrary , OpenPHACTS , PubChem , PubMed, Reddit , RunKeeper , SeatGeek , SurveyMonkey , Twilio , Twitter , Wikipedia и Yelp . [58]

Mathematica может собирать данные в реальном времени через связь с LabVIEW , [59] из потоков финансовых данных, [60] и напрямую с аппаратных устройств через GPIB (IEEE 488), [61] USB , [62] и последовательные интерфейсы. [63] Он автоматически обнаруживает и считывает данные с устройств, следующих по протоколу HID USB. Он может считывать данные напрямую с ряда датчиков Vernier, совместимых с Go! Link. [64]

Mathematica может читать и писать в общедоступные блокчейны ( Биткойн , Эфириум и ARK). [65]

Он поддерживает импорт и экспорт более 220 форматов данных, изображений, видео, звука, систем автоматизированного проектирования (САПР), географических информационных систем (ГИС), [66] документов и биомедицинских форматов.

Вычислимые данные [ править ]

Wolfram Mathematica включает коллекции тщательно отобранных данных, предназначенных для использования в вычислениях. Mathematica также интегрирована с Wolfram Alpha , онлайн- механизмом ответов на вопросы о вычислениях , который предоставляет дополнительные данные, некоторые из которых обновляются в режиме реального времени. Некоторые из наборов данных включают астрономические, химические, геополитические, языковые, биомедицинские и погодные данные в дополнение к математическим данным (например, узлам и многогранникам). [67]

Прием [ править ]

В 1989 году компания BYTE включила Mathematica в число победителей премии BYTE Awards «Отличие», заявив, что это «еще одно прорывное приложение для Macintosh . оно может позволить вам усвоить алгебру и математические вычисления, которые казались невозможными для понимания из учебника». [68]

Изучение и внедрение Mathematica [ править ]

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

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

Элементарное введение в язык Wolfram дает краткое руководство по основам. В то время как быстрое введение для студентов-математиков и быстрое введение для программистов содержит подробности для соответствующих пользователей.

Wolfram U также предоставляет бесплатные и платные учебные пособия по более глубокому использованию приложения.

История версий [ править ]

Wolfram Mathematica построена на идеях более ранней программы Symbolic Manipulation Program (SMP) Коула и Вольфрама . [69] [70] Название программы «Математика» было предложено Стивену Вольфраму соучредителем Apple Стивом Джобсом, хотя Вольфрам думал об этом раньше и отверг его. [71]

Wolfram Research выпустила следующие версии Mathematica: [72]

  • 1.0 — 23 июня 1988 г. [73][74][75][76]
  • 1.1 — 31 октября 1988 г.
  • 1.2 — 1 августа 1989 г. [76][77]
  • 2.0 — 15 января 1991 г. [76][78]
  • 2.1 — 15 июня 1992 г. [76]
  • 2.2 — 1 июня 1993 г. [76][79]
  • 3.0 — 3 сентября 1996 г. [80]
  • 4.0 — 19 мая 1999 г. [76][81]
  • 4.1 — 2 ноября 2000 г. [76]
  • 4.2 — 1 ноября 2002 г. [76]
  • 5.0 — 12 июня 2003 г. [76][82]
  • 5.1 — 25 октября 2004 г. [76][83]
  • 5.2 — 20 июня 2005 г. [76][84]
  • 6.0 — 1 мая 2007 г. [85][86]
  • 7.0 — 18 ноября 2008 г. [87]
  • 8.0 — 15 ноября 2010 г. [88]
  • 9.0 — 28 ноября 2012 г. [89]
  • 10.0 — 9 июля 2014 г. [90]
  • 10.1 — 30 марта 2015 г. [91]
  • 10.2 — 14 июля 2015 г. [92]
  • 10.3 — 15 октября 2015 г. [93]
  • 10,4 — 2 марта 2016 г. [94]
  • 11.0 — 8 августа 2016 г. [95]
  • 11.0.1 — 28 сентября 2016 г. [96]
  • 11.1 — 16 марта 2017 г. [97]
  • 11.1.1 — 25 апреля 2017 г. [98]
  • 11.2 — 14 сентября 2017 г. [99]
  • 11.3 — 8 марта 2018 г. [100]
  • 12.0 — 16 апреля 2019 г. [101]
  • 12.1 — 18 марта 2020 г. [102]
  • 12.1.1 — 17 июня 2020 г. [103]
  • 12.2 — 16 декабря 2020 г. [104]

См. Также [ править ]

Ссылки [ править ]

  1. ^ Вольфрам, Стивен (23 июня 2008 г.), Mathematica исполняется 20 лет сегодня , Вольфрам , получено 16 мая 2012 г.
  2. ^«История быстрых изменений в системе Mathematica» . Проверено 16 декабря 2020 .
  3. ^«Празднование первой четверти века Mathematica» . Дата обращения 11 августа 2015 .
  4. ^Программная инженерия системы Mathematica — Документация Wolfram Mathematica 9 . Reference.wolfram.com. Проверено 23 марта 2015.
  5. ^«Системные требования Mathematica 12 и доступность платформы» . Дата обращения 16 декабря 2020 .
  6. ^Raspberry Pi включает бесплатную программу Mathematica The Verge
  7. ^"Wolfram Mathematica" . Дата обращения 11 августа 2015 .
  8. ^Стивен Вольфрам: Простые решения; Программное обеспечение Mathematica, являющееся иконоборцем физиков, решает сложные задачи , BusinessWeek, 3 октября 2005 г.
  9. ^«Свяжитесь с Wolfram Research» . Дата обращения 11 августа 2015 .
  10. ^"Новый язык программирования Стивена Вольфрама: может ли он сделать мир вычислимым?" . Журнал Slate . Дата обращения 11 августа 2015 .
  11. ^Патент US8407580 Google Patent Search
  12. ^ Hayes, Брайан (1990-01-01). «Мысли о системе Mathematica» (PDF) . Пиксель .
  13. ^"Wolfram вводит рабочую среду IDE для Mathematica" . Macworld . 21 июня 2006 . Дата обращения 11 августа 2015 .
  14. ^Плагин Mathematica для IntelliJ IDEA
  15. ^Использование документации по текстовому интерфейсу на wolfram.com
  16. ^"JMath: интерфейс для Mathematica на основе GNU Readline" . Дата обращения 11 августа 2015 .
  17. ^"Список каталогов" . Проверено 18 апреля 2019 .
  18. ^Математическое программное обеспечение дает новые возможности; Новые программы автоматизируют такие утомительные процессы, как решение нелинейных дифференциальных уравнений и преобразование единиц . Агнес Шанли, Химическая инженерия , 1 марта 2002 г.
  19. ^Mathematica 5.1: дополнительные функции делают программное обеспечение подходящим для специалистов по исследованию операций. Автор: МанМохан С. Содхи, OR / MS Today , 1 декабря 2004 г.
  20. 21-я ежегодная награда Editors ‘Choice Awards , Macworld, 1 февраля 2006 г.
  21. ^«Система Mathematica настроена на использование преимуществ ЦП, когда они доступны» . Проверено 13 апреля 2020 .
  22. ^«Платы ускорителей ClearSpeed ​​Advance, сертифицированные Wolfram Research; математические сопроцессоры позволяют пользователям системы Mathematica повысить производительность в четыре раза» . Дата обращения 11 августа 2015 .
  23. ^gridMathematica предлагает решение для параллельных вычислений от Денниса Селлерса, MacWorld, 20 ноября 2002 г.
  24. ^"Поддержка CUDA и OpenCL добавлена ​​в Mathematica 8" . Проверено 13 апреля 2020 .
  25. ^"Создать код LLVM" . Проверено 13 апреля 2020 .
  26. ^"Центр документации языка и системы Wolfram" . Дата обращения 11 августа 2015 .
  27. Обзор: Mathematica 7. Технические вычислительные мощности становятся все более популярными Macworld, январь 2009 г.
  28. ^"Революция лингвистики свободной формы в математике" . Дата обращения 11 августа 2015 .
  29. ^«Лингвистический ввод в свободной форме» . Дата обращения 11 августа 2015 .
  30. ^Mathematica Player Pro — новая система доставки приложений для Mathematica www.gizmag.com
  31. ^«Формат вычисляемого документа (CDF) для интерактивного содержимого» . Дата обращения 11 августа 2015 .
  32. ^Протокол символической передачи Wolfram (WSTP)
  33. Mathematica 4.2.Архивировано 21ноября 2007г. Чарльзом Зейтеромна Wayback Machine , Macworld , 1 ноября 2002 г.
  34. ^.NET / Link : .NET / Link — это набор инструментов, который объединяет Mathematica и Microsoft .NET Framework.
  35. ^"mathlink: напишите пакеты Mathematica на Haskell — Hackage" . Дата обращения 11 августа 2015 .
  36. ^ С.Кратки. «MathLink для AppleScript» . Дата обращения 11 августа 2015 .
  37. ^"MrMathematica: Вызов Mathematica из схемы" . Дата обращения 11 августа 2015 .
  38. ^«Mathematica для ActiveX — из архива библиотеки Wolfram» . Дата обращения 11 августа 2015 .
  39. ^"erocarrera / pythonika" . GitHub . Дата обращения 11 августа 2015 .
  40. ^«PYML (интерфейс Python Mathematica) — из архива библиотеки Wolfram» . Дата обращения 11 августа 2015 .
  41. ^"Clojuratica — Home" . Clojuratica.weebly.com . Проверено 16 августа 2013 .
  42. ^CalcLink Lauschke Consulting
  43. ^«Mathematica Link для Excel: использование возможностей Mathematica в Excel» . Дата обращения 11 августа 2015 .
  44. ^ R. Menon, Sz. Хорват. «MATLink» . Дата обращения 11 августа 2015 .
  45. ^ Бен Barrowes (10 июня 2010). "Mathematica Symbolic Toolbox для MATLAB – Версия 2.0" . Дата обращения 11 августа 2015 .
  46. ^«MaMa: вызов MATLAB из Mathematica с помощью MathLink — из архива библиотеки Wolfram» . Дата обращения 11 августа 2015 .
  47. ^ Документация RLink Mathematica
  48. ^ Гургулхон, Эрик; Бейгер, Михал; Манчини, Марко (21 декабря 2014 г.). «Тензорное исчисление с открытым исходным кодом: проект SageManifolds». Журнал физики: Серия конференций . 600 : 012002. arXiv : 1412.4765 . Bibcode : 2015JPhCS.600a2002G . DOI : 10.1088 / 1742-6596 / 600/1/012002 . S2CID119136759 .
  49. ^«Интерфейс для Mathematica — Справочное руководство Sage v7.4: Интерфейсы интерпретатора» . doc.sagemath.org . Проверено 8 января 2017 .
  50. ^"Использование Mathematica в Sagemath | LSUMath" . www.math.lsu.edu . Проверено 8 января 2017 .
  51. ^ Pruim, Randall (5 мая 2010). "Может ли Sage заменить Maple и Mathematica?" (PDF) . Колледж Кальвина . Дата обращения 8 января 2016 .
  52. ^Мануэль Кауэрс и Виктор Levandovskyy из Johannes Kepler University Linz в Австрии
  53. ^* Интерфейсные ссылки Origin и программное обеспечение Mathematica.Архивировано 20 марта 2007 г. в Wayback Machine Electronic Design.
  54. ^Mathematica 5.1 Доступные , базы данных Journal, Jan 3, 2005.
  55. ^Математические веб-службы: W3C Note 1 августа 2003 г.
  56. ^Введение в веб-службы , Учебное пособие по веб-службам Mathematica
  57. ^"шаданан / HadoopLink" . GitHub . Дата обращения 11 августа 2015 .
  58. ^Документация на языке Wolfram Language Подключение службы Yelp
  59. ^Mathematica Ссылка на Labview BetterView Consulting
  60. ^DDFLink Lauschke Consulting
  61. ^GITM SourceForge. Обратите внимание, что проект GITM в настоящее время (по состоянию на 2014-08-03) не имеет загружаемых артефактов и, по-видимому, неактивен, поэтому поддержка GPIB для Mathematica может фактически отсутствовать.
  62. ^BTopTools Коммерческий интерфейс для USB-устройств.
  63. ^"Аппаратное обеспечение взаимодействия с Mathematica — из архива библиотеки Wolfram" . Дата обращения 11 августа 2015 .
  64. ^Вернье и Mathematica
  65. ^«Работа с блокчейнами» . Проверено 15 апреля 2020 .
  66. ^Mathematica 6 Labs Обзор Cadalyst 1 февраля 2008
  67. ^"Научно-технические данные" , Mathematic Guide , Wolfram Research, архивируются с оригинала на 10 мая 2012 , получен 16 May 2012
  68. ^"The BYTE Awards" . БАЙТ . Январь 1989 г. с. 327.
  69. ^Математика, Вселенная и Стивен: автор Mathematica вызвал в этом году вихрь научных споров, когда после более чем 10 лет исследований опубликовал свой трактат о способности простых структур создавать непредсказуемые сложные модели. (Ученый года 2002) (Стивен Вольфрам) , Тим Стадт, R&D, 1 ноября 2002 г.
  70. Перейти ↑A Top Scientist’s Latest: Math Software , Эндрю Поллак, The New York Times , 24 июня 1988 г.
  71. Вольфрам, Стивен (6 октября 2011 г.), Стив Джобс: несколько воспоминаний , Вольфрам Альфа , получено 16 мая 2012 г.
  72. ^«Последняя версия Mathematica и краткая история изменений» . Дата обращения 11 августа 2015 .
  73. Mathematica: The Scrapbook , Wolfram, заархивировано из оригинала 18 мая 2012 г. , извлечено 16 мая 2012 г.
  74. ^"Журнал Mathematica: Том 9, Выпуск 1: Бюллетени новостей" . Дата обращения 11 августа 2015 .
  75. ^Суперкомпьютерные Pictures Решить После нерастворимые , Джон Марков, 30 октября 1988 года.
  76. ^ abcdefghijk Насер М. Аббаси. «Немного истории Mathematica» .
  77. ^ ВMathematica 1.2 добавлены новые параметры графики: обновление также обещает одновременные операции Элинор Крейг, MacWeek , 25 июля 1989 г.
  78. ^Mathematica + 283 функции = Mathematica 2.0 , Рейнс Коэн, MacWeek , 15 января 1991 г.
  79. ^Новая версия Mathematica , Машиностроение , 1 июня 1993 г.
  80. ^"Архив новостей Wolfram" . Wolfram.com . Проверено 16 августа 2013 .
  81. ^Mathematica 4.0 Чарльз Seiters, Macworld , 1 октября 1999 года.
  82. ^Mathematica 5.0 добавляет: Ровно через 15 лет после первого выпуска Mathematica компания Wolfram Research выпустила Mathematica , PC Magazine , 3 сентября 2003 г.
  83. ^Сложение веб-сервисов системы Mathematica 5.1; Mathematica 5.1 обеспечивает улучшения по сравнению с версией 5.0, которые значительно несоразмерны для обновления .1. Питер Кофе, eWeek , 6 декабря 2004 г.
  84. ↑ ВерсияMathematica — 64-разряднаяверсия , MacWorld UK, 13 июля 2005 г.
  85. ^Сегодня Mathematica заново изобретена — Блог Стивена Вольфрама
  86. ^Mathematica 6: Феликс Грант обнаруживает, что версия 6 программного обеспечения для символьной математики Wolfram Research действительно оправдывает его ожидания. Научные вычисления, 2007.
  87. ^Выпущена сегодня система Mathematica 7.0! — Блог Стивена Вольфрама
  88. ^"Блог Стивена Вольфрама: Mathematica 8!" . Проверено 18 ноября 2010 года .
  89. ^"Блог Стивена Вольфрама: Сегодня выпущена система Mathematica 9!" . Проверено 28 ноября 2012 года .
  90. ^«Блог Стивена Вольфрама: запуск Mathematica 10 — с более чем 700 новыми функциями и безумным объемом исследований и разработок» . Проверено 9 июля 2014 года .
  91. ^"Новости Wolfram Research» Теперь доступна система Mathematica 10.1! " . Дата обращения 11 августа 2015 .
  92. ^«Последняя версия Mathematica и краткая история изменений» . Дата обращения 11 августа 2015 .
  93. ^«Последняя версия Mathematica и краткая история изменений» . Дата обращения 16 декабря 2020 .
  94. ^«Последняя версия Mathematica и краткая история изменений» . Дата обращения 16 декабря 2020 .
  95. ^"Блог Стивена Вольфрама: Сегодня мы запускаем версию 11!" . Дата обращения 8 августа 2016 .
  96. ^«Последняя версия Mathematica и краткая история изменений» . Дата обращения 16 декабря 2020 .
  97. ^«Блог Стивена Вольфрама: Продолжение разработки R&D: запуск версии 11.1» . Проверено 16 марта 2017 года .
  98. ^«Последняя версия Mathematica и краткая история изменений» . Дата обращения 16 декабря 2020 .
  99. ^«Блог Стивена Вольфрама: это еще один впечатляющий релиз! Сегодня запускается версия 11.2» . Проверено 14 сентября 2017 года .
  100. ^«Блог Стивена Вольфрама: Рев в 2018 году с еще одним большим выпуском: запуск версии 11.3 Wolfram Language & Mathematica» . Проверено 8 марта 2018 .
  101. ^«Блог Стивена Вольфрама: сегодня запускается версия 12! (И это большой скачок для Wolfram Language и Mathematica)» . Дата обращения 16 апреля 2019 .
  102. ^«Блог Стивена Вольфрама: Менее чем за год, так много нового: запуск версии 12.1 Wolfram Language & Mathematica» . Дата обращения 18 марта 2020 .
  103. ^«Последняя версия Mathematica и краткая история изменений» . Дата обращения 17 июня 2020 .
  104. ^«Запуск версии 12.2 Wolfram Language & Mathematica» .

Внешние ссылки [ править ]

  • СМИ из Wikimedia Commons
  • Учебники из Викиучебников
  • Данные из Викиданных

Mathematics

Do basic arithmetic. Work with fractions, percentages and similar fundamentals. Solve place value and word problems.

Do basic arithmetic:

Do exact arithmetic with fractions:

Find roots of and expand, factor or simplify mathematical expressions—everything from polynomials to fields and groups.

Solve an equation:

Factor a polynomial:

Simplify an expression:

Compute integrals, derivatives and limits as well as analyze sums, products and series.

Compute an integral:

Calculate a derivative:

Solve an ordinary differential equation:

Compute the properties of geometric objects of various kinds in 2, 3 or higher dimensions. Explore and apply ideas from many subfields of geometry.

Compute properties of a geometric figure:

Plot a conic section and identify its type:

Compute properties of a polyhedron:

Solve differential equations of any order. Examine solutions and plots of the solution families. Specify initial conditions to find exact solutions.

Solve a linear ordinary differential equation:

Specify initial values:

Solve a nonlinear equation:

Visualize functions, equations and inequalities. Do so in 1, 2 or 3 dimensions. Make polar and parametric plots.

Plot a function:

Plot a region satisfying multiple inequalities:

Work with various kinds of numbers. Check for membership in larger sets, such as the rationals or the transcendental numbers. Convert between bases.

Compute a decimal approximation to a specified number of digits:

Convert a decimal number to another base:

Perform trigonometric calculations and explore properties of trigonometric functions and identities.

Корпорация "Центр"

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

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