Mathomatic™ is a portable, command-line
CAS and calculator software,
written entirely in the
C programming language.
It is free and open source software (FOSS),
published under the GNU Lesser General Public License
(LGPL version 2.1),
and has been under continual development since 1986.
The software can symbolically solve, simplify, combine, and compare
algebraic equations, simultaneously performing generalized standard, complex number, modular, and polynomial arithmetic, as needed.
It does some calculus and is very easy to compile/install, learn, and use.
Mathomatic consists of a text-mode symbolic math application and library suitable for desktops, servers, handhelds, and embedded systems. It compiles and runs under any operating system with a C compiler, including Linux, Unix, Mac OS X, and MS-Windows (using MinGW). An operating system is not required for running the symbolic math library, which is Mathomatic's symbolic math engine, and there are no dependencies other than the standard C libraries. Other programming languages able to link to C libraries should should have no problem using Mathomatic's symbolic math engine. The mathematical results should always be correct, simple, and beautiful; if not, please report them to the developers. This is the official Mathomatic website, where you can download any version of Mathomatic, read the documentation, learn by example, and get free support. The current version number is "15.8.4", released May 10, 2012; you can try it online, download it, or view the changelog. Powered by DisqusWhat's New:Feel free to comment below, it will show up down there in full, and above here truncated. The Freecode project page for Mathomatic offers email subscriptions to new release notifications. Notifications are also available on Twitter, just follow me. May 17, 2012:Today I created a new web page full of the new Mathomatic logo. Feel free to use these logos for anything related to Mathomatic or for linking to this website. May 9, 2012:Note that each time I make a major improvement, errors in functionality creep in. So far, no wrong answers, but definitely Mathomatic has been set back many times due to my improvements in the past. So I won't be making any more risky improvements for a while. It is much more important that Mathomatic be a stable, reliable, and time-tested product, that will enthral and educate, and never let you down. Sort of like mathematics itself. I have made a ton of important improvements recently, but nothing as far reaching or dangerous as the tasks listed in misc/ideas.txt. I think Mathomatic is becoming an easy to use and worthy program. April 30, 2012:"solve 0" and "solve verify 0" work now in the development version. "solve verify 0" will tell you if the equation is an identity, while "solve 0" simply solves the current equation for zero, which should never fail. "solve all verify 0" will verify that all entered equations are identities. Here we previously loaded all trig equation complex exponential equivalents by loading "tests/trig.in". File "trig.in" does not require m4:
12−> ; Let's simplify some trig identities without using m4:
12−> sin^2+cos^2=1
#13: sin^2 + cos^2 = 1
13−> elim all
Eliminating variable cos using equation #2...
Eliminating variable sin using equation #1...
1 1
î·(––––––––– − (ê^(î·x))) ((ê^(î·x)) + –––––––––)
(ê^(î·x)) (ê^(î·x))
#13: (–––––––––––––––––––––––––^2) + (–––––––––––––––––––––––^2) = 1
2 2
13−> simplify
#13: 1 = 1
13−> solve verify 0
Solving equation #13 for 0 with identity verification...
#13: 0 = 0
Equation is an identity.
13−> tan=sin/cos
sin
#14: tan = –––
cos
14−> elim all
Eliminating variable tan using equation #3...
Eliminating variable cos using equation #2...
Eliminating variable sin using equation #1...
1
î·(––––––––– − (ê^(î·x)))
î·(1 − (ê^(2·î·x))) (ê^(î·x))
#14: ––––––––––––––––––– = –––––––––––––––––––––––––
((ê^(2·î·x)) + 1) 1
((ê^(î·x)) + –––––––––)
(ê^(î·x))
14−> solve verify 0
Solving equation #14 for 0 with identity verification...
#14: 0 = 0
Equation is an identity.
14−> csc=1/sin
1
#15: csc = –––
sin
15−> elim all
Eliminating variable csc using equation #6...
Eliminating variable sin using equation #1...
2·î·(ê^(î·x)) 2
#15: ––––––––––––––––– = –––––––––––––––––––––––––––
((ê^(2·î·x)) − 1) 1
(î·(––––––––– − (ê^(î·x))))
(ê^(î·x))
15−> solve verify 0
Solving equation #15 for 0 with identity verification...
#15: 0 = 0
Equation is an identity.
15−> sec=1/cos
1
#16: sec = –––
cos
16−> elim all
Eliminating variable sec using equation #5...
Eliminating variable cos using equation #2...
2·(ê^(î·x)) 2
#16: ––––––––––––––––– = –––––––––––––––––––––––
((ê^(2·î·x)) + 1) 1
((ê^(î·x)) + –––––––––)
(ê^(î·x))
16−> solve verify 0
Solving equation #16 for 0 with identity verification...
#16: 0 = 0
Equation is an identity.
16−> cot=1/tan
1
#17: cot = –––
tan
17−> elim all
Eliminating variable cot using equation #4...
Eliminating variable tan using equation #3...
î·((ê^(2·î·x)) + 1) ((ê^(2·î·x)) + 1)
#17: ––––––––––––––––––– = –––––––––––––––––––––
((ê^(2·î·x)) − 1) (î·(1 − (ê^(2·î·x))))
17−> solve verify 0
Solving equation #17 for 0 with identity verification...
#17: 0 = 0
Equation is an identity.
17−> 1+tan^2=sec^2
#18: 1 + tan^2 = sec^2
18−> elim all
Eliminating variable sec using equation #5...
Eliminating variable tan using equation #3...
î·(1 − (ê^(2·î·x))) 2·(ê^(î·x))
#18: 1 + (–––––––––––––––––––^2) = –––––––––––––––––^2
((ê^(2·î·x)) + 1) ((ê^(2·î·x)) + 1)
18−> solve verify 0
Solving equation #18 for 0 with identity verification...
#18: 0 = (4·(ê^(2·î·x))) − (((ê^(2·î·x)) + 1)^2) + ((1 − (ê^(2·î·x)))^2)
Equation is an identity.
18−> solve 13-18 verify 0 ; Now verify them all again to show new solve command usage.
Solving equation #13 for 0 with identity verification...
#13: 0 = 0
Equation is an identity.
Solving equation #14 for 0 with identity verification...
#14: 0 = 0
Equation is an identity.
Solving equation #15 for 0 with identity verification...
#15: 0 = 0
Equation is an identity.
Solving equation #16 for 0 with identity verification...
#16: 0 = 0
Equation is an identity.
Solving equation #17 for 0 with identity verification...
#17: 0 = 0
Equation is an identity.
Solving equation #18 for 0 with identity verification...
#18: 0 = (4·(ê^(2·î·x))) − (((ê^(2·î·x)) + 1)^2) + ((1 − (ê^(2·î·x)))^2)
Equation is an identity.
18−>
April 29, 2012:Last night I released a new stable release of Mathomatic version 15.8.3, thanks to all the good feedback and good bug reports I have been getting, thank you everybody! The latest release seems good, except today I was adding trigonometry identity tests to make sure they are being simplified to identities properly. I discovered "solve 0" no longer works: 1−> a=b #1: a = b 1−> solve 0 Invalid equation number. Warning: No equations to solve. Command usage: solve ["verify"] [equation-number-range] ["for"] variable or "0" 1−> solve for 0 #1: 0 = b − a 1−> thanks to the new ability to solve multiple equations at once with a single solve command, it is expecting an equation-number-range. So use "solve for 0" for now; I will fix that and possibly add a verify option in the near future, that will verify the equation is an identity automatically when using "solve verify 0". Progress today, I think, because all the trig identity tests I added today passed perfectly in the current release! March 24, 2012:Released today is hopefully the last version (15.8.2) of Mathomatic I will be releasing, unless I receive some feedback. Recent previous versions collected the powers of anything that wasn't an absolute value. I have determined that it is more correct to collect powers without any exceptions, for maximum simplification and stability (and good looks, too!). Expanding powers of anything raised to an absolute value power ((x^2)^.5) is now prevented instead, in version 15.8.2. Absolute value simplification and solving seem to work well now, so no further changes are needed. Although complex numbers will always have possible manipulation problems, because 1/i correctly simplifies to -i. This will flip the sign of intermediate or final results sometimes. This rarely happens, especially after the recent fix to imaginary unit division, but is possible. February 15, 2012:Recently created, published, and looking for reviews is Mathomatic for Android, brought to you by the same people that developed Robot Command. Mathomatic for Android is only $1.99, and does everything the free m4 Mathomatic application can do, plus it has a GUI with even nicer plotting. If you have an Android, check this out, it is available on the Android Market by Google. So far, Mathomatic for Android looks very slick and usable for the initial version 1.0! It is the best programming job I have seen in my lifetime! Thanks go out to all of our hard working programmers, who must get every line of code 100% correct, or the program will not work. January 24, 2012:Today I updated the MS-Windows Mathomatic to the latest code, and managed to create a nice, new logo for Mathomatic using Inkscape ("icons/mathomatic.svg"), so I can make it any size I want to. Here is the new logo:
Tell me what you think. Anyone may use this logo for anything related to the Mathomatic computer algebra system, it is now my official logo for Mathomatic. I have other logos, but this is the best and the most cheery. November 13, 2011:Some new and improved examples were created today: Fun with the golden ratio and Fibonacci numbers, and Differentiation examples. November 3, 2011:Mathomatic version 15.7.0 for MS-Windows was released this afternoon, with a bug fix. The "set finance" option wasn't working at all, due to a bug in the MinGW standard C library. Please people, we need donations and for you to spread the word about Mathomatic. And don't forget to email me about any bugs you come across. I will be very grateful. November 2, 2011:Mathomatic version 15.7.0 was released today. Many improvements, including a new, easy to read and properly ordered changelog, containing all of the important Mathomatic news, always accurately dated, newest news first. October 2, 2011:An equation-number-range may be specified on the calculate command command-line now, implemented in the Mathomatic development source code. This allows multiple equation spaces to be calculated at once! This feature will be made permanent in the next release 15.7.0, along with many other fixes and neat new features. August 25, 2011:Available immediately, Mathomatic can accept any function strings, like f(x+y), by typing "set special_variable_characters ()" at the beginning of a session. It copies the entire function string into a variable name, so no operations can be performed on it, but it can exist and be displayed in any expression where everything else works. This is just added as a temporary measure, until I get better and add more function support to Mathomatic. Otherwise any function entry gives the error: "Named functions currently not implemented, except when using m4." Trig and many other standard functions are handled with m4 Mathomatic (the program named rmath), which is usually included in any recent Mathomatic package. August 7, 2011:Mathomatic version 15.6.3 was accepted into Debian unstable today. I am a Debian Maintainer now! August 4, 2011:A lot of small improvements, fixes, and additions accumulated for the Mathomatic distribution over the last two months, today I am releasing them as version 15.6.3. Mathomatic should now be more pleasant to use and maintain, and be more reliable, informative, and portable. If you find any of this not to be true, please email the maintainer or post your problem with Mathomatic below. July 20, 2011:Victoria Family Robotics is pleased to announce "robot command", version 0.0.2: a game-like, first-person 3-D robot simulation for the PC that can stack toy blocks in a simulated blocks world, while helping to teach math and robot programming. May 15, 2011:The Mathomatic MS-Windows port now works in color! Thanks to Doug Snead for the cool MinGW code. …Please see the changelog for details on the above changes, or click on the following button to go to the Mathomatic downloads page:
Places to go:
|
||||||