![]() ![]() I picked up a new, much, much, much needed book, the Sage Beginner’s Guide, which should give me a basic working knowledge of the program. Known bugs and tasks that need to be completed are posted online and users are free to take on these challenges. Sage, released in 2005 is relatively new compared to other CAS programs and still has a lot of raw edges. However, if you use Sage, you can utilize Maxima even if you only know Python. For example, Maxima is written in Lisp, so you would have to learn some of it to become proficient with the program. ![]() Sage is actually made out of more than 90 different mathematical packages – one of which is Maxima – all integrated under a single interface with which you can communicate using only Python. If you already know Python, you won’t be bogged down learning a new language just to use the software.ģ) Sage includes Maxima. Python is a free programming language and it’s very easy to learn. With Sage, it’s affordable, you don’t have to pay more for newer versions, and the fact that it’s open source means you can actively participate in the development community.Ģ) Sage uses Python. If you want to use it for work, it’s a whopping $2500 for an individual license – and you can only install it on one machine. Mathematica, on the other hand, is proprietary software and a home license costs $300. Sage, in particular, has several benefits over Mathematca:ġ) Sage is open source software, which means you can freely download, modify and distribute its source code. The ability to track the precision can be quite nice and we'd certainly prefer to the conservative estimate that Mathematica gives, rather than an optimistic estimate that returns false precision.After spending some time experimenting with Mathematica, Maxima, and Sage, I’ve finally decided to use Sage as my primary computer algebra system (CAS)! In short, computer algebra systems act like high-performance calculators, and their primary strength lies in the fact that they can manipulate mathematical expressions in symbolic form. To be absolutely clear, though, we are essentially using fixed precision by resetting the precision in this way, though the precision is greater than machine precision. However, if we track the significance by examining $f(x)=2x-3x^2$ near $x=1/3$ using the derivative to obtain a first order approximation, we should expect the number of significant digits to increase! Thus, sometimes it is incumbent on the user to increase the significance manually.īy resetting the precision this way, we can emulate the Maple behavior. (* Out: (2) \approx 0.60206$ and 5 times this yields the $-3.0103$ that we see above. S := s = 2*s - 3*s^2 Īs we examine every fifth iterate, we see that it decreases just about linearly. To see what's going on, consider the following: Clear ![]() In this answer, I mentioned that significance arithmetic can be problematic in iterative dynamics in the neighborhood of a point a super-attractive fixed point where $f'(x_0)=0$, which is exactly the situation here. In truth, you might need to know what you're doing to use it correctly. As we see in this example though, it can be portrayed as a weakness. This is certainly billed as a feature by Wolfram Research. The critical issue in the first example is that Mathematica is using significance arithmetic to track precision. I think this is an example of attempting to paint a weakness of Maple as a strength, though admittedly I haven't used Maple in many years so I don't know if it also has generalized precision tracking. No significant digits are available to display. Hovering over the pink error box tells you exactly what is going on: The user that the results may not be reliable at every step. There is nothing in the computation to warn The last term in the output says that s40=0.×1062, which is not a To imply that this is superior to Mathematica's result while specifically triggering the Mathematica arbitrary precision engine seems disingenuous. I think Maple is simply using machine precision here, e.g.: Nest I read the section of the linked PDF from which this example comes. S := s = 2*s - 3*s^2Īnd Mathematica is capable of far greater precision if necessary: ClearAllīy the way this kind of iteration can be nicely written with Nest: Nest The first example seems to intentionally set Mathematica up to "fail" by specifying insufficient input accuracy. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |