Feature: A Modest Proposal
Posted by Nick on 5 May 2000, 01:24 GMT
Our next somewhat late (*g*) feature is written by Ben Kalafut. It talks about what TI should include in their next calculator (or calculator update :P). In my opinion, he makes some good points and some I don't quite agree with (or they aren't vital to the functionality of said calculator), but it's still worth a read and some frank discussion of opinions. So let's do just that. Many (many) people have complained about TI's "actions," especially since after Hardware 2.00 and AMS v2.03 came out for the 68K calculators. Talk amongst yourselves - as usual, I'll try to offer any input I can. I have owned three different TI calculators, and I have run into frustrating "brick walls" in the use and programming of each one. I use my calculator for math and sciences; I have no real interest in gaming or getting my calculator to make sound or bit-mapped graphics. Yet sometimes, the calculators are just as useful as a Gameboy. Even the "powerful" TI-89 and 92 don't contain what I would like to see in a graphics calculator/computer algebra system. Symbolic manipulation is a nice feature, certainly, but programming all but the most elementary routines becomes time-consuming or impossible. Texas Instruments should probably put out programs to perform Fourier, Laplace, and Z transforms, partial fraction decomposition, tensor mathematics, functional analysis, etc, but they do not do so, and apparently, no third parties are interested. The problem, in my opinion, is that Texas Instruments considers the graphics calculator to be merely an educational tool. This is evident in the software applications which are written, and the nature of their press releases and advertisements. TI does not seem to recognize the (potential) utility of their calculators to researchers, college students, mathematicians, and professionals. Some improvements which I would like to see on a hypothetical calculator which TI would put out to replace the 89 are: 1) True updates. I expected a boost in functionality between AMS 1 and 2.03, and all that seemed to occur was an improvement in memory allocation. Extending the function library from time to time would be nice. 2) A faster processor. The 68000 can certainly handle numerics well, but seems to bog down on all but the simplest symbolic operations. 3) Ability to define a function with multiple outputs. For example, a Gaussian elimination decomposition should return both the reduced matrix and the "O" matrix by which one may multiply the original to change it to the reduced form. 4) A true 3-D engine. It is nice to be able to enter functions of two variables, but one should be able to view three-dimensional plots obtained from numerical methods of problem solving, view three-dimensional data plots, or plot space curves parametrically. 5) Vector field plots, Poincar‚ return maps, improved slope and direction field applications. 6) LaPlace and inverse LaPlace transforms. 7) Partial fraction decomposition. 8) Improved ability to program new symbolic functions. The "part" function is a step in the correct direction but is neither sophisticated nor specific enough to be truly useful. 9) Ability to handle tensors. 10) Ability to enter strings, matrices, lists, etc as elements of lists or cell arrays 11) Ability to overload user-defined functions, so that they may return either symbolic or numeric answers, for example. Also, the ability to input fewer than the specified number of parameters to a function and not get errors. These are just a few suggestions. I'm sure that those who are more advanced in mathematics than I have many more. I don't expect TI to come out with a calculator that does everything that Maple or Mathematica do, but by focusing too much on secondary education it is neglecting a potential market. TI or a third party should also put out a compiled language for the calculators. I'm impressed with TI-GCC, but TI, having a team of professional programmers, could probably develop the standard libraries and even more powerful interaction with the calculator's built-in features. TI also has the muLisp language, and could possibly release a version for graphics calculators. Another thing that has struck me is the poor quality of programs in the math and science archives. A lot of the programs do things that the calculators already do! Additionally, many have poor documentation and terse interfaces. User-friendliness is not a major concern. Neither is standardization or development of syntaxes which make sense to anybody but the user. For the sake of consistency I have been writing my programs so that they either state, clearly, what should be input (rather than specifying a variable name), or in the case of those for the 89 which take inputs from the command line, do so in an order and syntax which follows that of TI's built- in libraries. The graphics calculator has great potential as a mathematical tool in the classroom, the lab, and even in the professional world, but it will never realize that potential until Texas Instruments chooses not to focus strictly on the secondary education market and programmers (perhaps at the expense of gaming) develop better, more powerful, more consistent mathematics and science software.
|
|
|
The comments below are written by ticalc.org visitors. Their views are not necessarily those of ticalc.org, and ticalc.org takes no responsibility for their content.
|
|
Re: Feature: A Modest Proposal
|
Adam Thayer
(Web Page)
|
What you are asking isn't exactly modest, but I do see your point. However, on the point of functions being able to return multiple values is one that probably has been adressed before. Unfortunately, I doubt this will change. Since most computers and design paradigms are allready one result per function (thus the whole basis of what a 'function' is), it would be a pain in the butt to write a new compiler than would handle this multiple return value system. (At least for TI), however, if TI were to write functions that returned lists of stuff instead of a value, or a matrix instead of a list, that would achieve the same result, wouldn't it?
|
|
5 May 2000, 05:19 GMT
|
|
|
|
|
Re: Re: Feature: A Modest Proposal
|
Bennett Kalafut
|
Once again, this was kind of a rant written in a hurry (and I didn't give it a title)
From our own functions, we can return lists, but TI's do not. I think that Matlab's design with regard to this is nice. The function outputs a vector of values (and is, thus, a true function) and the user can use as many or as few as he wants, storing them to separate values.
I tried this on the TI-89 a while ago using vectors and lists. A function which returns a list can be executed in a program as
foo(bar)->a
but not
foo(bar)->{a,b}
While the problem may be worked around by adding a few lines of code, if the function written is intended for user use (and not to be called by another function), it's really inconvenient.
Also, if the elements of the list or vector of outputs are themselves anything but expressions, strings, or numerical values, this method simply will not work. If I wanted to, for example, return matrices O (matrix when multiplied by the original yields U)and U (reduced row echelon format)from Gaussian reduction, I could not return a list {O,U}. When I try to enter such a list from the home screen, the calculator returns an "invalid list or matrix" error, and the same would occur in a program. The "data" type variable is a step in the right direction, but current data items cannot be lists, vectors, or matrices, and are not easily accessed from the home screen or even from within programs. The "data" type seems no better than using a matrix, in this respect--it's two dimensional and the elements can only be expressions or numbers.
Again, I realize that there are reasons for these limitations (having to do with the calculator's ability to allocate memory to variables as the user creates them?)
I thought that using indirection for output, C-style, would work, but it gives trouble, both in TI's built-in functions and our own. For example, the built-in QR and LU decompositions cannot be run from within a function. Using the command 1->#a, with a being a string and an input argument, also gives the error "Invalid in a function or current expression." I presume that there was a reason for this, but I wouldn't know.
-Ben Kalafut
|
|
5 May 2000, 08:22 GMT
|
|
|
|
|
|
|
|
Re: Re: Re: Feature: A Modest Proposal
|
Kenneth Arnold
|
> I thought that using indirection for output, C-style, would work, but it gives trouble, both in TI's built-in functions and our own. For example, the built-in QR and LU decompositions cannot be run from within a function. Using the command 1->#a, with a being a string and an input argument, also gives the error "Invalid in a function or current expression." I presume that there was a reason for this, but I wouldn't know.
This is because functions are too limited. I would have gotten really far with my strlib (a relatively neat but inevitably pointless project to do arithmetic on strings, thus of infinite precision) had functions been able to use expr() or even string(). C/C++ got this right -- don't limit stuff.
But why this limiting of functions? Functions can be used in, say, solving an equation, and you wouldn't want your function to modify a variable that was being used, so TI thinks. But the fact of the matter is that usually you wind up writing the function yourself, and you may _want_ to change some global variables while still returning a value. Maybe it's because AMS was designed so that stupid users wouldn't cause themselves too much trouble and go whining to TI for help. But we're not stupid (I hope) and a bit more power in functions, and overall, would be appreciated, maybe as an "Advanced" mode.
Kenneth
|
|
5 May 2000, 23:55 GMT
|
|
Re: Feature: A Modest Proposal
|
Harper Maddox
(Web Page)
|
Just buy a mini-laptop. They are getting awfully cheap these days. I don't think anyone realizes the main reason that this device, or any other handheld (ie. Gameboy) uses a really fast processor. Do you actually think a laptop could come anywhere near running for a month on 4 AAA batteries?
|
|
5 May 2000, 07:29 GMT
|
|
Re: Feature: A Modest Proposal
|
Steve Ryder
(Web Page)
|
The functionality I think the 89 lacks is a true abilaity to deal with infinity. Have you ever tried to perform symbolic integratation with infinity as a bound? For almost all functions, the calculator doesn't get it right. It handles numerical integration well.
Hey, I should point out that I was able to solve a system of equations on my 89 that MATHEMATICA couldn't do (at least using their standard array of Solve, etc functions). I was impressed by that.
Also, of note is that there are already Laplace and Fourier programs out there. They run in basic, so they're slow, but they work! Quite well, I may add.
|
|
5 May 2000, 14:37 GMT
|
|
Re: Feature: A Modest Proposal
|
jaymz
|
As far as adding functions to new rom versions, TI did that, but it's kind of lame. If you look carefully at the functions in ams1 and compare them to ams2, you will discover that ams2 adds a function called deltaList (delta is a triangle). I noticed this because I was wondering why it wasn't in ams1 in the first place, since ti ti83 and 86 have it. Still, it would be nice if they added some more functions like you mentioned.
As for the lack of quality math programs, I totally agree with you on that. A lot of them do the same thing as a built-in function only with extra 2k of wasted space. Seriously, if you don't know how to use the solve() command in the 89, do you even know that it has a CAS or what? IMO, quality programs/functions should be space-efficient and original, not replacements for TIOS functions.
|
|
5 May 2000, 17:40 GMT
|
|
|
|
|
Missing features
|
Rgb9000
|
Some missing features that i want to see would be square root to a power.
3*SQRT(9)
in example. Yes, i know you can raise a number to a fraction
9^(1/3)
to get the same result,but this approach does not take advantage of the pretty print features of the TI-89.
I think pretty much every lower ti has it(ti 85,86 etc) but the 89 doesnt.
RandInt is also a very nice funtion as well. Almost mandatory in certain games. Rand() is ok, but you cannot specify a upper bound or trials(You could use a for loop, but...) It is included in TI Statistics/List editor, but not for almost half your flash memory! And again, this feature is seen on 83s, 86s.
There was (at least)one other thing missing, but I forgot what it was.
Can anyone else think of anything missing from the TI-89, feature/catalog wise?
P.S. Scroling is too slow too. TG for fastkbd.
|
|
12 May 2000, 00:03 GMT
|
|
Re: Feature: A Modest Proposal
|
Free_Bird
(Web Page)
|
A different CPU would definitely be desirable. How about a Transmeta Crusoe? (Sure, it's expensive, but for a top notch calc it rulez).
As for the compiler, stick with TI-GCC [{(don't even think about it)}], and improve it. TI has proven their inability to release such things (The TI-89 Flash SDK comes to mind).
|
|
5 May 2000, 19:32 GMT
|
|
Re: Feature: A Modest Proposal
|
Jeff Meister
|
While everyone here is talking about really advanced math that I don't understand, I just wanted to gripe about some stuff on the TI-83 that has been REALLY bothering me. And yes, I have a TI-89 to do all this, but I can't always have it for a quiz.
The TI-83 needs an environment where it recognizes variables as unknowns, and not just shortcuts to already-defined values. If I give my 89 something (real basic) to simplify, like 2x/6, I get x/3. But if I put that into the 83, I get some funky number, depending on what I last stored to x. Usually I end up with 0. That so very much sucks.
And while I'm at it, how about a REAL equation solver like the 86 and 89 have for the 83! None of that "has to equal 0" stuff! Grrr...
And Jeff Chai: respond to this and tell me what I missed because I know there's more... I just forget.
- Jeff
|
|
5 May 2000, 22:48 GMT
|
|
1 2 3 4 5 6 7 8 9
You can change the number of comments per page in Account Preferences.
|