Question

Discrete mathematics (also finite mathematics) deals with topics such as logic, set theory, information theory, partially ordered sets, proofs, relations, and a number of other topics.

For other branches of mathematics, there are tools that support programming. For statistics, there is R and S that have many useful statistics functions built in. For numerical analysis, Octave can be used as a language or integrated into C++.

I don't know of any languages or packages that deal specifically with discrete mathematics (although just about every language can be used to implement algorithms used in discrete mathematics, there should be libraries or environments out there designed specifically for these applications).

Was it helpful?

Solution

The current version of Mathematica is 7. License costs:

  1. Home Edition: $295.
  2. Standard: $2,495 Win/Mac/Linux PC ($3,120 for Solaris)
  3. Government: $1,996 ($2,496 for Solaris)
  4. Educational: $1,095 ($1,370 for Solaris)
  5. Student: $139.95 (no Solaris)

Above, the Home Edition link says:

Mathematica Home Edition is a fully functional version of Mathematica Professional with the same features.

The current version of Maple is 12. License costs:

  1. Student: $99
  2. Commercial: $1,895
  3. Academic: $995
  4. Government: $1,795

And yes, check out Sage, mentioned above by Thomas Owens.

OTHER TIPS

Mathematica

Mathematica has a Combinatorica package, which though quite venerable at this point, provides a good deal of support for combinatorics and graphs. Commands like this are available: NecklacePolynomial[8, m, Cyclic]; GrayCodeSubsets[{1, 2, 3, 4}]; IntegerPartitions[6]

I'd say Mathematica is your best bet.. even if it does not come with some functionality out of the box, it has very well designed supplementary packages available for it on the net
check out http://www.wolfram.com/products/mathematica/analysis/
you might be interested in the links for Number Theory, Graph Visualizations

I also found Sage. It appears to be the closest thing to Mathematica that's open source, but I'm not sure how well it handles discrete mathematics.

Maple and Matlab would be a couple of Mathematical software packages that may cover part of what you want.

Stanford GraphBase, written primarily by Donald Knuth is a great package for combinatorial computing. I wouldn't call it an extensive code base, but it has great support for graphs and a great deal of discrete mathematics can be formulated in terms of graph theory. It's written in CWEB, which is (IMO) a more readable version of C.

EDIT: It's free.

I love Mathematica and used it to prototype ideas during my PhD in computational physics. However, Mathematica tries to be all things to all people and there are a few downsides:

  • Being a for-profit company, bug-fixes sometimes come in the next major release: you pay.
  • Being a proprietary product, sharing code with non-Mathematica people (the world) is problematic.
  • New features are often half-baked and break when you try to take it beyond the embedded example.
  • It's user base (tutorials, advice, external libraries) is less active than say python's,
  • Mulitpanel figures are difficult to generate; see SciDraw library.

That being said, Mathematica's core functionality is amazing for the following reasons:

  • Its default math functionality is quite robust allowing quick solutions.
  • It allows both functional and procedural programming.
  • One can quickly code & publish in a variety of formats: pdf, interactive website.
  • A new Discrete Book came out.

Bottom line

  • Apple users expecting ease of use, will like Mathematica for its Apple-like, get-up-and-go feel.
  • Linux users wanting extensibility, will find Mathematica frustrating for having its Apple-like, box-welded-shut design.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top