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.
|
|
All I got to say is...
|
Jim Haskell
(Web Page)
|
I think I'm going to cry if I see another one of those Quadratic Formula programs for any calculator. Originality in your programs is a good thing =)
Jim Haskell
|
|
5 May 2000, 02:31 GMT
|
|
Re: Feature: A Modest Proposal
|
johnmcd3
|
Uhhh... The TI-89 and 92 do partial fration decomposition, so you can take that off the list. Also, when I want a function to return multiple values, I just make it return a list of the values. Ex. "{(b+d)/2,(a+c)/2}->midpoint(a,b,c,d)" As for the brick walls, most of the things that the ti-89 can't do directly (and some of the things you list) can be done with a quick function or program. (Symbolic manipulation is a godsend) In this way, people can write/download what they want and not be overloaded with thing they will never use. One qualm i have is that i wish that the 89 would let a program return a value to the home screen, so you can have the power of a program, but not have to mess w/ the programIO screen and be able to copy down the value easily. What TI needs to focus on are things that we can't fix as programmers. For example, the CAS doesn't know how to use the trig id's well at all. For example, I believe if you type sin(2x)/sin(x) it should simplify to 2cos(x). As for a true 3d engine, faster processor, and TRUE UPDATES I am totally in agreement.
Totally Unrelated Note: Since TI doesn't really care about the complaints of our like market segment, what would be incredable is if we could ever fix the flaws in the rom ourselves. Although it would be difficult, it would not be impossible to write our own ROM. Since it is impossible that TI would ever open source the rom, how difficult would it be to figure out how to write out own ROM? I read something about it having some checksum, or maybe it was encryption, but certianly that could be cracked. Could someone fill me in on how feasible that is?
John McDowell
|
|
5 May 2000, 03:42 GMT
|
|
|
|
|
|
|
|
Re: Re: Re: Feature: A Modest Proposal
|
johnmcd3
|
Well, yes of course a function can return a value to the home screen but if you had actually read my post you would have seen that I was talking about a program, not a function. A function is good for many things, but these advantages introduce inherent weaknesses. A function cannot perform conditional statements, loops, or branching, and is therefore is useless at solving many mathmatical situations. The reasons the function must operate as such is that the calculator must be able to replace the function with mathematical operations in order to manipulate it in such applications as the solver. Using my midpoint example above you type "solve(midpoint(0,0,x,y)={1,1},{x,y}" and have it solve for variables in the function. With a conditional statement, this type of reverse application of a function would be impossible. All I advicated was the ability to use "Return " in a program, so the value could be returned to the home screen. While you could not use this program in a solve, or in and equation, as you could a function, it would make a program with no user interaction and simple output less clunky and more convient for the reasons stated above.
|
|
5 May 2000, 06:57 GMT
|
|
|
|
|
|
|
|
|
|
|
Re: Re: Re: Re: Feature: A Modest Proposal
|
Bennett Kalafut
|
This is going to make me sound like a real C junky, but why not just get rid of the "program/function" duality? AMS should be written so that the progams can return values, in effect, being functions, without the restrictions.
Looping and if/then can be done from within functions, but certain on-calc commands cannot be used, and indirection cannot be used to get multiple outputs. (not returns, yes, I do know the difference...) Additionally, the error-handling (which I've been wanting to see since I first wrote for the 82) cannot be used within a function.
One solution I see to the problem would be to use programs that use indirection for outputs, similar to writing void functions in C.
-Ben Kalafut
|
|
5 May 2000, 08:32 GMT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: Re: Re: Re: Re: Feature: A Modest Proposal
|
johnmcd3
|
Hmmmm... I don't know where to start with this one.
<!-- Begin rant on people who don't think before they post --
First of all, I assumed that anyone intellegent reading my complaint about programs not being able to return values to the home screen would interpret it as only the "programs that aren't functions" because obviously functions return values to the home screen. From now on I would request that anyone reading my posts would interpret "programs" as "programs that aren't functions" to avoid further confusion.
"I bet you're just assuming that it can't because you've never written a function before" What? In my orginal post I give an example of a function I just made up. Not that I would actually have a midpoint program on my calculator, it was only an easy example of how to use a function to return multiple values. As for a "midpoint program [that] uses conditionals and looks", again, the intellegent reader would be able to infer that because the midpoint example did not use conditional statements, I was talking about functions in general using conditional statements.
//-- End rant on people who don't think before they post -->
As for using conditional statements in a function, I don't have an 89 with me, but I have tried it before and it didn't work, possibly because I didn't include a local statement in a function that needed it, like Sebastian just noted w/ for loops. But does that really work? Can someone tell me if this works? "If a > 0 and a < 3 Then:Return 2*a:Else:Return 3*a:EndIf->test(a)"
John
|
|
6 May 2000, 11:11 GMT
|
|
1 2 3 4 5 6 7 8 9
You can change the number of comments per page in Account Preferences.
|