]]> ]]>

Mathics

Реализация языка программирования Wolfram Mathematica

Mathics — свободная система для выполнения математических вычислений, совместимая с Wolfram Mathematica. Разрабатывается Jan Pöschko, написана на Python с использованием SymPy и Sage для вычислений и MathJax для отображения результатов. Распространяется под лицензией GNU GPL и позиционируется как свободная альтернатива Mathematica для образовательных целей.

Особенности Mathics по сравнению с Mathematica:

  • легковесность; возможности Mathics ограничены (например, не хватает трехмерной графики и функций теории чисел, теории графов и математического анализа), но многие программы на Mathematica работают без изменений;
  • меньшая скорость работы;
  • интерактивный интерфейс, доступный из ряда браузеров;
  • возможность создания и демонстрации графики в формате .svg прямо в онлайн-интерфейсе;
  • экспорт результатов в LaTeX (графики экспортируются при помощи Asymptote);
  • возможность определения новых функций при помощи Python.

Примеры:

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

Пример для версий Mathics 0.4, Wolfram Mathematica 7.0.1.0, Wolfram Mathematica 8.0.4

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

msg = "";
Do[msg = msg <> ToString[Fibonacci[i]] <> ", " , {i, 16} ];
Print[msg, "..."];

Факториал:

Пример для версий 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}]

Hello, World!:

Пример для версий Mathics 0.4, Wolfram Mathematica 7.0.1.0, Wolfram Mathematica 8.0.4

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

"Hello, World!"

Hello, World!:

Пример для версий Mathics 0.4, Wolfram Mathematica 7.0.1.0, Wolfram Mathematica 8.0.4

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

Print["Hello, World!"];

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

Пример для версий Mathics 0.4

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

StringJoin[Riffle[Map[ToString, Table[Fibonacci[i], {i,16}]], ", "]] <> "..."

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам