Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: V9 !!!
Replies: 20   Last Post: Dec 7, 2012 1:37 AM

 Messages: [ Previous | Next ]
 Murray Eisenberg Posts: 2,105 Registered: 12/6/04
Re: V9 !!!
Posted: Dec 4, 2012 4:09 AM

I was not suggesting that the efficiency and efficacy of the
higher-level built-in functions be abandoned. For real-world
"production" use of course one wants them. I was merely lamenting the
passing of an earlier age of simplicity.

For a first, sophomore-level linear algebra course, I've generally found
that all one can do to hint at numerical issues and leave treating them
to a more advanced course on numerical analysis.

Which reminds me that in an earlier era it was really simple to exhibit
small-order linear systems where roundoff issues produced results with
such a large error as to be for practical purposes useless. But with
each successive release of Mathematica, it became harder and harder to
produce such examples!

On Dec 3, 2012, at 1:59 PM, Andrzej Kozlowski <akozlowski@gmail.com> wrote:

> Actually, seemingly "simple" functions, like finding the rank of a
matrix, are the ones that often benefit the most from a Kernel
implementation because they are so often used (sometimes on huge data).
Even then, it is useful to attract the students attention to issues of
efficiency and choice of algorithm. In fact, however, the examples you
chose are far from simple. Take a look at, for example, the option
Method to NullSpace. There are actually three Methods
(CofactorExpansion,DivisionFreeRowReduction,OneStepRowReduction) and
each has advantages and disadvantages in different kind of situations.
Investigating this itself would make an interesting task for students
and, on the other hand, it would be rather too much to expect of users
to implement all these different methods themselves and then test them
to check which one works best for them. MatrixRank is also not so
"simple", for example, it works with SparseArrays, it has options such
as Tolerance etc.
>
> I don't think you are seriously suggesting that we should give up all

this in order to provide more motivation to linear algebra students
rather than try to think ourselves of better ways of motivating them.
>
> Andrzej
>
>
>
> On 3 Dec 2012, at 17:15, Murray Eisenberg <murray@math.umass.edu> wrote:
>

>> Having a built-in function to do something, e.g., find rank of a
matrix, tends to discourage students when they are asked to build up a
function of their own that accomplishes the same thing beginning with
more basic operations. They just don't appreciate the value of the
exercise as a means to building and reinforcing their understanding.
Moreover, it becomes too easy for them to check whether their own
function works properly; without the higher-level function they formerly
had to devise test cases and check their function's results by hand.
>>
>>
>> On Dec 3, 2012, at 4:04 AM, Andrzej Kozlowski <akozlowski@gmail.com> wrote:
>>

>>>
>>> On 2 Dec 2012, at 11:01, Murray Eisenberg <murray@math.umass.edu> wrote:
>>>

>>>> However, I've always had mixed feelings as Mathematica has grown to
>>>> build in more and more mathematical functions. At times this has taken
>>>> the edge off what was a valuable exercise for my undergraduate students:
>>>> defining more complicated functions -- e.g., div in vector analysis or
>>>> nullSpace in linear algebra -- that forced students to understand the
>>>> precise underlying definitions and algorithms. And it tended to take
>>>> away a sense of power and accomplishment when students could start by
>>>> defining the simplest kind of function, such as performing a single
>>>> elementary row operation, and step-by-step building ever more
>>>> complicated functions, culminating in something relatively
>>>> sophisticated, such as finding the orthogonal projection of a vector
>>>> upon the span of a given set of vectors, and even going further, such as
>>>> using the latter to find the least-squares solution to an overdetermined
>>>> linear system.

>>>
>>> But what stops you from continuing to do this once Mathematica has these
>>> new functions? In fact, one of my favourite methods of teaching
>>> Mathematica and mathematics at the same time is to ask students to
>>> emulate with their own code some particular mathematical function that
>>> exists in Mathematica. There is a great deal one can learn by doing this
>>> sort of thing. The the existence of a Mathematica function in this
>>> situation (particularly a well documented one) is actually a great

>>> bonus. Besides, of course, there is a difference between the needs
of
>>> teachers and those of researchers and other users - for many
purposes
>>> user defined functions are too inefficient for serious work (and
even
>>> more so when these users are not expert programmers). On a personal
>>> level: I spend a great deal of my time developing mathematical
>>> structures in Mathematica, but far from being dismayed when they are
>>> made obsolete in new versions by more efficient built-in functions, I am
>>> always happy and excited when this happens. This is because almost
>>> always the existence of these new functions opens up new possibilities,
>>> and quite often things that were quite unrealistic in earlier versions
>>> become easy in a new one. From my perspective, the most exciting thing
>>> about Mathematica 9 I have noticed so far is the ability to easily
>>> simulate various stochastic processes with functions such as
>>> RandomFunction, ContinousMarkovProcess, ItoProcess, etc. This alone is
>>> worth the upgrade even though it makes many and perhaps most of my
>>> contributions to the Wolfram Demonstrations Project obsolete. But that
>>> it the price I am happy to pay as I can already see a number of new
>>> things that I can now do with these functions that did not appear ever
>>> worth attempting before. The same thing happened with the upgrade from
>>> version 7 to 8, with the appearance of the FinancialDerivative function.
>>>
>>> The presence of these new functions in no way makes it more difficult to
>>> teach students the algorithms behind them, but it also makes Mathematica
>>> the best tool I know of for development and application of advanced
>>> financial models, particularly in the area of derivative pricing (in
>>> which I have been interested for many years).
>>>
>>> Of course anyone developing tools for Mathematica for commercial
>>> purposes will have "mixed feelings" when Wolfram Research, with all the
>>> advantages that it has, builds-in functions that make these tools
>>> inefficient and obsolete. However, this is no different from the
>>> experience of many developers of commercial software that suddenly finds
>>> itself competing with functionality included in the operating system. I
>>> have been a user of Apple Macs almost from the beginning and I remember
>>> many times reading and hearing complaints from software developers about
>>> "unfair" competition from Apple. But now we know that this process is
>>> unstoppable and today a vast number of things that once used to need a
>>> commercial (or shareware) program are now either done by the operating
>>> system or by programs freely provided by Apple with the latest

version
>>> of Mac OS. (The same thing is true in the Microsoft world).
Developers
>>> of these programs have either given up or have found a way to add
value
>>> to their programs which is sufficiently large compared to what if
>>> offered form free by Apple, to make them still worth their price to

at
>>> least some users.
>>>
>>> I will take this opportunity to respond to a typical "straw man"
>>> argument in another response to this post. I am referring to "those

who
>>> say that Mathematica users should never buy a third party
application".
>>> I have never read anybody write anything so ridiculous in this forum
so
>>> I would like to see some references (if they exists). In fact, I
myself
>>> have purchased third-party applications which, not surprisingly,
have
>>> eventually become obsolete, but I would never give this as a reason

>>> against buying them. They more than paid back their price once and I

>>> also learned a lot from them. The point I have tried to make is
this:
>>> before a user decides to purchase a commercial package he should
first
>>> master enough Mathematica to judge whether the kind of things he
wants
>>> to do with it can be done without much effort with the standalone

>>> version or not. The decision should be his and it should be an
informed
>>> one. What I object to is habitual pouncing on new and obviously not

>>> fully informed users, without even fully finding out their real
needs,
>>> and suggesting or insinuating that they should bypass the necessary

>>> learning process by buying a commercial add on package. Also, even
when
>>> an add-on package is found useful, it should never be a reason for

>>> skipping the need to learn such things as basic syntax and the
working
>>> of the very basic (non mathematical) programming constructs. This is

>>> also the main reason why I am less than enamoured with packages that

>>> provide supposed "short-cuts", that often only appear to be such to

>>> people who have not mastered the foundations of the language.
>>>
>>> Andrzej Kozlowski
>>>

>>
>> ---
>> Murray Eisenberg

murray@math.umass.edu
>> Mathematics & Statistics Dept.
>> Lederle Graduate Research Tower phone 413 549-1020 (H)
>> University of Massachusetts 413 545-2838 (W)
>> 710 North Pleasant Street fax 413 545-1801
>> Amherst, MA 01003-9305
>>
>>
>>
>>
>>

---
Murray Eisenberg
murray@math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2838 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305

Date Subject Author
12/3/12 Murray Eisenberg
12/6/12 David Bailey
12/7/12 Murray Eisenberg
12/3/12 David Park
12/3/12 Bill Rowe
12/3/12 E. Martin-Serrano
12/3/12 John Fultz
12/3/12 Andrzej Kozlowski
12/4/12 Murray Eisenberg
12/4/12 Andrzej Kozlowski
12/4/12 Murray Eisenberg
12/3/12 David Park