Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

yanom writes "I'm currently a high school student using my TI-84 for mathematics courses. It has all the functionality I need (except CAS), but saying that the hardware is dated is putting it nicely. Waiting 4-5 seconds for a simple function to be graphed on its 96x64 screen just makes me want to hurl it at the wall. Recently, I've begun to notice the absurdity of doing my math homework on a 70's era microchip when I have an i7 machine with Linux within arm's reach. I've begun looking for software packages that could potentially replace the graphing calculator's functionality, including Xcas and Maxima, but both lack what I consider basic calculator functionality — xcas can't create a table of values for a function, and maxima can't use degrees, only radians. So, does anyone know of a good software package to replace my graphing calculator (and maybe provide CAS to boot)?"

If you're not afraid of programming (and it sounds like you're not): R. Gimme more details if you want to know what packages to use for graphing and stuff but installing R is incredibly easy [r-project.org]. At the risk of tooting my own horn, you can read through this post [slashdot.org], the corresponding story and the replies to it. There are a ton of packages for producing graphs. Are you going for accuracy? Beauty? Speed? What?

Lastly, please don't hate on the TI-84. I still have mine as well as a TI-89 and while they were both expensive, they are beautiful and trustworthy devices. Both have outlasted countless other computing machines that have passed through my usage.

While I worked in academia I dealt with both R and matlab. Matlab is more mature, but it isn't free. Most of the code that get passed to you by others is an unreadable amateur code written in matlab. Most other academics wouldn't know how to run anything but matlab. Some advanced stats cannot be easily done in R, unless you want to write it from scratch (good luck with that).

Overall - if you write your own code and don't expect to do anything else with it, R is fine. If you want to work with others, espe

I've got an MSc in CompSci, and I'm now doing a PhD in a biology department. I teach a programming course using Matlab, and I've recently started using R to do my own analysis stuff, mainly because it's popular and I'd like to stay compatible with the rest of the field, as well as use some specialised software that works with it. I have to say, being used to real programming languages (such as C++, I'm not counting Matlab here, although see below) I'm quite frustrated with R. Function names are generally different from other languages and to me at least unintuitive, and the documentation is too often extremely vague and difficult to search.

For example, the function match() returns the offsets of entries in a vector that match a given object. But what exactly constitutes a match, well, according to help(match) that is "to some extent a matter of definition". It goes on to give an example or two, but that definition remains elusive. Or look at this gem from help(as.vector):

Value: For ‘as.vector’, a vector (atomic or of type list). All attributes are removed from the result if it is of an atomic mode, but not in general for a list result. The default method handles 24 input types and 12 values of ‘type’: the details of most coercions are undocumented and subject to change.

First, a "vector of type list" is actually just a list. In R, a vector is an ordered collection of elements all of the same type, while a list is an ordered collection of elements of (possibly) different types. So, by the normal Liskov rules, one could say that a vector is a kind of list in which the types of the elements are all identical. According to the R language definition however, a list is a kind of vector. In practice, lists and vectors are used in rather different ways so their exact relation is not so relevant, and it doesn't make much sense for the help page to throw them together like this. Second, apparently attributes are removed for atomic vectors, but not "in general" for lists. This is a somewhat arbitrary inconsistency, and it leaves the reader to wonder if there are specific attributes or lists for which this doesn't count. But the kicker is in the last sentence: not only are the exact workings of this function explicitly undocumented, they are also subject to change without notice! Note that these are not functions from some obscure package that I pulled off of somebodies blog. They are core language functions, and unfortunately these examples are not exceptional. A colleague of mine recently had his whole analysis suddenly return weird results after a routine update of an add-on package, because someone decided to swap the order of the longitude and latitude arguments to a function for no particular reason.

That's not to say that R is not usable, but in my opinion is is unsuitable for any kind of programming, and perhaps unsuitable for programmers. R is a powerful, extensible system for statistical analysis, with a command line interface. If you consider your text files with R code as reference notes rather than as source files, and if you use R interactively, copy-pasting lines from your notes and checking after every couple of operations that it's actually doing what you think it is, then you can do useful things with R. Looking around me, that is in fact how most people use it, and what I've taken to doing as well, although I can't resist attempting to automate things here and there.

Comparing R to Matlab, in my eyes there's no contest in terms of ease of use. The Matlab help files are professionally written and tell you what you need to know in enough detail to be useful, and that difference alone makes it a lot better. The language itself is also a bit more sensible, at least to me, being designed as an easier-to-use alternative to FORTRAN, where R is based on LISP. I was originally considering moving my course to R from Matlab, since I don't like to teach proprietary software, but now that I have some experience with R I'm pretty sure

In fact the reading of the short document http://cran.r-project.org/doc/manuals/r-release/R-intro.html by Bill Venables is enough to cover over 90% of what most people will ever need.

R is an implementation of the S language by John Chambers [wikipedia.org], for which he got the 1998 ACM Software System award. It is *not* based on LISP in any way even if the FAQ mentions that one difference between the way R and classical S treats global variables can be compared with the way LISP does it. Even if it were, I don't see any problem with this. Your comment relating to people copy-pasting code in the R console mirrors the way I see people use Matlab every day, so I don't see how one can conclude anything from it.

The S language predates Matlab by a few years. It is perfectly fine. Yes it has some quirks compared to C or Java or indeed Matlab, but it has some definite advantages like named arguments for functions, and vector/matrix/data frame handling capabilities that indeed Matlab does not match.

Matlab definitely has a speed advantage but on the other hand R has a fabulous graphics engine. In fact it is in my opinion unmatched except by Splus, another, commercial implementation of S. In fact it is really not fair to compare R, which is a grassroot, free software implementation of a complex language, which is proprietary (and *expensive*)

Matlab has a much more comprehensive library of useful routine for signal and image processing. S has a much more comprehensive library for statistics. This is because it is used by professional statisticians every day.

MATLAB had a free student edition back when I was studying EE (~20 years back), I don't know if this is still the case. Slightly crippled W.R.T. the paid version, but not anything you would miss as an undergrad. Octave is a free version which is *roughly* equivalent to MATLAB, I used this just a couple of years back (when all the MATLAB licenses were being used up by co-workers).

What advanced stats do you have in mind that can be done easily in Matlab but not in R? And I think your assessment of the relative acceptance of the two is out of date. R awareness is growing fast.

The choice really depends on what you are doing. Matlab is industrial strength engineering software. R is a a powerful statistics oriented programming language. In my experience, R's statistical capabilities are a strength relative to Matlab. Data handling (such as reading a csv file without barfing) is much easier in R than in Matlab. Moreover, Matlab is quite expensive. This is fine in a professional setting, but a showstopper if you're a small operation. The poster can get a student license, but why not use Octave or R? The two languages are actually similar in many respects, see David Heibeler's page [umaine.edu].

I know researchers who have ditched Matlab in favor of R/C++. It really depends on what you're doing.

I also give my backing to R. There are other packages which look more like integrated though like Octave [gnu.org] or Euler [sourceforge.net]. You can even get Mathematica [wolfram.com] for Linux but it is somewhat expensive.

Everything you can do in Matlab, you can do better in python. I work in a mathematics department at this moment, so I do know the subject somewhat. If you need some package of a person which is only present in matlab, then porting to python is not that hard, as the syntax can be easily translated to numpy/scipy. For high school students: ipython notebook: http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html [ipython.org]

For pure mathematics, preference goes to Sage in many circles, However, having been on a conference and seeing the new features in ipython notebook, and knowing they just received a 1.15 million grant by the Sloan foundation, it has a bright future.

Nevertheless, the relativity department here uses maple for their theoretical work. Most engineers also, but those always try to solve problems first by throwing money toward it:-) From a 'get your work done fast' and from an engineering point of view, maple/mathematica/matlab are great off course. From a 'control your own work', 'know what you are doing', and 'build for the future', chosing a python solution (ipython, matplotlib, sage,...) is a good bet.

R -- I've heard good things about R, and it's a good tool for certain fields. But if the original poster is interested in going into an Engineering field then different tools are more appropriate (It's better to use the same or similar tools that your colleagues are using).

Matlab -- one of the industry standards for number crunching and plotting.

Octave -- a Matlab clone that is frequently good enough. (My company can't quite afford a Matlab license, and I get by with Octave when I need that functionality).

When they added the protocol://-hiding code to Firefox, they screwed up slightly; before the protocol handler is determined when visiting a URL, copying the URL out of the field will not include the protocol handler under certain conditions. I'm having trouble reproducing it at the moment, but it's stung me exactly like that before.

http://www.sagemath.org/ [sagemath.org][...]Sage is a free open-source mathematics software system licensed under the GPL. It combines the power of many existing open-source packages into a common Python-based interface.

I concur: the Python shell is a very very powerful calculator given that you can define functions in the interpreter. There are many graphics packages for Python; Matplotlib is perhaps the most complete albeit not the symplest. As suggested above, installing Python with the IPython shell, NumPy and SciPy, enables the "PyLab" IPython mode, which is similar to what Matlab would offer in terms of graphics and computation integration.

Simpler to install and learn is perhaps Octave (with plots using GnuPlot), which would behave similarly. Although for the long term, I'd say learning the Python shell is more useful than learning Octave.

Definitely recommend NOT using the interpreter here, unless you're doing simple calculations. Saving your work to a file will allow you to check and edit mistakes. Interpreter is good for testing out functionality, but not for making a product that will ultimately be delivered.

Rather than running Sage in terminal, look at Sage Notebook [sagenb.org]. It is Sage with a web-based GUI. I have not played with it since they went to the new versions that include the OpenID auth; however, the math department at my alma mater host s server and had students use it for class as a replacement for Mathematica in a number of courses. I found it worked well for many things.
You could either run a local copy or use one of the freely accessible online servers.

I'm not sure about Linux, but years ago when I was in school there was a Windows emulator for a lot of different TI calcs. You had to upload your ROM from your own calc, though, so that it wasn't stealing IP: you were basically cloning your TI calc onto your computer. It worked really nicely, and was great for programming in TI Basic and testing stuff out.

Someone should mod a ti89 with newer chipset and android OS. That way teachers will still think your using a standard graphing calculator. My TI89 helped me so much in college, it helped me pass my physics class.

Someone should mod a ti89 with newer chipset and android OS. That way teachers will still think your using a standard graphing calculator. My TI89 helped me so much in college, it helped me pass my physics class.

There is this thing called HP-50g, it has an ARM inside, and, what I found surprising, tends to be actually cheaper than TI's while being more powerful still. It doesn't run Android, but hey, that would eat your batteries like there's no tomorrow.

For that matter, I got through chemical engineering with a basic scientific calculator, supported by a spreadsheet on a PC when necessary. I graduated in 1987, so maybe there's more math involved now, but I suspect there are just more PC-based simulation/analysis packages used so the calculator would work just as well.

This was the first thing I thought of when I saw the post. You need to learn a little of how to use it, but learning Octave is going to be a skill useful for probably at least the next 10-20 years, and something that will give you a good advantage in college as well as the real world jobs market. It uses a very similar language structure as Matlab, which is pretty much the "standard" mathematics program for companies/corporations for precision mathematics.

It's not free, but a student license isn't much more than the high-end calculators (at least at local bookstore prices) and it will do just about anything you can imagine needing up through at least calculus. Even the mobile or browser front ends that use a Wolfram server are damned good, so long as you have network connectivity.

Same here. I use Mathematica 8 Home edition (although on OSX) and always keep a worksheet open on a virtual screen. There are some nice third-party additions for things like bra*ket notation (if you have an interest in physics), various EE tools, and the online data is often handy. The documentation is good as well.

I'm a big fan of HP calculators, having relied heavily in the past on the HP-67, HP-41 (overclocked and with a PPC ROM soldered on), and HP-48, and still have various others in my collection (

The real problem is that he/she is spelling the word "degrees" incorrectly. The correct spelling is "* pi / 180" That is, when you want to type sin(30 degrees), you should instead type sin(30 * pi / 180).

In Forth, that's exactly what you'd do:
: DEGREES PI * 180 /; (or the FP equivalent, of course. Then you just type 15 DEGREES and it does what you think it does.

I agree! Why try to find a better way to do something when there's an out-of-date, inefficient way already invented? I mean, think of all of those useless hours you'll spend learning something new when you could be spending that time reflecting on life, or maybe humming a song!

Yes, for an even better solution why not just point out that you can find the answers on the internet. The point of homework is *not* to find a way out of doing it, and the point of waiting on your TI-84 is *not* so that you will waste your precious time. That title goes to slashdot.

A person with the special kind of lazyness that makes him prefer spending three hours setting a problem up right, once, than spending ten minutes doing it twice.

The program may not break even in time until the job has been done 36 times. But even when the job has been done twice the programming approach has already replaced five minutes of boredom with 175 minutes of satisfying fun.

Not to mention that, if done properly, it keeps doing things correctly rather than s

"instead of waiting 4-5 seconds to do something, i am interested in spending hours of effort to recreate/relearn it on a different platform"

Why not use the "agonizing eternity" of 4-5 seconds to reflect on life, maybe hum a song, or do anything that helps your mind relax before you develop ADD and can ONLY do math?

what karma? it's friday.

I suggest just getting a better calculator.

You tend to get used to something like a calculator with muscle memory and all of that. If you were out of school I would say go for the computer, but while you're in school, and subject to the restrictions of exams, it makes a lot more sense to just stick with using what you're always going to be using.

Matlab. If you planning to go into science (not CS, actual science) ability to code in Matlab will put you head above any of your peers.

I agree. I'm a chemist, and I barely skim the surface of what Matlab can do, but cftool and the general plotting features are second to none. Some of the stuff I see the physchem lot do with it is pretty damn good too.

If the question is "can we do it in Matlab?" the answer is almost invariably "yes".

So, does anyone know of a good software package to replace my graphing calculator

Presumably, you are allowed to take your calculator to exams, but not your Linux box.

So, if you're going to end up needing the calculator for your exams, you might want to live with the suck to be sure you don't find yourself fumbling with a device you've not used in a while.

And, to complete the old man aspect of this comment... luxury, why in my day we used to dream of having a 4-5 second delay in drawing our graphs, we used to have to walk in chest deep snow, up-hill (both ways) to school and back, and do our graphing with rocks and twigs, and send them to the teacher with smoke signals. Of course, I had an onion on my belt, because that was the style in those days...

. . . there are some excellent graphing calculator apps for iOS and I am sure Android has a fair selection as well. They do 2D, 3D and solve algebra.

Also there exist a number of HP emulations but I don't know if there are any for TI.

All of them execute at some Warp factor faster than discrete calculators but there are some issues with using a device different from what the school recommends. My experience with guiding my own spawn around the perils of high school math leads me to believe that HSs (in Canada at least) are more interested in teaching button pushing than math. Many teachers have no interest in math and are perplexed when someone has an issue with something such as a different calculator solution.

Besides that, when using alternatives you may get differing results or even some fantastic errors depending on how well written the code is.

[RANT ON]Sorry, but I gotta say this: CALCULATORS OBSTRUCT THE LEARNING OF MATH

phew, had to get that out

My apologies for the caps but it is a rant after all . . .

There is a place for calculators in engineering courses and in some aspects of learning math but you can get a PhD in Math Science without ever getting near a calculator. I saw my kids get all caught up in the numbers to the detriment of understanding the process and theory. When they started doing courses later on (such as physics, biology, chemistry and sociology-er 'stats'), they had to go back and learn some of the fundamentals that had never been emphasized because of the calculator fixation.

Bottom line: use the TI and don't waste time on alternatives. Use that time to learn the theory.

[RANT OFF]

Well, unless of course you are a real nerd (like the rest of us) and do both: learn the math and are obsessive about calculation tools

"Also there exist a number of HP emulations but I don't know if there are any for TI."

There is a great HP emulator callled Emu48. It emulates the HP 48GX and, with the proper ROM file, the HP50G. Personally I recommend the 50G.

Of course, you will probably have to compile it for Linux. But if you have OS X you can get a ready-to-run app from the app store for less than $10. It uses the actual HP50G ROM (courtesy HP) and it works great. And you can use disk storage in place of a Micro SD card.

The 50G has RPN, algebraic, and "textbook" display and entry modes.

"Sorry, but I gotta say this: CALCULATORS MAY OBSTRUCT THE LEARNING OF MATH"

"There is no place for a calculator in High School math. It adds nothing to the experience."

What do you consider "High School Math"? Where I went to high school (which was admittedly some time ago), if you were in an advanced group you could get as much as 2 semesters of calculus in before graduation.

Sorry, but if I'm working on calculus, and already know my algebra and trig, then I'll go ahead and use the calculator for said algebra and trig.

Er... I included four years of calculus, linear algebra, and number theory in my undergrad degree and never touched a calculator. There was no need. I did use computation tools in some engineering courses but the emphasis was on numbers more than math theory.

Also there exist a number of HP emulations but I don't know if there are any for TI.

Try Andy Graph [google.com]. It fully emulates a TI-82 -> TI-86 calculator. I stopped using my real TI calculator after I got this app.It used to be called Andy-86, but unfortunately doesn't come with TI ROMs anymore.

Slide rules are interesting because they give visual and tactile feedback about the numbers being manipulated. They also prevent the presentation of ridiculous precision when no level of accuracy is available. Plus the added benefit of forcing the user to keep track of magnitude.

Slide rules also have the benefit of working in all weather conditions. And you will never run out of batteries.The down side is having to fight off the hordes of ladies who find you irresistible for using a slide rule.

I sort of took the same track back in the 90s (can't believe all the ancient advice in this Ask Slashdot is still valid)

When I graduated High School and went to an Engineering College, I ditched my TI-84 and got me a nice graduation present of an HP-48GX calculator (which felt like a legacy calculator at the time, and incidentally, is also still top-of-the-line:P )

The pokey HP-48GX made my TI-84 feel FAST! But eventually once I got the hang of RPN I realized that the human input was largely the limiting f

This is not likely to be a popular comment around here, but seriously...

Waiting 4-5 seconds for a simple function to be graphed on its 96x64 screen just makes me want to hurl it at the wall.

If this is a literal problem rather than a joke you may want to look at the reasons why you're so angry about waiting a few seconds. If you can't control this now you will very likely find life becomes quite challenging for you in the long run.

You insensitive clod: some of us have difficulty controlling our anger and turn green easily. Nuclear accidents happen and this is the result.

I have difficulty waiting while a graphing calculator crunches numbers . . . crunch plot, crunch plot, crunch plot ad nauseum. I wouldn't hurl it at the wall because I think they are cute and it isn't their fault they are slow. . .

but puny calculators do make me angry! You won't like my math when I'm angry.

Latency can be a pain for far shorter times than that. It makes one feel disconnected with a device, and interrupts one's train of thought. Experimentation becomes a painful ordeal rather than what should be fun. Imagine if every time you clicked a tab in your browser, you had to wait 1 second before it became active. Yeah, didn't think you'd enjoy that.

My daughter is 17 and in the same boat you are and would have liked to use a PC for her Calculus/Functions but I pushed her back to the calculator (with the help of her teacher).

This isn't a new question; I was in the last year of high school where slide rules were taught - everything you are asking about using a PC program instead of a calculator was given by us for using a calculator instead of a slide rule. I suspect that centuries ago, students complained about having to use an abacus and wanted to use a slide rule instead.

I don't like the TI-8x (here in Ontario, they use the 83+) for a number of reasons, but:1. The Textbooks reference the TI gonkulator and show examples for the calculator.2. Teachers are familiar with it. Don't expect your teacher to be very helpful if you come back and ask something like, "I'm graphing 2sin(x + 45) on xxx under Ubuntu but the zeros don't show up where I think they should - can you help me?" Chances are the teacher will either be unwilling or unable to help you.3. You could bring in a Linux pad or netbook, but I doubt you'll be allowed to bring it into tests for reasons discussed in point 2. Teachers are suspicious of things that can possibly do more than the tools they expect.4. Calculators are incredibly useful tools. It's often easier to pull one out on your desk to test values than bring up a calc program on the PC (especially if you only have one display AND it can be a problem finding real estate on two screens sometimes). They're good things to be familiar with.

Good luck, it's an interesting question and I'm looking forward to how other people answer,

EasyCalc [sourceforge.net] for Palm is quite nice. The most recent version runs on PocketPC, too, but I didn't use that one. Doesn't do CAS, but it is opensource, and you can compile it on your own and tweak it to your heart's content. It also runs on a reasonably modern platform, so you don't have to worry about the CPU being a dinosaur. I think it'll work on pretty much any Palm II and newer device IIRC. I've used it on a monochrome Handspring Visor. Came very handy for advanced strength of materials. I think at that time

The reason I was given in College was they didn't want any devices with memory so that we would need to know our own formulas. To use a TI Calculator, the teacher wanted to verify we wiped it before the tests.

A calculate doesn't have the same form factor as a laptop / desktop. You are going to want to take advantage of that additional space.

A good deal of what you are asking for spreadsheets do. When you need more than that, throw me in as another vote for Sage to create something like a MathCad type environment. Also I agree bc is a good choice for quick and dirty manipulations.

I use Andi Graph. http://dougmelton.com/android/andie-graph/ [dougmelton.com] . It's free if you already own a TI calculator. If you don't, you are morally obligated to purchase a TI calculator so that you can say you've paid for the software. It is exactly like using a real TI-8x calculator except the buttons are not tactile.

It runs faster than a real TI-8x on an HTC One V phone, which is a low-end ICS phone. If you want to run it on a PC, get the Android emulator from Google.

I loved my TI 89 before I left outside one rainy night.qalculate-gtk is my go to calculator on my linux boxes :http://qalculate.sourceforge.net/ [sourceforge.net]Don't let the website design scare you, it's a pretty decent calculator, and handles units very well (e.g. "10kWh to MJ")

I know you specifically mentioned for use with homework, but you'll probably not be allowed to bring a laptop to an exam, and even if you know how to solve the problems, lack of practice using the de-facto 'official' calculator might slow you down.

I assume you are looking for a Linux solution, but Microsoft Mathematics [microsoft.com] really deserves a mention. It's a free-as-in-beer software which has nice graphing features and a smart equation solver. Something between a basic calculator and hardcore tool like MATLAB.

You should check out SAGE: http://www.sagemath.org/ [sagemath.org]
It is based on Python. It is a free open source alternative to Magma, Maple, Mathematica and Matlab, created at the University of Washington. It has a CAS that is on par with Mathematica, but it has a lot of capabilities that no other package has (especially in Algebra).
SAGE is the most scientific package I know of, since everything is open source, so you can actually prove how accurate its results are by analyzing the code. You don't just enter a formu

I'd recommend GNU Octave [wikipedia.org] at http://www.gnu.org/software/octave/ [gnu.org]: it can deal with matrices and thus let you build up tables of functions. It also uses radians as the default angular measure for the trigonometric function, just as Xmaxima/Maxima does on Linux. However, you can easily write a function to convert degrees into radians:
For Octave:
function rads=ofdegrees(deg)
rads=deg/180*pi;

and similarly, in XMaxima, you can do the conversion as a function definition also:indegrees(x):= x/180*pi;

It's great for number theory and discrete math. I primarily use it for cryptography. My TI 86 and TI 89 used to be sitting on my desk at all times but after I discovered gp I don't have any use for them.

Realistically, CAS functionality is easier on paper and do you really need graphing? If you actually know what you are doing, pen, paper and a 15 year old Casio scientific is enough for pretty much everything. Failing that, grab a TI Nspire CAS. Very fast, does more than a TI84 or TI89. I use an HP50g myself but that's a different beast and my primary use case is RPL. Don't use a computer - you can't just grab it, use it and put it down.

A whole 5 seconds for a graph to be plotted. My god, I'm surprised you've been able to keep your temper in check. Having a violent fit and throwing your calculator across the room is the reasonable, adult response.

I know. Next thing you know, they will expect a ride to and from school, even though we had to walk through three miles of snow pulling a sledge with our younger siblings on it and, to make it even harder, it was uphill both ways!

And then when we got to school, we had to warm up our quills over a whale oil stove that smoked so badly that half the class succumbed to carbon monoxide poisening and those that didn't, coughed small pox, diptheria and polio all over the other kids.

Mod parent up; I used TIEMU on my original EEEpc in grad school despite having a TI-89. It requires ROM image, readily available from TI's website, and perfectly emulates. The only gripe I had was the keyboard mapping was strange in some way.

Actually the reason calculators still exist is that you can just use them without booting up, updating, installing etc. Its the same reason you have a television still rather than just using a computer to do the job. If calculators ever disappear, then this planet is doomed.