views:

1224

answers:

16

I'm trying to teach some guys who don't know much of programming and need to do lots of math. We need to optimize some functions using derivatives, max, min and some sums.

But then again we are talking of functions, not numbers, so i was going to teach them matlab, but apparently they had a bad experience trying to learn matlab (and proview and other national instrument stuff) and are definitely not going to pay for a license before actually being sure it will work.

So i was wondering if you guys have some very fast solution to allow them to define functions derivate them solve some equations graph the results

I'm looking into some python stuff but i don't know if i will find something that will solve the problem

Edit: i need to go from 7x^2 -> 14x (a lot more complexity but yea symbolically) to optimize some functions around inventorying(simplex, duplex, complex, maybeee some genetic stuff but very very lightweight) and distribution(fish mostly) in big environments(but still pure math, no real data or statistics).
When i meant fast, i meant easy to implement(so the java as a scripting tool using java libraries to graph is kinda hard to implement in comparison to installing python for example). Not as in needing too much efficiency. Im trying all the GNU stuff resembling matlab to see if that fits, but if you have any idea, example or language that could help optimize math functions and run very simple simulations(and visualize them) i would love to check them out.

+1  A: 

http://www.quickmath.com/ maybe? It uses Mathematica as a backend.

MSN
+3  A: 

If you just mean numerical math, I have found python to be a good (and free, fast, easy and cool) environment to work in, especially combined with the numpy (for numerical and array processing) and matplotlib (for plotting) libraries and the ipython front end.

In statistics, R is very popular, and there are other packages such as octave.

if you really want to bend your mind, there is Haskell and other functional languages, which are excellent for problems in the computer-science domain.

If you need symbolic mathematics, it's a bit trickier. Mathematica is popular, but not cheap. There are some free alternatives but I think the state of the art is quite a bit less far along than commercial packages.

Andrew Jaffe
I second R for statistics.
Jamie Penney
+4  A: 

If they're willing to use MATLAB once they've seen it can work, you might try starting with Octave. It's free and is compatible with MATLAB in many cases and can do all of the things you mentioned.

However, if the functions you're working with are complicated, then you'll probably need to know a bit about numerical differentiation.

Scottie T
+8  A: 

You have several options depending on your needs:

  • Octave (matlab clone, free, opensource numerical analysis)
  • Sage (all in one math package)
  • Maxima (mathematica-like - symbolic, algebraic)

There are many others with different features (mathcad clones with the notebook style interface, for instance) but the above three are actively developed, and work very well for what they do.

Adam Davis
I was going to suggest Maxima. I use it pretty often and I like it a lot. I have both Maxima and Mathematica and I tend to use Maxima more. Opens faster and a little easier on system resources.
Casey
A: 

Since the guys you are teaching don't know much programming you probably want to stay away from any kind of strict language, a scripting language is the best way to do this.

My suggestion is Rhino (scripting java with javascript), its comes with a command line interpreter, so they wont have to worry about compiling and all that mess. Plus, since with Rhino you are scripting java, you have access to all the java swing components and can easy make the graphs/displays you are looking for.

Check it out

ForYourOwnGood
+1  A: 

Scilab is a freeware MATLAB clone.

Jim C
+1  A: 

Matlab is quite a good choice and pretty much a de-facto standard. FreeMat is a particularly good one.

artificialidiot
+1  A: 

MS-Excell is actually quite useful for non-programmers to do relatively complex math. It comes with lots of math functions already defined. You can put a function in each cell and see how the output of one feeds into another. It can also do some simple graphing.

I suppose OpenOffice would have the same features.

Chris Nava
:cringe: he's talking about taking derivatives of functions, Excel is nice for really simple stuff but beyond that it's a big kludge.
Jason S
A: 

FORTRAN :)

Jason Miesionczek
+2  A: 

Sage is pretty good, and you can try it online:

http://www.sagenb.org/

David Cournapeau
+1  A: 

I recently found Euler Math Toolbox when I went looking for a less costly replacement for MathCAD.

MathCAD is effectively a live engineering pad that supports descriptive text blocks and does both symbolic calculations (via Maple) and numeric calculation. It does vector and matrix values, can plot, can read and write data files, and is extensible via a plugin mechanism. It historically was marked strongly to engineers, but lately seems to be attempting to compete head on with MatLab on both features and price. It is way more expensive than it used to be.

Euler Math Toolbox does numeric calculations, symbolic calculations, simple 2D and 3D plots, and handles vector and matrix values. It doesn't do all the document formatting tricks that MathCAD can, but it does allow for a text block associated with each action allowing a process to be described and implemented in a readable way. It can exports its workbooks as HTML complete with the plots which is occasionally handy. It is extensible both in a private language and in python. Best of all, it is free (in particular, GPL).

RBerteig
+2  A: 

Mathematica (http://www.wolfram.com/products/mathematica/index.html) is a great tool for solving analytical math problems.

AnnaR
+1  A: 

With Mathematica you can not only perform all kind of symbolic derivation, but you can also plot the result seamlessly. Mathematica is much more intuitive than MATLAB and will let you focus on the mathematical part of the problem rather than on the language you need to express it because the Mathematica language is as easy as similar as it gets to what you'd write on a piece of paper.

emaster70
+1  A: 

If you want to use mathematica but don't want to pay for it, you might try to use wolfram alpha. Everything must be contained in a query though.

Raoul Supercopter
+1  A: 

Maple. I think it's simpler but cheaper than Mathematica

erikkallen
+1  A: 

Did you try WolframAlpha?

Here is your derivative of 7x^2 link (don't know why the link does not work: http://www23.wolframalpha.com/input/?i=derivative+7x^2 ). I'd consider Mathematica if you're going to pay something (student's license doen't cost that much).

There are a lot of alternatives (but I think no one is as good as mathematica):

  • Scilab (or scipy if you want to work in python...)
  • Octave
  • Maxima
  • and so on... other users have posted them...

Have fun! :D

Andrea Ambu