Mathics
Implementation of programming language Wolfram MathematicaMathics is a free computer algebra system, compatible with Mathematica. It is developed by a team led by Jan Pöschko. Mathics is written in Python and uses SymPy and mpmath for calculations and MathJax for results display. It is distributed under GNU GPL and is marketed as a free alternative to Mathematica, usable for educational purposes.
Differences from Mathematica:
 Mathics is lightweight; its capabilities are limited (for example, it lacks functions from graph theory and relativity), but a lot of Mathematica programs work without any modifications;
 Mathics is slower;
 but it has an interactive interface available from several browsers;

Mathics allows to create and display graphics in
.svg
format right in the online interface;  results can be exported to LaTeX (plots are exported using Asymptote including 3D plots);
 new functions can be defined using Python.
Examples:
Hello, World!:
Example for versions Mathics 0.5, Wolfram Mathematica 8.0.4Evaluation of this expression results in a string “Hello, World!” itself; since it is not followed by a semicolon, it will be printed as a separate Out
, which is not always convenient.
"Hello, World!"
Hello, World!:
Example for versions Mathics 0.5, Wolfram Mathematica 8.0.4Print
function outputs its argument(s) to the main output stream. Streams can nest, so for convenience it’s recommended to to use a single stream for all output throughout the program.
Print["Hello, World!"];
Factorial:
Example for versions Mathics 0.5, Wolfram Mathematica 8.0.4This example uses builtin factorial function !
.
Do
is one of the ways to run a loop — it evaluates its first argument for a sequence of numbers defined by the second argument. In this case it’s all values of i
from 0 to 16, inclusive, with step of 1.
Do[Print[i, "! = ", i!] , {i, 0, 16, 1}]
Fibonacci numbers:
Example for versions Mathics 0.5, Wolfram Mathematica 8.0.4Print
always outputs a newline after the output, so to prints the numbers in a single line, one has to accumulate them into a string and print it. <>
is concatenation operator, it works only on strings, so the result of Fibonacci
call must be converted to string explicitly using ToString
function.
msg = "";
Do[msg = msg <> ToString[Fibonacci[i]] <> ", " , {i, 16} ];
Print[msg, "..."];
Fibonacci numbers:
Example for versions Mathics 0.5This example uses Riffle
function which in this case alternates elements of the array containing Fibonacci numbers and the separator string “,”.
StringJoin[Riffle[Map[ToString, Table[Fibonacci[i], {i,16}]], ", "]] <> "..."
Comments
]]>blog comments powered by Disqus
]]>