Re: Re: The audience for Mathematica

• To: mathgroup at smc.vnet.net
• Subject: [mg102179] Re: [mg102150] Re: The audience for Mathematica
• From: "David Park" <djmpark at comcast.net>
• Date: Fri, 31 Jul 2009 05:58:15 -0400 (EDT)
• References: <31768270.1248950619222.JavaMail.root@n11>

```Alexei,

Easy with Presentations. These are just cases where you want to apply Factor
to selected portions of a sum. The MapLevelParts command allows you to do
that (as opposed to ReplacePart that acts independently on each part.)

Needs["Presentations`Master`"]

expr = -a^2 b^2 c^2 + 4 a^3 c^3 + 4 a^2 b^3 d - 18 a^3 b c d +
27 a^4 d^2

To obtain the first form:

expr // MapLevelParts[Factor, {{2, 4}}]
% // MapLevelParts[Factor, {{1, 2, 3}}]
% // MapLevelParts[Factor, {2, 2, {1, 2}}]

giving

-a^2 b^2 c^2 + 4 a^2 b^3 d + 27 a^4 d^2 + 2 a^3 c (2 c^2 - 9 b d)
2 a^3 c (2 c^2 - 9 b d) + a^2 (-b^2 c^2 + 4 b^3 d + 27 a^2 d^2)
2 a^3 c (2 c^2 - 9 b d) + a^2 (27 a^2 d^2 + b^2 (-c^2 + 4 b d))

The last command, for example, says to use Factor on parts 1 and 2 of the
second part of the second part of the previous expression.

To obtain your second form of the expression use:

expr // MapLevelParts[Factor, {{2, 5}}]
% // MapLevelParts[Factor, {{2, 3}}]

Giving

-a^2 b^2 c^2 + 4 a^2 b^3 d - 18 a^3 b c d + a^3 (4 c^3 + 27 a d^2)
-a^2 b^2 c^2 - 2 a^2 b (-2 b^2 + 9 a c) d + a^3 (4 c^3 + 27 a d^2)

This is all what I call 'doing surgery on expressions' and doing it with
Mathematica is less error prone than doing it by hand.

The Manipulations section of Presentations has a number of convenient
routines for doing surgery: CompleteTheSquare, FactorOut, AddZero,
MultiplyByOne, LinearBreakout, PushOnto, HoldOp, CreateSubexpression,
MapLevelParts, MapLevelPatterns, EvaluateAt, EvaluateAtPattern,
LHSSymbolsToPatterns.

David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/

From: Alexei Boulbitch [mailto:Alexei.Boulbitch at iee.lu]

Dear Community,

This question seems to be an important one, if to judge by the number of
I would like to look at this problem from a little bit different
perspective.

I belong to the group #3 according to AES classification cited below. And as
such, I see great
advantages of Mathematica for me and for people like myself, as well as
lacks of some properties
that Mathematica might, but does not have.
Therefore, it may be a constructive idea to make a list of such desired
features classified according to
classes of Mathematica users like the ones cited below. This may help the
developers in their great and difficult
work.

Here I start from myself and invite you to do the same, if you would like
to.

What I badly need are instruments that would enable one to easily bring an
expression to a desired form
when making analytical transformations. Let me explain this in more details.
Operations like
Simplify, Apart, Factor etc. make a great job. However, when the answer is
lengthily it often helps,
if one can group terms in the answer, factorize some parts of those terms
separately from one another.
Here it is important that transformation should go not automatically (like
it goes now when say, Simplify is applied).
What I have in mind is a complete control of the transformation applied on
different levels of the expression by the user
together with a possibility to apply simultaneously different operations on
different levels and to different
parts of the same level.

To give an example, (just the first that that I could think of) here is a
simple algebraic expression which is grouped
and factorized in different ways:

expr = -a^2 b^2 c^2 + 4 a^3 c^3 + 4 a^2 b^3 d - 18 a^3 b c d +
27 a^4 d^2 =

=a^2 (b^2 (-c^2 + 4 b d) + 27 a^2 d^2) + 2 a^3 c (2 c^2 - 9 b d) =

=a^3 (4 c^3 + 27 a d^2) - 2 a^2 b (-2 b^2 + 9 a c) d - a^2 b^2 c^2

Such transformations may result in a further simplification that is not most
simple according to the Mathematica
criterion, but is most simple from the user point of view. It may also help
in understanding of relative contributions of
terms and may enable one to neglect some and thus, to further simplify the
whole expression and so on.

That is how we worked during the pre-Mathematica era, and it often brought a
success. I know people (and many of them)
who made important contributions just because they zealously rewrote and
rewrote long expressions
many times in many different forms until they have found advantageous ones.

At present sometimes it is also possible to do so on-screen (e.g. without
going to the paper as an intermediate step),
but (i) not in all cases, (ii) this requires
programming which is not always evident and (iii) because of this it draws
one away from his primary subject
to a secondary one (e.g. to programming).

not propose to refuse of it (or of any its part).
What I would like to, is to have an additional tool, to be applied when
necessary by those who need it.

Therefore, it would be great, if in say, next Mathematica version some tools
would be introduced helping to fulfill

Let me also comment few words on the discussion nucleated by the
contribution of Helen Reed, to its part concerning
advantages and dangers of Mathematica in teaching.

As much as I understand it, it is a methodological, rather than
"ideological" problem. That is,
application of Mathematica for teaching requires a special approach. One has
to think carefully of what could and should
be done and how, and what should not be done. Applying Mathematica for
teaching without thinking may of coarse, make harm.

But who says that we should apply it without thinking? Development of the
methodology of class-room application of Mathematica
is non-trivial. For this reason it is important to share such a
methodological experience among those who do such work.

I wish you all a success, Alexei    //

/From/: AES

As a more specific definition of an expected audience, it seems to me
(and, I think, Helen Read) that Mathematica -- or at least a more
consistent and less perplexing form of Mathematica:

1) Could be very accessible to bright high school students, maybe with
some hand holding;

2)  Could be (and to some extent is) useful to average college students
and to working BS level engineers as a helpful working tool in any
technical or mathematically oriented area; and

3)  Could be (and to a considerable extent is) a very, very powerful
personal hands-on tool for graduate students, faculty, designers,
engineers, and researchers for doing real work in a very wide range of
fields (not just engineering, math or science).

And that's a very massive audience.

(Note that I'm writing here about people whose primary focus is on, and
whose energies are primarily devoted to, the work they want to do -- the
problems they want to solve -- and who do not want to convert their
primary focus to becoming a Mathematica expert.)

Of course, there's the alternative audience of professional Mathematica
experts, whose full time or near full time occupation is becoming expert
at using Mathematica, with all its complexities and perplexing features.
That's a much smaller audience.  (And to be just a little snide here,
many of those people are essentially "programmers", who are hired as
such by the upper levels of my audience #3 above.)

--
Alexei Boulbitch, Dr., habil.
Senior Scientist

IEE S.A.
ZAE Weiergewan
11, rue Edmond Reuter
L-5326 Contern
Luxembourg

Phone: +352 2454 2566
Fax:   +352 2454 3566

Website: www.iee.lu

This e-mail may contain trade secrets or privileged, undisclosed or
otherwise confidential information. If you are not the intended recipient
and have received this e-mail in error, you are hereby notified that any
review, copying or distribution of it is strictly prohibited. Please inform
us immediately and destroy the original transmittal from your system. Thank