/symja

Fork of https://bitbucket.org/axelclk/symja_android_library/wiki/Home

Primary LanguageJavaGNU Lesser General Public License v3.0LGPL-3.0

Symja Library - Java Symbolic Math System

Note: this repository contains the Java 8 project. The Android library project can be found in the SymjaAndroid repository.

###Features:

  • arbitrary precision integers, rational and complex numbers
  • differentiation, integration, equation solving, polynomial and linear algebra functions...
  • a general purpose Term Rewriting System and Pattern Matching engine
  • use human readable math expression strings or the internal abstract syntax tree (AST) representation to code in Java.

Online demo:

Quick start

Include the latest symja_java8-YYYY-MM-DD.jar from the Downloads/Release section in your classpath and start coding using parsed input strings or the internal object hierarchy.

With the following command you can run a Symja console from the command line

java -classpath symja_java8-YYYY-MM-DD.jar org.matheclipse.core.eval.Console

###Examples

>>> 24/60
2/5

>>> N(24/60)
0.4

>>> sin(30*degree)
1/2

>>> sin(pi/2)
1

>>> a+a+4*b^2+3*b^2
2*a+7*b^2

>>> solve({x^2-11==y, x+y==-9}, {x,y})
{{x->-2,y->-7},{x->1,y->-10}}

>>> dsolve({y'(x)==y(x)+2,y(0)==1},y(x), x)
{{y(x)->-2+3*E^x}}

>>> integrate(cos(x)^5, x)
-2/3*Sin(x)^3+Sin(x)^5/5+Sin(x)

>>> D(sin(x^3), x)
3*x^2*Cos(x^3)

>>> factor(-1+x^16)
(-1+x)*(1+x)*(1+x^2)*(1+x^4)*(1+x^8)

>>> factor(5+x^12, Modulus->7)
(2+x^3)*(4+x^6)*(5+x^3)

>>> expand((-1+x)*(1+x)*(1+x^2)*(1+x^4)*(1+x^8))
-1+x^16

>>> det({{1,2},{3,4}})
-2

>>> inverse({{1,2},{3,4}})
{{-2,1},
 {3/2,-1/2}}

>>> factorinteger(2^15-5)
{{3,1},{67,1},{163,1}}

>>> refine(abs(n*abs(m)), n<0)
-n*Abs(m)

Getting started

First, you'll need a Java Development Kit compatible with Java 8 or later.

You can find JDK installers at:

If you're unsure how to install the JDK, you can find instructions for all operating systems here:

Pay careful attention to anything about setting up your PATH or CLASSPATH.

Install and open the latest version of the Eclipse development IDE:

BitBucket GIT

a) Fork the Symja repository to use as a starting point.

  • Navigate to https://bitbucket.org/axelclk/symja_android_library/fork in your browser.
  • Click the "Fork" button in the top-right of the page.
  • Once your fork is ready, open the new repository's "Settings" by clicking the link in the menu bar on the left.
  • Change the repository name to the name of your Library and save your changes.

b) Clone your new repository to your Eclipse workspace.

  • Open Eclipse and select the File → Import... menu item.
  • Select Git → Projects from Git, and click "Next >".
  • Select "URI" and click "Next >".
  • Enter your repository's clone URL in the "URI" field. The remaining fields in the "Location" and "Connection" groups will get automatically filled in.
  • Enter your BitBucket credentials in the "Authentication" group, and click "Next >".
  • Select the master branch on the next screen, and click "Next >".
  • The default settings on the "Local Configuration" screen should work fine, click "Next >".
  • Make sure "Import existing projects" is selected, and click "Next >".
  • Eclipse should find and select the symja_android_library automatically, click "Finish".

See also the "Getting started with Symja" document on the BitBucket Wiki pages:

###Contact

If you have any questions about using or developing for this project, shoot me an email!

###License

  • the Symja source code is published under the LESSER GNU GENERAL PUBLIC LICENSE Version 3