Wolfram Mathematica
- Русское название:
- Математика
- Дата создания:
- 1988
- Создан под влиянием:
- Повлиял на:
- Парадигма:
- Типизация:
- Принятые расширения файлов:
- .nb, .m
- Реализации и версии (свернуть все | развернуть все):
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 7.0.1.0, Wolfram Mathematica 8.0.4После ввода коэффициентов определяем переменную y — квадратное уравнение с заданными коэффициентами. Так как x не определено, в уравнении оно останется обычной переменной (например, Print[y] выведет запись полученного уравнений c + b x + a x^2
с подставленными коэффициентами a, b и c). Функция Reduce
вычисляет значения переменных, при котором указанное условие будет истинным. Условие в данном случае — квадратное уравнение, а переменная — x.
a = Input["Input a", 0];
b = Input["Input b", 0];
c = Input["Input c", 0];
y = a*x^2 + b*x + c;
Print[Reduce[y == 0]];
Факториал:
Пример для версий Mathics 0.4, Wolfram Mathematica 7.0.1.0, Wolfram Mathematica 8.0.4Используется встроенная функция вычисления факториала !
. Do
— один из способов реализации циклов; выполняет первый аргумент для всех значений, заданных вторым аргументом, а именно: для всех i
от 0 до 16 с шагом 1.
Do[Print[i, "! = ", i!] , {i, 0, 16, 1}]
Числа Фибоначчи:
Пример для версий Mathics 0.4, Wolfram Mathematica 7.0.1.0, Wolfram Mathematica 8.0.4Print
обязательно завершает вывод переносом строки, поэтому для того, чтобы вывести все числа Фибоначчи в одной строке, их нужно накопить в переменной msg
и вывести ее. <>
— оператор конкатенации; он работает только с явными строками, поэтому результат вызова Fibonacci
нужно явно перевести в строку функцией ToString
.
msg = "";
Do[msg = msg <> ToString[Fibonacci[i]] <> ", " , {i, 16} ];
Print[msg, "..."];
Hello, World!:
Пример для версий Mathics 0.4, Wolfram Mathematica 7.0.1.0, Wolfram Mathematica 8.0.4Функция Print
выводит свои аргументы в основной выходной поток. Потоки могут быть вложенными, и для удобства копирования результатов лучше пользоваться для вывода одним потоком.
Print["Hello, World!"];
Hello, World!:
Пример для версий Mathics 0.4, Wolfram Mathematica 7.0.1.0, Wolfram Mathematica 8.0.4В этом случае создается временная строковая переменная. В конце строки нет символа “;”, и значение этой переменной выводится отдельным Out
, что не всегда удобно.
"Hello, World!"
Факториал:
Пример для версий Wolfram Mathematica 8.0.4Используется рекурсивное определение факториала. Обратите внимание на то, что при определении функции ее аргумент дополняется символом _
.
Fact[n_] := If[n == 0, 1, Fact[n - 1]*n];
For[i = 0, i <= 16, i++, Print[i, "! = ", Fact[i]]];
Числа Фибоначчи:
Пример для версий Mathics 0.4Этот пример использует функцию Riffle
, которая в данном случае перемежает элементы массива чисел Фибоначчи копиями строки “,”.
StringJoin[Riffle[Map[ToString, Table[Fibonacci[i], {i,16}]], ", "]] <> "..."
Факториал:
Пример для версий Wolfram Mathematica 8.0.4Символу f[x] ставится в соответствие список (List[…]) первых x натуральных чисел, генерируемый функцией Range[x], в которой головная часть List заменяется на Times при помощи функции Apply[head, expr], записанной здесь как head@@expr.
Здесь использованы две парадигмы программирования, реализованные в Wolfram: во-первых, с помощью шаблонного выражения x_ число, вписанное в квадратные скобки, подставляется в соответствующее место справа от знака отсроченного присваивания := . Во-вторых, функциональная парадигма позволила избавить код от громоздких процедурных конструкций и придти к похожей на математическую записи.
fact[x_]:=Times@@Range[x];
Комментарии
]]>blog comments powered by Disqus
]]>