The view which we shall explore is that mathematics is the language of size, shape and order and that it is an essential part of the equipment of an intelligent citizen to understand this language. If the rules of mathematics are the rules of grammar, there is no stupidity involved when we fail to see that a mathematical truth is obvious. The rules of ordinary grammar are not obvious. They have to be learned. They are not eternal truths. They are conveniences without whose aid truths about the sorts of things in the world cannot be communicated from one person to another.
Our objective is similar, but we now have new tools: the development of computer programming has provided languages with grammars that are simpler and more tractable than that of conventional mathematical notation. Moreover, the general availability of the computer makes possible convenient and accurate experimentation with mathematical ideas.
For example, the exclusive use of decimal notation in
beginning mathematics entails the perplexing
use of approximations such as 0.333333
and
0.857143
for the fractions one-third
and six-sevenths, intermixed with exact values such as
0.046875
for the drill-bit-size
three sixty-fourths. The present treatment also uses rational arithmetic, with exact
representations such as 1r3
and 6r7
and 3r64
, leading to the following computer
production of an addition table for fractions:
+ table 1r1 1r2 1r3 1r4 1r5 1r6 1r7 1r8 +---+--------------------------------------------+ | | 1 1r2 1r3 1r4 1r5 1r6 1r7 1r8| +---+--------------------------------------------+ | 1| 2 3r2 4r3 5r4 6r5 7r6 8r7 9r8| |1r2|3r2 1 5r6 3r4 7r10 2r3 9r14 5r8| |1r3|4r3 5r6 2r3 7r12 8r15 1r2 10r21 11r24| |1r4|5r4 3r4 7r12 1r2 9r20 5r12 11r28 3r8| |1r5|6r5 7r10 8r15 9r20 2r5 11r30 12r35 13r40| |1r6|7r6 2r3 1r2 5r12 11r30 1r3 13r42 7r24| |1r7|8r7 9r14 10r21 11r28 12r35 13r42 2r7 15r56| |1r8|9r8 5r8 11r24 3r8 13r40 7r24 15r56 1r4| +---+--------------------------------------------+Hogben continues with:
The fact is that modern mathematics does not borrow much from antiquity. To be sure, every useful development in mathematics rests on the historical foundation of some earlier branch. At the same time, every new branch liquidates the usefulness of clumsier tools which preceded it.Although algebra, trigonometry, the use of graphs, the calculus all depend on the rules of Greek geometry, less than a dozen from the two hundred propositions of Euclid"s elements are essential to help us in understanding how to use them. The remainder are complicated ways of doing things we can do more simply when we know later branches of mathematics.
These facts make it possible to present to the layman a simple view of calculus as the study of the rate of change of a function, and to use it to provide insight into matters such as the sine and cosine functions (so useful in trigonometry and the study of mechanical and electrical vibrations), and into the exponential and its inverse the logarithm (so useful in growth and decay processes, and in matters such as the familiar musical scale).
The presentation consists largely of examples, organized in function tables and illustrated by graphs. The more analytical aspects of proofs and the grammar of mathematical notation are deferred to Chapters 11 and 10. These chapters can, however, be profitably consulted at almost any point.
An overview is provided by the Table of Contents which (when the text is used interactively on the computer) can be "clicked on with a mouse" to jump to any desired Section. Chapters 1-3 introduce Numbers, Computer use, and Graphs and visualization. Chapters 4-8 introduce many of the important tools of applied mathematics. The topics of these chapters are commonly considered to be too difficult for the layman, but are examples of Hogben's comment about "...doing things we can do more simply when we know later branches of mathematics." In particular, the treatment is greatly simplified by the use of a programming language that makes simple the use of lists (vectors) and tables (matrices).
A supplement at the end of the book contains sections that expand on the treatments in the main text. They are not essential to the main thread of development, but should be consulted on occasion (by clicking on S1A, S1B, etc.).
Although familiarity with Hogben"s book is not essential to a study of the present text, it is highly recommended to the layman, especially the brief prologue. We conclude with the continuation of the preceding quote:
For the mathematical technician these complications may provide a useful discipline. The person who wants to understand the place of mathematics in modern civilization is merely distracted and disheartened by them. What follows is for those who have been already disheartened and distracted, and have consequently forgotten what they may have learned already, or fail to see the meaning or usefulness of what they remember. So we shall begin at the very beginning.1A. The Counting (Natural) Numbers
1E. Addition and Subtraction (+ and -)
1F. Bonding
1G. Multiplication or Times (*)
1H. Power and Exponent (^)
1I. Monomials and Polynomials (p.)
1J. Division (%)
1K. Review and Supplement
1L. Notes The number to which a verb applies may be called a noun. In
math it is also called an argument, in the sense of a
topic or subject ("You and love are still my
argument" -- Shakespeare).
Names may also be assigned to verbs. There appears to be no
English word that corresponds to Because Adopting the seemingly-innocent notion of a verb that undoes the
effect of In adopting further inverses we will again experience the
same need to broaden our domain, to include rational
numbers, and imaginary numbers. Moreover, the surprising
effect of inverse processes is not confined to mathematics.
Consider the effect of reversing a movie projector to run a
film backward. If the film shows a locomotive moving forward
along a track, the result of reversal is unremarkable. But if
it concerns the dropping of an egg on the pavement, or a dive
from a diving-board, the result is a startling illustration
of the important distinction between reversible and
irreversible processes.
Finally, the inverse of a function can be obtained by using
iteration (
A polynomial in which the exponents in the
successive monomials are successive
integers beginning with zero, is said to be
in standard form, and may be expressed
using the polynomial function
Just as we introduced a way to represent negative numbers, so
we introduce a representation for rationals:
The pace of this text is brisk, moving on quickly to further topics
as soon
as the essential foundations for them are established. For example,
although the Polynomials of Chapter 4 could provide a rich subject
in itself, we pass on after a brief three pages to the Power Series
of Chaper 5, and the Slope and Derivative of Chapter 6.
This gives a quick exposure to significant, and sometimes surprising,
consequences of otherwise dull foundations. On the other hand, the
reader
may eventually (or immediately) want further treatments of the
successive foundations: these are provided in a separate part of the
book
called Supplement.
In a printed text, the need to move between a given section and the
corresponding supplemental section in a different part of the book
might prove onerous. However, in reading the text from a computer
(through
a Browser), this switching back and forth is made by a click of a
mouse.
For example, click on the S1K that appears to the right of the
heading
for this section to read the further discussion in the supplemental
section S1K, and click on its heading to return.
The Find facility can be used as an index to find the
occurrences of
words in the text; invoke it by pressing F while
holding down the control key, or select it from the Search menu.
It may therefore be soothing for many to whom
mathematical expressions evoke a
malaise comparable to being seasick, if they
can learn to think of mathematics less as an
exploit in reasoning than as an exercise in
translating an unfamiliar script like Braille or
the Morse code.
In this chapter we shall
therefore abandon the historical approach and
deal mainly with two topics: for what sort
of communication do we use this highly
space-saving " now international " written
language, and on what sort of signs do we
rely. To emphasize that the aim of this
chapter is to accustom the reader to approach
mathematical rules as Exercises in economical
translation, every rule in the sign
language of mathematics will have an arithmetical
illustration "
He continues with:
In contradistinction to common speech which
deals largely with the quality of things,
mathematics deals only with matters of size,
order, and shape. " First let us consider
what different sorts of signs go to the
making of a mathematical statement. We may
classify these as:
Conventional mathematical notation uses three
pairs of symbols for punctuation: Hogben offers the following suggestions for
study:
Although care has been taken to see that all the logical, or,
as we ought to say, the
grammatical rules are put in a continuous sequence, you must
not expect that you will
necessarily follow every step in the argument the first time
you read it. An eminent
Scottish mathematician gave a very sound piece of advice for
lack of which many people
have been discouraged unnecessarily. "Every mathematical book
that is worth
anything", said Chrystal, "must be read backwards and forwards
""
---------------------
"Always have a pen and paper, preferably squared paper, in hand
". when you read
the text for serious study, and work out all the numerical
examples as you read ". What
you get out of the book depends on your
co-operation in the business of learning.
To this we may add the advice to use the computer in the manner
introduced in the
next chapter, and illustrated throughout the entire text. In
particular, do not
hesitate to do any computer experiments that may occur to you " the
worst that
can happen is the appearance of an error message of some kind, after
which you
may continue without any special action.
2D. Integer Lists
2E. Vocabulary
2F. Functions over lists
2G. Notes
A computer-executed language such as J not
only permits one to do extensive
calculations quickly and accurately,
it may also permit precise experimentation
with mathematical ideas. In particular, J
provides computation both in the rational
arithmetic used in Chapter 1, and in the
more familiar decimal notation.
For example, a list of rationals
such as
However, the list
It should be noted that the inclusion of
even one
rational in a list makes it behave as a
rational.
The function
The following function may be defined and
used
to display any number of digits:
It may be interesting to explore the
behaviour
of various functions by producing
their tables, either before or after
studying their definitions. Moreover, it
may be
helpful to first assign more familiar
names.
For example:
The expression The function Functions for other useful lists are
easily defined:
The expressions The patterns progress to the right by
multiplying
by the argument ( The sum In the final expression above it was
essential
that the argument On the other hand, the use of lists and
tables has provided organized
presentations of these examples that make
it easy to recognize properties --
properties such as the commutativity of
the
functions plus, times, maximum, and
greatest common divisor in the symmetry
of their tables, as well as certain
"skew-symmetries"
evident in the tables for subtraction,
division, and less-than.
Careful study of function tables can
provide
other insights such as the "counting by
a constant" that occurs in rows and
columns
of certain functions, leading, in
particular, (in Section 2D) to an informal
proof or demonstration of the necessity
for the familiar behaviour of the products
of signed numbers -- the product of
numbers of opposite signs is negative,
and the product of two of the same sign is
positive.
Conclusions about functions (such as the
relation of prime numbers to the
multiplication table, and rules for the
multiplication of rational numbers) have
been
left to Exercises, as in those for
Sections 1G and 1J.
It is important to attempt these
Exercises -- to repeat Hogben"s advice:
"What
you get out of the book depends on
your co-operation in the business of
learning".
Nevertheless, we will devote some
attention to deriving certain relations,
and will devote a separate chapter (11) to
the treatment of proofs.
Similarly in the matter of language
(whose importance is so strongly stated by
Hogben in the paragraph shown in our
preface),
we have introduced the necessary
notation in context with no general
discussion
of the grammar involved, and will
defer such matters to a separate chapter
(10).
However, these cited chapters are
relatively self-contained, and can be
consulted at any point.
But first we will introduce graphing as a
further tool for making certain
mathematical relations evident. Concerning
graphs,
Hogben has this to say (p 86):
A third kind of pictorial language
used
in mathematics has its origin in the
construction
of star maps and later of earth maps
in the
last two centuries before the
beginning of the
Christian era.
Such is co-ordinate geometry
for which the slang word is graphs.
It did
not come into its own before the
century of
Newton, whereafter it led to many
discoveries.
Unlike Euclid"s geometry, it
can bring the measurement of time
into the
picture. For instance, it exposes
(Fig. 1)
why and when Achilles (pp 12-13)
caught up
with (and passed) the tortoise.
1A. The Counting (Natural) Numbers
S1A.
The Counting numbers begin with 1 2 3 4
and go on forever, because every
counting number has a successor that comes next after
it. Thus:
>: 1
2
>: 2
3
>: 3
4
>: 4
5
>: >: 1
3
>: >: >: >: 2
6
>: 1 2 3 4 5 6
2 3 4 5 6 7
>:
"performs an action" upon the number to which
it is applied, and is therefore analogous to an "action word" or
verb in
English. In math, such a verb is also called a function (from
Latin fungi, to perform or execute).
1B. Lists and Names
S1B.
A collection of numbers may be written as a list, in
the form 2 3 5 7 11
, and verbs may be applied to
such lists. For example:
>: 2 3 5 7 11
3 4 6 8 12
>: >: >: 2 3 5 7 11
5 6 8 10 14
A name may be assigned to a number or list by using
the copula =:
, and the name may then be used
to refer to its referent. For example:
primes=: 2 3 5 7 11
>: primes
3 4 6 8 12
b=: >: primes
>: >: b
5 6 8 10 14
The main copulas used in English are "is" and "are". They may
be used in reading mathematical expressions aloud, as in "primes are
2 3 5 7 11
"
for primes=:2 3 5 7 11
, and "first is one" for
first=:1
.
>:
except, perhaps,
the command "next" used to summon a successor from a queue.
Thus:
next=: >:
next 5
6
next next 5
7
1C. Iteration (Repetition)
S1C.
The expression next ^: 3
produces a verb that is
equivalent to applying the verb next
for three
times.
Thus:
primes
2 3 5 7 11
next ^: 3 primes
5 6 8 10 14
next next next primes
5 6 8 10 14
for=: ^:
next for 3 primes
5 6 8 10 14
list=: 1 2 3 4
next for list primes
3 4 6 8 12
4 5 7 9 13
5 6 8 10 14
6 7 9 11 15
1D. Inverse
S1D.
The verb previous=: <:
"undoes" the work of the verb
next=: >:
,
and is said to be its inverse. Thus:
previous=: <:
primes
2 3 5 7 11
previous primes
1 2 4 6 10
next previous primes
2 3 5 7 11
previous next primes
2 3 5 7 11
previous 3
2
previous 2
1
previous 1
0
previous 0
_1
previous _1
_2
1
is the first
counting number, the zero (0
)
and the negative numbers (_1
and _2
)
shown above are not counting numbers. But they are integers,
so called because they are unbroken or intact (in=not, tag=touch), as
distinguished from the fractions (broken or fractured)
referred
to in the preface.
next
has, rather surprisingly,
led us out of the original domain
of counting numbers, and forced the adoption of a broader class,
the integers, that includes the zero and negative numbers.
for
) with the right argument _1
.
Thus:
next for _1 primes
1 2 4 6 10
>: ^: _1 primes
1 2 4 6 10
>: ^: _1
<:
next for _3 _2 _1 0 1 2 3 primes
_1 0 2 4 8
0 1 3 5 9
1 2 4 6 10
2 3 5 7 11
3 4 6 8 12
4 5 7 9 13
5 6 8 10 14
1E. Addition and Subtraction (+ and -)
S1E.
The effect of the verb next for 3
is to add
3
to its argument, and next for 3 primes
is equivalent to the addition primes + 3
(using
the familiar Saint George's cross to denote the verb). Thus:
next for 3 primes
5 6 8 10 14
primes + 3
5 6 8 10 14
0 1 2 3 4 5 + 0 1 2 3 4 5
0 2 4 6 8 10
+ table 0 1 2 3 4 5
+-+------------+
| |0 1 2 3 4 5|
+-+------------+
|0|0 1 2 3 4 5|
|1|1 2 3 4 5 6|
|2|2 3 4 5 6 7|
|3|3 4 5 6 7 8|
|4|4 5 6 7 8 9|
|5|5 6 7 8 9 10|
+-+------------+
The last result is an addition table, which may be "read"
as follows:
To find the result of
The verb 3 + 4
, choose the result
(7
)
found in the row headed by 3
and the column
headed by 4
.+ table
is only one example of a function
table, and other functions may be used. For example:
previous for 3 primes
_1 0 2 4 8
primes - 3
_1 0 2 4 8
- table 0 1 2 3 4 5
+-+----------------+
| |0 1 2 3 4 5|
+-+----------------+
|0|0 _1 _2 _3 _4 _5|
|1|1 0 _1 _2 _3 _4|
|2|2 1 0 _1 _2 _3|
|3|3 2 1 0 _1 _2|
|4|4 3 2 1 0 _1|
|5|5 4 3 2 1 0|
+-+----------------+
2 + 5
and
5 + 2
and verify that they agree. Make similar comparisons of additions
of numbers that are similarly interchanged or commuted.
1F. Bonding (&)
S1F.
The verb + & 3
is equivalent to "add 3
",
that is, to next for 3
. Thus:
+ & 3 primes
5 6 8 10 14
primes + 3
5 6 8 10 14
with=: &
+ with 3 primes
5 6 8 10 14
next for 3 primes
5 6 8 10 14
- with 3 primes
_1 0 2 4 8
primes - 3
_1 0 2 4 8
- with 3 + with 3 primes
2 3 5 7 11
+ with 2 primes
4 5 7 9 13
+ with 2 for 0 1 2 3 4 primes
2 3 5 7 11
4 5 7 9 13
6 7 9 11 15
8 9 11 13 17
10 11 13 15 19
Although the referent of primes
is the list
2 3 5 7 11
, it would not be correct to substitute the
referent for the name in the foregoing
expression, because the resulting 0 1 2 3 4 2 3 5 7 11
would be treated as a single list argument to for
.
Thus:
+ with 2 for 0 1 2 3 4 2 3 5 7 11
+&2^:0 1 2 3 4 2 3 5 7 11
The lists may, however, be separated by parentheses:
+ with 2 for 0 1 2 3 4 (2 3 5 7 11)
2 3 5 7 11
4 5 7 9 13
6 7 9 11 15
8 9 11 13 17
10 11 13 15 19
1G. Multiplication or Times (*)
S1G.
Three times four (3 * 4)
is said to be the addition of four copies ("plies") of three. Thus:
3 + 3 + 3 + 3
12
3 * 4
12
* table 0 1 2 3 4 5 6 7 8 9 10
+--+--------------------------------+
| |0 1 2 3 4 5 6 7 8 9 10|
+--+--------------------------------+
| 0|0 0 0 0 0 0 0 0 0 0 0|
| 1|0 1 2 3 4 5 6 7 8 9 10|
| 2|0 2 4 6 8 10 12 14 16 18 20|
| 3|0 3 6 9 12 15 18 21 24 27 30|
| 4|0 4 8 12 16 20 24 28 32 36 40|
| 5|0 5 10 15 20 25 30 35 40 45 50|
| 6|0 6 12 18 24 30 36 42 48 54 60|
| 7|0 7 14 21 28 35 42 49 56 63 70|
| 8|0 8 16 24 32 40 48 56 64 72 80|
| 9|0 9 18 27 36 45 54 63 72 81 90|
|10|0 10 20 30 40 50 60 70 80 90 100|
+--+--------------------------------+
5
are
multiples of 5
, that is, they result
from multiplying by 5
. Verify that they progress
by "counting by fives", and check for similar properties in other
columns and rows.* table 2 3 4 5 6 6 7 8 9 10
and make
a list of the counting numbers beginning with 2
(and
up to perhaps 19
)
that do not occur in it. These numbers are called
primes.
1H. Power and Exponent (^)
S1H.
Just as repeated application of addition is equivalent to
another important function
(multplication, or *
),
so repeated multiplication is equivalent to power, or
^
. Thus,
3 ^ 4
is equivalent to 3 * 3 * 3 * 3
.
The right argument (in this case 4
)
is often called the exponent, and the
expression 3 ^ 4
is read as "three power
four" or "three to the power four". For example:
3 ^ 4
81
3*3*3*3
81
0 1 2 3 4 5 ^2
0 1 4 9 16 25
^ table 0 1 2 3 4 5
+-+-------------------+
| |0 1 2 3 4 5|
+-+-------------------+
|0|1 0 0 0 0 0|
|1|1 1 1 1 1 1|
|2|1 2 4 8 16 32|
|3|1 3 9 27 81 243|
|4|1 4 16 64 256 1024|
|5|1 5 25 125 625 3125|
+-+-------------------+
1I. Monomials and Polynomials (p.)
S1I.
An expression such as 5*4^3
is called a monomial
(one name) with the
coefficient 5
, the argument 4
,
and the exponent
3
; a sum of monomials is called
a polynomial (many names). For example:
5 * 4 ^ 3
320
(5*4^3) + (_2*4^4) + (1*4^1)
_288
p.
, with the
list of coefficients as the left argument.
For example:
x=: 4
(2*x^0) + (3*x^1) + (4*x^2)
78
2 3 4 p. x
78
a=: 0 1 2 3 4 5
1 2 1 p. a
(a+1) ^ 2
1 3 3 1 p. a
(a+1) ^ 3
c4=: 0 1 3 3 1 + 1 3 3 1 0
c4 p. a
(a+1) ^ 4
1J. Division (%)
S1J.
Division (to be denoted by %
) "undoes" the work of
multiplication. For example:
a=: 0 1 2 3 4 5 6
b=: a * 2
b
0 2 4 6 8 10 12
b % 2
0 1 2 3 4 5 6
b % 3
0 0.666667 1.33333 2 2.66667 3.33333 4
Just as the inverse of addition introduced new numbers
outside the domain of the counting numbers, so
some of the results of this inverse function
lie outside of the domain of integers. These non-integral
results (such as 0.666667
) are "decimal approximations to"
a new class of numbers, called fractions or rationals.
2r3
for
the fraction two-thirds, 4r3
for the fraction
four-thirds,
etc. Thus:
1r3+1r3
2r3
a=: 0 1r2 1r3 1r4 1r5 1r6
a+a
0 1 2r3 1r2 2r5 1r3
a-a
0 0 0 0 0 0
a * a
0 1r4 1r9 1r16 1r25 1r36
+ table a
+---+------------------------------+
| | 0 1r2 1r3 1r4 1r5 1r6|
+---+------------------------------+
| 0| 0 1r2 1r3 1r4 1r5 1r6|
|1r2|1r2 1 5r6 3r4 7r10 2r3|
|1r3|1r3 5r6 2r3 7r12 8r15 1r2|
|1r4|1r4 3r4 7r12 1r2 9r20 5r12|
|1r5|1r5 7r10 8r15 9r20 2r5 11r30|
|1r6|1r6 2r3 1r2 5r12 11r30 1r3|
+---+------------------------------+
- table a
+---+--------------------------------+
| | 0 1r2 1r3 1r4 1r5 1r6|
+---+--------------------------------+
| 0| 0 _1r2 _1r3 _1r4 _1r5 _1r6|
|1r2|1r2 0 1r6 1r4 3r10 1r3|
|1r3|1r3 _1r6 0 1r12 2r15 1r6|
|1r4|1r4 _1r4 _1r12 0 1r20 1r12|
|1r5|1r5 _3r10 _2r15 _1r20 0 1r30|
|1r6|1r6 _1r3 _1r6 _1r12 _1r30 0|
+---+--------------------------------+
* table a
+---+--------------------------+
| |0 1r2 1r3 1r4 1r5 1r6|
+---+--------------------------+
| 0|0 0 0 0 0 0|
|1r2|0 1r4 1r6 1r8 1r10 1r12|
|1r3|0 1r6 1r9 1r12 1r15 1r18|
|1r4|0 1r8 1r12 1r16 1r20 1r24|
|1r5|0 1r10 1r15 1r20 1r25 1r30|
|1r6|0 1r12 1r18 1r24 1r30 1r36|
+---+--------------------------+
% table a
+---+---------------------+
| |0 1r2 1r3 1r4 1r5 1r6|
+---+---------------------+
| 0|0 0 0 0 0 0|
|1r2|_ 1 3r2 2 5r2 3|
|1r3|_ 2r3 1 4r3 5r3 2|
|1r4|_ 1r2 3r4 1 5r4 3r2|
|1r5|_ 2r5 3r5 4r5 1 6r5|
|1r6|_ 1r3 1r2 2r3 5r6 1|
+---+---------------------+
_
that occurs in the first column
of the division table (it denotes infinity).
1K. Review and Supplement
S1K.
Using notation provided by a programming language (that
will allow us to experiment with our math on a computer),
we have introduced:
Some of the assigned names (such as the 1 2 3 4
etc.
for=: ^:
that applies a function for a specified number of times._1 _2 _3 _4
etc.
introduced
by subtraction.
for
assigned by
the expression for=: ^:
) are "utilities" that
will be utilized throughout the text,
and are collected for easy reference in Appendix 1.
1L. Notes
S1L.
On page 75 Hogben says:
( )
and [ ]
and { }
. We will use only the
pair ( )
for this purpose, and will use the
others for operations: {
for
indexing (selection), {.
and }.
for
take and drop of a
first item, and {:
and }:
for
take and drop of a last item.
2A.
Introduction
S2A.
A computer can be programmed to "interpret"
or
"execute" sentences expressed in
a variety of notations or
programming languages;
commonly used languages
include Cobol, Fortran, APL, C, and J. The
treatment
of numbers in Chapter 1 is
all expressed in J, a system that can be
obtained from Website
www.jsoftware.com .r=: 1r5 2r5 3r5 4r5 5r5 6r5
and a list of integers
a=: 5 * r
derived
from it will produce results expressed as
rationals
when functions such as addition,
multiplication, and
division are applied to them. Thus:
r=: 1r5 2r5 3r5 4r5 1 6r5
a=: 5 * r
% table a
+-+---------------------+
| |1 2 3 4 5 6|
+-+---------------------+
|1|1 1r2 1r3 1r4 1r5 1r6|
|2|2 1 2r3 1r2 2r5 1r3|
|3|3 3r2 1 3r4 3r5 1r2|
|4|4 2 4r3 1 4r5 2r3|
|5|5 5r2 5r3 5r4 1 5r6|
|6|6 3 2 3r2 6r5 1|
+-+---------------------+
% table r
+---+-----------------------+
| |1r5 2r5 3r5 4r5 1 6r5|
+---+-----------------------+
|1r5| 1 1r2 1r3 1r4 1r5 1r6|
|2r5| 2 1 2r3 1r2 2r5 1r3|
|3r5| 3 3r2 1 3r4 3r5 1r2|
|4r5| 4 2 4r3 1 4r5 2r3|
| 1| 5 5r2 5r3 5r4 1 5r6|
|6r5| 6 3 2 3r2 6r5 1|
+---+-----------------------+
c=: 1 2 3 4 5 6
, which
is identical to a
except that
it is not defined
as a rational, yields decimal
approximations under division.
Thus:
c=: 1 2 3 4 5 6
% table c
+-+--------------------------------+
| |1 2 3 4 5 6|
+-+--------------------------------+
|1|1 0.5 0.333333 0.25 0.2 0.166667|
|2|2 1 0.666667 0.5 0.4 0.333333|
|3|3 1.5 1 0.75 0.6 0.5|
|4|4 2 1.33333 1 0.8 0.666667|
|5|5 2.5 1.66667 1.25 1 0.833333|
|6|6 3 2 1.5 1.2 1|
+-+--------------------------------+
x:
applied to an
argument causes
its result to be treated as a rational
when other
functions are applied to it. Moreover, its
inverse
causes functions applied to its results to
treat it
in decimal form. Thus:
rat=: x:
dec=: rat^:_1
d=: rat c
d
1 2 3 4 5 6
% table d
+-+---------------------+
| |1 2 3 4 5 6|
+-+---------------------+
|1|1 1r2 1r3 1r4 1r5 1r6|
|2|2 1 2r3 1r2 2r5 1r3|
|3|3 3r2 1 3r4 3r5 1r2|
|4|4 2 4r3 1 4r5 2r3|
|5|5 5r2 5r3 5r4 1 5r6|
|6|6 3 2 3r2 6r5 1|
+-+---------------------+
e=: dec d
e
1 2 3 4 5 6
% table e
+-+--------------------------------+
| |1 2 3 4 5 6|
+-+--------------------------------+
|1|1 0.5 0.333333 0.25 0.2 0.166667|
|2|2 1 0.666667 0.5 0.4 0.333333|
|3|3 1.5 1 0.75 0.6 0.5|
|4|4 2 1.33333 1 0.8 0.666667|
|5|5 2.5 1.66667 1.25 1 0.833333|
|6|6 3 2 1.5 1.2 1|
+-+--------------------------------+
2B.
Number of places
S2B.
The precision of the decimal approximations
in
the table % table c
is limited
to six
digits after the decimal point. This is a
matter
of convenience in display -- the results are
actually computed to about eighteen decimal
digits, of which only the first few are
shown.
set=: 9!:11
set 12
2 % 3
0.666666666667
dec 2r3
0.666666666667
set 6
2C. Displays
S2C.
Tables and other results may also be
displayed
for convenient comparison, using
the comma-dot to place them side-by-side, and
the comma to place one table
below another. For example:
(+ table r),.(- table r)
+---+-------------------------+---+----------------------------+
| |1r5 2r5 3r5 4r5 1 6r5| |1r5 2r5 3r5 4r5 1 6r5|
+---+-------------------------+---+----------------------------+
|1r5|2r5 3r5 4r5 1 6r5 7r5|1r5| 0 _1r5 _2r5 _3r5 _4r5 _1|
|2r5|3r5 4r5 1 6r5 7r5 8r5|2r5|1r5 0 _1r5 _2r5 _3r5 _4r5|
|3r5|4r5 1 6r5 7r5 8r5 9r5|3r5|2r5 1r5 0 _1r5 _2r5 _3r5|
|4r5| 1 6r5 7r5 8r5 9r5 2|4r5|3r5 2r5 1r5 0 _1r5 _2r5|
| 1|6r5 7r5 8r5 9r5 2 11r5| 1|4r5 3r5 2r5 1r5 0 _1r5|
|6r5|7r5 8r5 9r5 2 11r5 12r5|6r5| 1 4r5 3r5 2r5 1r5 0|
+---+-------------------------+---+----------------------------+
(* table a),(* table r)
+---+--------------------------------+
| | 1 2 3 4 5 6 |
+---+--------------------------------+
| 1 | 1 2 3 4 5 6 |
| 2 | 2 4 6 8 10 12 |
| 3 | 3 6 9 12 15 18 |
| 4 | 4 8 12 16 20 24 |
| 5 | 5 10 15 20 25 30 |
| 6 | 6 12 18 24 30 36 |
+---+--------------------------------+
| | 1r5 2r5 3r5 4r5 1 6r5|
+---+--------------------------------+
|1r5|1r25 2r25 3r25 4r25 1r5 6r25|
|2r5|2r25 4r25 6r25 8r25 2r5 12r25|
|3r5|3r25 6r25 9r25 12r25 3r5 18r25|
|4r5|4r25 8r25 12r25 16r25 4r5 24r25|
| 1| 1r5 2r5 3r5 4r5 1 6r5|
|6r5|6r25 12r25 18r25 24r25 6r5 36r25|
+---+--------------------------------+
Function tables may also be produced without
their bordering arguments by using
the operator /
, and other
functions may be
applied to such tables. For example:
a %/ a
1 1r2 1r3 1r4 1r5 1r6
2 1 2r3 1r2 2r5 1r3
3 3r2 1 3r4 3r5 1r2
4 2 4r3 1 4r5 2r3
5 5r2 5r3 5r4 1 5r6
6 3 2 3r2 6r5 1
(a %/ a)*(a */ a)
1 1 1 1 1 1
4 4 4 4 4 4
9 9 9 9 9 9
16 16 16 16 16 16
25 25 25 25 25 25
36 36 36 36 36 36
2D. Integer Lists
S2D.
i.5
produces a list of the first
five non-negative
integers, and i:5
produces a
symmetric list from _5
to
5
. Both are
convenient for exploring tables:
(* table i.5),.(* table i:5)
+-+-----------+--+---------------------------------------+
| |0 1 2 3 4| | _5 _4 _3 _2 _1 0 1 2 3 4 5|
+-+-----------+--+---------------------------------------+
| | |_5| 25 20 15 10 5 0 _5 _10 _15 _20 _25|
| | |_4| 20 16 12 8 4 0 _4 _8 _12 _16 _20|
| | |_3| 15 12 9 6 3 0 _3 _6 _9 _12 _15|
|0|0 0 0 0 0|_2| 10 8 6 4 2 0 _2 _4 _6 _8 _10|
|1|0 1 2 3 4|_1| 5 4 3 2 1 0 _1 _2 _3 _4 _5|
|2|0 2 4 6 8| 0| 0 0 0 0 0 0 0 0 0 0 0|
|3|0 3 6 9 12| 1| _5 _4 _3 _2 _1 0 1 2 3 4 5|
|4|0 4 8 12 16| 2|_10 _8 _6 _4 _2 0 2 4 6 8 10|
| | | 3|_15 _12 _9 _6 _3 0 3 6 9 12 15|
| | | 4|_20 _16 _12 _8 _4 0 4 8 12 16 20|
| | | 5|_25 _20 _15 _10 _5 0 5 10 15 20 25|
+-+-----------+--+---------------------------------------+
The signum or sign function
denoted by *
gives
_1
for a negative argument,
0
for
a zero argument, and 1
for a
positive argument. When applied
on (that is, to the result of) multiplication
it yields a table
that shows the pattern of the signs in the
multiplication table more
clearly. Thus:
sign=: *
on=: @
(sign on *) table i:5
+--+-------------------------------+
| |_5 _4 _3 _2 _1 0 1 2 3 4 5|
+--+-------------------------------+
|_5| 1 1 1 1 1 0 _1 _1 _1 _1 _1|
|_4| 1 1 1 1 1 0 _1 _1 _1 _1 _1|
|_3| 1 1 1 1 1 0 _1 _1 _1 _1 _1|
|_2| 1 1 1 1 1 0 _1 _1 _1 _1 _1|
|_1| 1 1 1 1 1 0 _1 _1 _1 _1 _1|
| 0| 0 0 0 0 0 0 0 0 0 0 0|
| 1|_1 _1 _1 _1 _1 0 1 1 1 1 1|
| 2|_1 _1 _1 _1 _1 0 1 1 1 1 1|
| 3|_1 _1 _1 _1 _1 0 1 1 1 1 1|
| 4|_1 _1 _1 _1 _1 0 1 1 1 1 1|
| 5|_1 _1 _1 _1 _1 0 1 1 1 1 1|
+--+-------------------------------+
The pattern of signs in the multiplication
table may be made
more understandable by considering the
behaviour of individual
rows and columns: each proceeds by "counting
by" the number at
its head.
For example, the row headed by 3
begins with
_15
, and proceeds by steps of
three through _12
and _9
to 15
. At
some point it passes
through the column of zeros, and the result
must therefore change
sign. Similar remarks apply to "counting by
negative numbers", and
to columns.
2E. Vocabulary
S2E.
The complete J vocabulary can be displayed
by pressing the key labelled F1, can
then be printed as indicated, and can be
closed
by pressing the Escape key (labelled Esc).
With the vocabulary displayed, the complete
definition of any of its items may be
displayed (and perhaps printed) by clicking
the mouse on the desired item.
gcd=: +.
lcm=: *.
(gcd table ,. lcm table) a
+-+-----------+-+----------------+
| |1 2 3 4 5 6| |1 2 3 4 5 6|
+-+-----------+-+----------------+
|1|1 1 1 1 1 1|1|1 2 3 4 5 6|
|2|1 2 1 2 1 2|2|2 2 6 4 10 6|
|3|1 1 3 1 1 3|3|3 6 3 12 15 6|
|4|1 2 1 4 1 2|4|4 4 12 4 20 12|
|5|1 1 1 1 5 1|5|5 10 15 20 5 30|
|6|1 2 3 2 1 6|6|6 6 6 12 30 6|
+-+-----------+-+----------------+
Composite functions can also be tabled. For
example:
((lcm */ gcd) table ,. (* table)) a
+-+----------------+-+----------------+
| |1 2 3 4 5 6| |1 2 3 4 5 6|
+-+----------------+-+----------------+
|1|1 2 3 4 5 6|1|1 2 3 4 5 6|
|2|2 4 6 8 10 12|2|2 4 6 8 10 12|
|3|3 6 9 12 15 18|3|3 6 9 12 15 18|
|4|4 8 12 16 20 24|4|4 8 12 16 20 24|
|5|5 10 15 20 25 30|5|5 10 15 20 25 30|
|6|6 12 18 24 30 36|6|6 12 18 24 30 36|
+-+----------------+-+----------------+
< table a
((< table ,. > table),(<: table,.= table)) a
gcd=: +.
) and the
least common
multiple (lcm=: *.
).
gcd
function and
the function
nd=: 2&x:
that
gives the
numerator and denominator (as a
two-element list)
of a rational number.
i.
and
i:
to make tables of the comparison
functions <
and
>
and
=
.
<.
(minimum)
and >.
(maximum).
! table i.5
, and
comment on the
results.
3!5
gives the
number of distinct
collections of three items that
can be chosen from a collection of five
distinct
items. For example, here are the
ways of choosing three at a time from the
first
five letters of the alphabet:
ABC
ABD
ABE
ACD
ACE
ADE
BCD
BCE
BDE
CDE
!
might
therefore be
called outof
but, for reasons
that will appear
later, we will call it the binomial
coefficient
function, and abbreviate it as
bc
. If
the zeros in the table produced in
Exercise 7 are ignored, a triangle
remains. This
triangle (or some orientation of it)
is (wrongly, according to Hogben, p194)
called
Pascal"s triangle.
even=: 2:*i.
odd=: 1:+2:*i.
pow=: 2:^i.
i1=: 1:+i.
i2=: 2:+i.
(even,.odd,.pow,.i1,.i2) 6
0 1 1 1 2
2 3 2 2 3
4 5 4 3 4
6 7 8 4 5
8 9 16 5 6
10 11 32 6 7
2^3
and
2^2
are defined by 2*2*2
and
2*2
, respectively, but
it is not clear what this implies
for 2^1
(multiplication with
one factor?)
or for 2^0
and 2^_1
. Function tables
give clues to the
pattern to be expected:
2 3 ^ table 2 3 4 5
+-+-----------+
| |2 3 4 5|
+-+-----------+
|2|4 8 16 32|
|3|9 27 81 243|
+-+-----------+
2
or
3
);
conversely they progress to the left
by dividing by the argument, giving the
following results for the exponents
1
and 0
,
and for negative exponents:
2 3 ^ table 0 1 2 3 4 5
+-+---------------+
| |0 1 2 3 4 5|
+-+---------------+
|2|1 2 4 8 16 32|
|3|1 3 9 27 81 243|
+-+---------------+
2 3 ^ table i:5r1
+-+---------------------------------------+
| | _5 _4 _3 _2 _1 0 1 2 3 4 5|
+-+---------------------------------------+
|2| 1r32 1r16 1r8 1r4 1r2 1 2 4 8 16 32|
|3|1r243 1r81 1r27 1r9 1r3 1 3 9 27 81 243|
+-+---------------------------------------+
^ table i:5r1
+--+-----------------------------------------------------+
| | _5 _4 _3 _2 _1 0 1 2 3 4 5|
+--+-----------------------------------------------------+
|_5|_1r3125 1r625 _1r125 1r25 _1r5 1 _5 25 _125 625 _3125|
|_4|_1r1024 1r256 _1r64 1r16 _1r4 1 _4 16 _64 256 _1024|
|_3| _1r243 1r81 _1r27 1r9 _1r3 1 _3 9 _27 81 _243|
|_2| _1r32 1r16 _1r8 1r4 _1r2 1 _2 4 _8 16 _32|
|_1| _1 1 _1 1 _1 1 _1 1 _1 1 _1|
| 0| _ _ _ _ _ 1 0 0 0 0 0|
| 1| 1 1 1 1 1 1 1 1 1 1 1|
| 2| 1r32 1r16 1r8 1r4 1r2 1 2 4 8 16 32|
| 3| 1r243 1r81 1r27 1r9 1r3 1 3 9 27 81 243|
| 4| 1r1024 1r256 1r64 1r16 1r4 1 4 16 64 256 1024|
| 5| 1r3125 1r625 1r125 1r25 1r5 1 5 25 125 625 3125|
+--+-----------------------------------------------------+
2F. Functions over lists
S2F.
The expression 1+4+1+4+2
is said
to apply
addition over the list
1 4 1 4 2
.
This sum may also be expressed by applying
the over adverb /
to the
function +
,
as in +/1 4 1 4 2
. It may be
applied to
other functions similarly:
a=: 1 4 1 4 2
+/a
12
*/a
32
>./a
4
+./a
1
*./a
4
n=: 6
b=: i1 n
b
1 2 3 4 5 6
+/b
21
*/b
720
The /
used in the expressions
+/
and
*/
is called an adverb
because it applies to a verb to produce
a related verb. In math, an adverb is also
called an operator, a
rather non-committal term adopted by the
mathematician Oliver
Heaviside about a century ago.
+/
and the list
i.
can
be used to clarify (or at least
re-express) the
polynomial function introduced in Section
1I. Thus:
x=: 4
c=: 2 3 4
c p. x
78
x^0 1 2
1 4 16
c*x^0 1 2
2 12 64
+/c*x^0 1 2
78
+/c*x^i.3
78
3
equalled
the
number of items in the list of
coefficients.
This can be expressed for any coefficient
list by using the number function
#
as follows:
#c
3
i.#c
0 1 2
+/c*x^i.#c
78
d=: 1 4 6 4 1
+/d*x^i.#d
625
(d p. x),(x+1)^4
625 625
2G. Notes
S2G.
These two chapters have provided numerous
examples of the evaluation of a
variety of functions, but have not provided
proofs or demonstrations of the
properties of these functions or of
relations among them.
3B. Local behaviour and
area
3C. Graphs versus
function tables
3D. Notes
A table of the
function
"twenty-five minus
the square", or
"twenty-five with
minus
on the square" for
each item of the
argument
However, the
characteristics of
the
function can be
seen more easily
in a graph of
the function,
produced by
plotting each
column
of the table as
follows: starting
at
an arbitrary point
on a sheet of
squared
paper measure a
distance
Graphs can be
produced
quickly and
accurately by the
computer as
follows:
Plots of
polynomial
functions may show
further
interesting
characteristics.
For
example, study the
plot of the
following
function,
use
Remarks:
The result of
To anyone familiar
with the functions
sine and cosine of
trigonometry, it
may be
evident that the
functions
Moreover, the
cosine and sine of
a given angle are
sometimes defined
as the coordinates
of a
point on the unit
circle of radius
1, located
at the given angle
(that is, the arc
length
along the
circumference). It
should therefore
come as no
surprise that the
plot of
The expression
In addition to
providing an
overall view of
a function, its
graph shows the
local
behaviour, the
slopes of the
individual
segments
reflecting its
local rates of
growth
and decay.
Moreover, the
graph provides
a direct view of
the area under it,
a result
of considerable
significance.
This will be
illustrated by a
plot of a
semi-circle. The
function
The function
The last result is
the approximate
area
of the complete
circle, and is
therefore an
approximation to
the constant
Tables of
functions that
apply pairwise
to their arguments
can, however,
provide
similar insights.
Moreover, they can
provide
other information
(such as the rate
of
change of the rate
of change) not
readily
grasped from a
graph.
To this end we
will define a
pairwise
operator
Pairwise relations
such as
Any reader puzzled
by certain
notations
(such as the
double use of
4B.
Notes
Polynomials
are
important
for a
number
of
reasons:
*
Because
of the
wide
choice
of
coefficients
available,
polynomials
can be
defined
to
approximate
most
functions
of
practical
interest.
* As
already
illustrated
for
sums,
products,
and
composition
of
polynomials,
they
are
closed
under
a
number
of
important
functions,
in the
sense
that
the
resulting
function
is
again
a
polynomial.
These
include:
In
most
of
these
cases,
the
Taylor
operator
can be
used
to
obtain
the
coefficients
of the
resulting
polynomial.
With
increasing
use of
computer
experimentation,
it
becomes
important
to
learn
to
use
the
available
tools.
In
particular:
5B.
Truncated
power
series
5C.
Notes
On
the
other
hand,
the
power
series:
As
illustrated
by
the
last
column,
these
truncated
power
series
are
approximations
to
the
trigonometric
sine
function
(on
radian
arguments).
Moreover,
the
Taylor
operator
However,
it
was
possible
to
confine
that
discussion
to
rather
elementary
ideas,
whereas
a
meaningful
discussion
of
the
uses
of
power
series
would
quickly
lead
to
more
advanced
and
less
familiar
mathematical
notions
outside
the
experience
of
many
readers.
The
same
is
true
of
many
topics
(such
as
the
derivative,
symbolic
logic,
sets,
and
permutations),
and
we
will
leave
the
reader
to
observe
the
importance
of
topics
as
they
are
exploited
in
later
work.
In
other
words,
some
faith
is
expected
of
the
reader
"
a
belief
that
topics
will
be
introduced
only
if
they
are
both
important
and
interesting.
6B.
Derivatives
of
polynomials
6C.
Taylor
coefficients
6D.
Notes
Considered
as
a
sample
of
points
on
a
continuous
graph
of
the
function
(using
an
infinite
number
of
points),
these
sloping
lines
are
secants
(cutting
lines)
to
the
continuous
curve,
and
the
slope
at
a
point
is
the
tangent
(touching
line)
to
the
curve,
which
may
be
approximated
by
a
secant
with
a
small
interval.
The
expression
Multiplication
of
the
sums
gives
the
square
of
Similar
calculations
for
the
product
This
is
all
embodied
in
the
calculation
Note
that
the
zero
value
of
the
graph
of
the
derivative
occurs
at
the
argument
value
for
which
the
original
function
reaches
its
low
point,
that
is,
where
its
graph
is
horizontal.
The
phrase
derivative
of
In
this
chapter
we
have
skirted
the
issue
by
confining
attention
to
polynomial
functions,
for
which
the
limit
of
the
secant
slope
is
easily
obtained.
We
will,
however,
extend
these
results
to
the
many
important
functions
that
can
be
approximated
by
the
power
series
(themselves
polynomials)
that
were
discussed
in
Chapter
5.
Can
we
be
certain
that
the
derivative
of
a
polynomial
approximation
to
a
function
7B.
The
name
"exponential"
The
simplest
case
is
where
the
rate
of
growth
is
equal
to
the
size
--
this
is
described
by
the
exponential
function,
denoted
here
by
Since
a
polynomial
may
be
found
that
can
approximate
almost
any
function,
it
should
be
possible
to
find
one
that
approximates
the
exponential.
Consider
the
following:
In
the
dyadic
use
of
the
symbol
8B.
Harmonics
8C.
Decay
If
Moreover,
the
acceleration
is
caused
by
the
"restoring
force"
exerted
by
the
spring,
which
is
proportional
to
its
extension
as
measured
by
the
position
In
the
simplest
case
9B.
Equations
9C.
The
method
of
false
position
9D.
Newton"s
method
9E.
Roots
of
Polynomials
9F.
Logarithms
The
need
for
inverse
functions
arises
frequently.
For
example,
the
heat
produced
by
an
electric
heater
may
be
given
by
the
function
The
function
The
element
of
Although
Newton"s
method
converged
rather
rapidly
for
the
function
Nevertheless,
the
function
The
logarithm
is
discussed
further
in
Chapter
20.
10B.
Word
formation
10C.
Parsing
10D.
Conventional
mathematical
Notation
Formal
grammar
becomes
particularly
important
in
writing,
where
the
reader
has
no
recourse
to
interjected
questions,
but
must
extract
meaning
from
the
text
alone.
Similar
considerations
apply
in
mathematics.
Although
the
Hogben
remarks
cited
in
our
preface
emphasize
the
importance
of
language
and
grammar,
we
have
introduced
the
grammar
of
our
language
J
only
informally,
allowing
us
to
concentrate
on
the
mathematical
notions
it
has
been
used
to
convey.
This
informal
approach
has
been
made
tolerable
by
limiting
the
writing
required
of
a
student
in
Exercises
to
imitation
of
expressions
already
used,
and
by
providing
guidance
through
conversation
with
the
computer,
a
native
speaker
of
the
language.
This
chapter
will
address
the
formal
grammar
of
J,
and
will
also
comment
on
the
more
loosely
structured
grammar
of
conventional
mathematical
notation.
In
a
written
English
sentence
this
process
is
so
simple
as
to
go
unnoticed,
although
the
separation
by
spaces
is
somewhat
complicated
by
things
such
as
hyphens
and
apostrophes.
In
oral
communication
it
is
also
unnoticed,
not
because
the
breaking
of
a
continuous
stream
of
sound
into
words
is
simple,
but
because
(except
in
the
case
of
a
foreign
language)
it
is
so
deeply
ingrained.
In
the
case
of
J
the
word
formation
requires
some
attention,
although
it
is
simple
enough
to
have
been
thus
far
treated
informally
by
example.
The
computer
provides
a
word-formation
function
that
may
be
applied
to
a
sentence
enclosed
in
quotes.
Thus:
Alternative
spellings
for
the
national
use
characters
(which
differ
from
country
to
country)
are
discussed
under
Alphabet
( Numbers
are
denoted
by
digits,
the
underbar
(for
negative
signs
and
for
infinity
and
minus
infinity
--
when
used
alone
or
in
pairs),
the
period
(used
for
decimal
points
and
necessarily
preceded
by
one
or
more
digits),
the
letter
A
numeric
list
or
vector
is
denoted
by
a
list
of
numbers
separated
by
spaces.
A
list
of
ASCII
characters
is
denoted
by
the
list
enclosed
in
single
quotes,
a
pair
of
adjacent
single
quotes
signifying
the
quote
itself:
Names
(used
for
pronouns
and
other
surrogates,
and
assigned
referents
by
the
copula,
as
in
A
primitive
or
primary
may
be
denoted
by
a
single
graphic
(such
as
A
sentence
is
evaluated
by
executing
its
phrases
in
a
sequence
determined
by
the
parsing
rules
of
the
language.
For
example,
in
the
sentence
Moreover,
the
left
argument
of
an
adverb
or
conjunction
is
the
entire
verb
phrase
that
precedes
it.
Thus,
in
the
phrase
One
important
consequence
of
these
rules
is
that
in
an
unparenthesized
expression
the
right
argument
of
any
verb
is
the
result
of
the
entire
phrase
to
its
right.
The
sentence
Parsing
proceeds
by
moving
successive
elements
(or
their
values
except
in
the
case
of
proverbs
and
names
immediately
to
the
left
of
a
copula)
from
the
tail
end
of
a
queue
(initially
the
original
sentence
prefixed
by
a
left
marker
")
to
the
top
of
a
stack,
and
eventually
executing
some
eligible
portion
of
the
stack
and
replacing
it
by
the
result
of
the
execution.
For
example,
if
Parsing
can
be
observed
using
the
trace
conjunction
The
classes
of
the
first
four
elements
of
the
stack
are
compared
with
the
first
four
columns
of
the
table,
and
the
first
row
that
agrees
in
all
four
columns
is
selected.
The
bold
italic
elements
in
the
row
are
then
subjected
to
the
action
shown
in
the
final
column,
and
are
replaced
by
its
result.
If
no
row
is
satisfied,
the
next
element
is
transferred
from
the
queue:
It
includes
a
discussion
of
the
learnability
of
mathematical
notation
as
compared
with
other
specialized
notations
and
with
native
languages,
as
well
as
the
importance
of
such
learnability.
SOME
HISTORICAL
VIEWS
ON
NOTATION
Mathematicians
have
often
noted
the
power
and
importance
of
notation.
In
Part
IV
of
his
two-volume
A
History
of
Mathematical
Notations
[3],
Florian
Cajori
offers
the
following
examples:
Nothing
in
the
history
of
mathematics
is
to
me
so
surprising
or
impressive
as
the
power
it
has
gained
by
its
notation
or
language
...
But
in
Napier"s
time,
when
there
was
practically
no
notation,
his
discovery
or
invention
[of
logarithms]
was
accomplished
by
mind
alone,
without
any
aid
from
symbols.
J.W.L.
Glaisher
Some
symbols,
like
an,
...,
log
n,
that
were
used
originally
for
only
positive
integral
values
of
n
stimulated
intellectual
experimentation
when
n
is
fractional,
negative,
or
complex,
which
led
to
vital
extensions
of
ideas.
F.
Cajori
The
quantity
of
meaning
compressed
into
small
space
by
algebraic
signs,
is
another
circumstance
that
facilitates
the
reasonings
we
are
accustomed
to
carry
on
by
their
aid.
Charles
Babbage
Symbols
which
initially
appear
to
have
no
meaning
whatever,
acquire
gradually,
after
subjection
to
what
might
be
called
experimenting,
a
lucid
and
precise
significance.
E.
Mach
In
Sections
740
ff,
Cajori
laments
the
lack
of
standardization
of
mathematical
notation
in
the
following
excerpts:
"740
Uniformity
of
mathematical
notations
has
been
a
dream
of
many
mathematicians
...
"741
The
admonition
of
history
is
clearly
that
the
chance,
haphazard
procedure
of
the
past
will
not
lead
to
uniformity.
"746
In
this
book
we
have
advanced
many
other
instances
of
"muddling
along"
through
decades,
without
endeavor
on
the
part
of
mathematicians
to
get
together
and
agree
on
a
common
sign
language.
"748
In
the
light
of
the
teaching
of
history
it
is
clear
that
new
forces
must
be
brought
into
action
in
order
to
safeguard
the
future
against
the
play
of
blind
chance.
...
We
believe
that
this
new
agency
will
be
organization
and
co-operation.
To
be
sure,
the
experience
of
the
past
in
this
direction
is
not
altogether
reassuring.
However,
in
William
Oughtred:
A
Great
Seventeenth-Century
Teacher
of
Mathematics
[4],
Cajori
touches
on
a
quite
different
agency
that
bears
upon
the
development
and
teaching
of
mathematics
--
the
mathematical
instrument.
On
page
88
we
have:
PROGRAMMING
LANGUAGES
Early
computers
provided
a
small
set
of
operations
such
as
addition
and
multiplication,
and
were
controlled
by
programs
specifying
sequences
of
these
operations.
For
example,
on
the
Harvard
Mark
IV
[5],
the
program:
Programs
were
later
developed
to
translate
from
languages
more
congenial
to
mathematicians
into
equivalent
machine
language
programs
for
subsequent
execution.
For
example,
in
BASIC,
a
language
largely
derived
from
FORTRAN
(Formula
Translator)
[6],
one
might
write:
Moreover,
many
have
moved
to
Computer
Science,
unwittingly
following
the
advice
of
Newton,
as
expressed
in
the
following
excerpt
from
page
95
of
Cajori
[4]:
The
proliferation
of
programming
languages
shows
no
more
uniformity
than
mathematics.
Nevertheless,
programming
languages
do
bring
a
different
perspective.
Not
only
do
they
provide
precisely
defined
grammars,
but
they
address
a
much
wider
range
of
applications
than
do
any
one
of
the
notations
treated
by
Cajori.
Moreover,
they
sometimes
adopt
notions
from
advanced
mathematics
and
apply
them
fruitfully
at
elementary
levels.
For
example,
the
essential
notion
of
Heaviside"s
operators
[7]
(introduced
in
the
treatment
of
differential
equations)
is
the
application
of
an
entity
(called
an
operator)
which,
applied
to
a
function,
produces
a
related
function;
a
notion
more
familiar
in
the
form
f
'
for
the
derivative
of
f.
In
APL
[8],
an
operator
(denoted
by
/)
is
used
to
provide
reduction
over
a
vector
argument.
The
sum
over
a
vector
is
obtained
as
follows:
ECONOMY
OF
SYMBOLS
Far
from
introducing
further
symbols
in
the
manner
of
Oughtred"s
list
(of
some
150)
shown
in
"181
of
Cajori
[3],
programming
languages
are
largely
confined
to
a
standard
alphabet
(ASCII)
whose
special
characters
are
limited
to
the
following
familiar
list:
TRAINS
Some
writers,
such
as
March
and
Wolf
in
their
Calculus
[10],
denote
the
function
that
is
the
sum
of
functions
INFLECTION
A
symbol
formed
by
appending
a
dot
or
colon
to
a
given
function
symbol
will
be
said
to
be
inflected,
and
such
inflection
is
used
to
assign
related
symbols
to
related
functions,
providing
names
that
therefore
have
some
mnemonic
value.
For
example,
in
his
Laws
of
Thought
[9],
George
Boole
used
The
analogy
between
times
and
and
was
helpful,
and
the
conflict
with
the
normal
use
of
the
symbols
was
of
no
concern
within
the
confines
of
logic.
In
a
wider
context
it
is
a
concern,
and
J
uses
A
UNIFORM
NOTATION
Cajori
recognizes
the
importance
of
individual
invention,
but
warns
against
individual
efforts
to
impose
a
uniform
system:
"742
This
confusion
is
not
due
to
the
absence
of
individual
efforts
to
introduce
order.
Many
an
enthusiast
has
proposed
a
system
of
notation
for
some
particular
branch
of
mathematics,
with
the
hope,
perhaps,
that
contemporary
and
succeeding
workers
in
the
same
field
would
hasten
to
adopt
his
symbols
and
hold
the
originator
in
grateful
remembrance.
Oughtred
in
the
seventeenth
century
used
over
one
hundred
and
fifty
signs
for
elementary
mathematics
--
algebra,
geometry,
and
trigonometry.
However,
such
a
system
can
be
used
as
a
basis
for
the
discussion
of
mathematical
notation:
the
precision
provided
(or
enforced)
by
programming
languages
and
their
execution
can
identify
lacunas,
ambiguities,
and
other
areas
of
potential
confusion
in
conventional
notation.
Discussion
here
will
focus
on
such
matters,
and
may
suggest
remedies.
Discussion
will
also
center
on
a
single
programming
language
(J),
for
the
following
reasons:
*
As
indicated
in
my
A
Personal
View
of
APL
[12],
it
was
designed
"as
a
simple,
precise,
executable
notation
for
the
teaching
of
a
wide
range
of
subjects".
*
It
has
received
some
use
in
mathematical
exposition.
*
Its
simple
grammar
is
defined
by
a
ten-by-four
table
in
terms
of
six
parts
of
speech.
*
It
uses
vectors,
matrices,
and
higher-dimensional
arrays,
based
on
the
unifying
concept
of
rank
or
order
in
Tensor
Calculus
[13].
*
In
addition
to
the
bond
operator
already
discussed,
it
embraces
some
fifteen
or
more
operators
(such
as
dual,
Taylor,
and
Hypergeometric)
of
interest
in
mathematics.
GRAMMAR
The
evaluation,
interpretation,
or
execution
of
the
mathematical
expression
(or
sentence)
In
natural
language,
the
word-formation
is
largely
unnoticed,
except
in
listening
to
an
unfamiliar
language.
In
programming
languages,
the
word-formation
and
parsing
are
commonly
lumped
together
under
the
term
syntax.
In
J,
the
word-
formation
may
be
made
explicit
by
applying
the
word-formation
function
( Although
programming
languages
adopt
the
term
grammar
from
English,
most
use
terms
for
the
parts
of
speech
adopted
from
mathematics.
J,
on
the
other
hand,
uses
terms
from
English,
avoiding
certain
ambiguities
(such
as
the
use
of
operator
both
as
a
synonym
for
function
in
elementary
math,
and
as
an
operator
in
the
sense
of
Heaviside),
and
providing
additional
distinctions.
The
following
fragment
exemplifies
all
of
the
parts
of
speech:
The
choice
of
English
terms
is
based
on
the
analogy
between
the
"action
words"
verb
and
function
(which
derives
from
the
Latin
fungio,
to
perform).
Moreover,
adverb
describes
the
action
of
an
operator
in
applying
to
a
verb
to
produce
a
verb,
and
conjunction
reflects
the
use
of
the
copulative
conjunction
and
to
produce
a
verb
such
as
"run
and
hide".
The
word
proverb
(in
the
sense
used
here)
is
pronounced
with
a
long
o.
The
term
variable
merits
further
comment.
The
expressions
However,
the
use
of
the
term
variable
for
the
pronoun
SYNONYMS,
ANONYMS,
AND
SUBSTITUTION
A
synonym
of
a
word
is
a
word
with
a
similar,
but
not
necessarily
equivalent,
meaning.
Synonyms
that
occur
in
mathematical
notation
can
be
misleading
if
they
are
carelessly
interpreted.
For
example,
division
may
be
expressed
as
a%b
or
a/b.
Are
they
equivalent?
If
so,
are
a%b%c
and
and
a/b/c
and
a%b/c
and
a/b%c
equivalent?
Or
do
they
differ
in
order
of
execution?
It
may
be
said
that
"one
would
never
write
such
forms",
but
if
not,
why
not?
Are
there
any
rules
that
forbid
it,
and
how
is
the
beginning
student
to
know?
Notice
that
a/
3/4
would
probably
be
accepted,
if
only
because
the
form
3/4
no
longer
denotes
division:
it
is
the
commonly-accepted
form
of
the
constant
three-quarters.
Synonyms
for
multiplication
raise
further
questions.
For
example,
are
the
following
expressions
all
executed
in
the
same
order:
a%b*c
and
a%bc
and
a/b*c
and
3/4c?
The
term
anonym
(a
nameless
person)
will
be
used
for
any
nameless
entity:
in
the
product
abc,
the
matrix
product
M
N
(or
MN),
and
the
power
xn,
the
functions
applied
are
unnamed.
Although
this
anonymity
normally
goes
unremarked,
it
has
consequences.
As
remarked
in
the
section
on
Programming
Languages,
the
notation
Moreover,
the
strict
use
of
the
anonymous
form
abc
forbids
the
use
of
multi-character
mnemonic
names
such
as
age
and
area
in
elementary
algebra,
giving
the
unfortunate
impression
that
algebra
is
about
letters
rather
than
about
the
use
of
names.
Multi-character
names
that
end
in
digits
do
get
used:
a2
is
interpreted
as
a
single
name
rather
than
as
the
product
of
a
and
2,
although
2a
is
interpreted
as
two
times
a.
An
important
general
notion
is
the
validity
of
substituting
equals
for
equals,
and
it
is
particularly
valuable
in
mathematics.
Nevertheless,
conventional
mathematical
notation
does
not
always
permit
it.
For
example,
using
the
anonymous
form
xy:
In
APL
and
J
there
is
no
heirarchy,
the
need
for
parentheses
in
polynomials
(as
in
many
other
expressions)
being
obviated
by
the
use
of
vectors,
as
in
The
expression
The
math
result
is
the
first
element
less
the
sum
of
the
rest
(i.e.,
Since
Heirarchy
introduces
ambiguities,
particularly
for
synonyms
and
anonyms,
which
may
or
may
not
be
accorded
the
same
positions:
are
a/bc
and
a/b*c
equivalent?
CONSTANTS
Mathematics
reserves
various
symbols
for
constants,
such
as
e
(for
Euler"s
number),
and
the
Greek
pi.
Programming
languages
use
"scientific"
notation
of
the
form
Notations
such
as
NEUTRAL
OR
IDENTITY
ELEMENT
In
Section
2.6
of
Concrete
Mathematics
[2],
Graham,
Knuth
and
Patashnik
state
that
"...
a
product
of
no
factors
is
conventionally
taken
to
be
1
(just
as
a
sum
of
no
terms
is
conventionally
0)."
These
choices
are
not
mere
conventions,
and
may
be
based
more
firmly
on
the
neutral
or
identity
element
of
a
function,
that
is,
a
value
Using
The
indicated
identities
hold
as
well
for
the
case
EMPTY
CASES
IN
DEFINITION
In
a
definition
of
the
form
x(x-1)...(x-m+1)
(As
in
Eq
2.43
of
Concrete
Mathematics
[2]
together
with
the
note:
m
factors
for
m
not
equal
to
0),
the
notation
does
not
show
explicitly
what
happens
in
the
case
of
m=0.
In
vector
notation,
this
definition
(of
the
falling
factorial
function)
becomes
Because
the
factors
in
the
expression
change
in
steps
like
the
stope
in
a
mine,
these
functions
are
collectively
called
stopes,
and
the
fit
operator
Furthermore,
DUALS
It
is
a
familiar
observation
that
almost
every
stated
task
t
is
preceded
by
some
preparation
p,
and
followed
by
restoration
(the
inverse
of
p).
This
is
sometimes
expressed
as
performing
"t
under
p",
as
in
"surgery
under
anesthetic".
In
mathematics,
the
terms
dual
and
duality
are
sometimes
used,
as
in
"or
is
the
dual
of
and
under
(or
with
respect
to)
negation",
and
"the
duality
of
and
and
or".
The
use
of
under
is
ubiquitous
in
mathematics
and
related
disciplines,
but
often
cloaked
in
other
terms,
such
as
similarity
in
the
product
S-1
A
S,
where
S
is
a
matrix
of
eigenvectors
that
maps
to
"natural"
coordinates.
We
will
express
"t
under
p"
as
This
last
example
uses
the
function
LEARNABILITY
OF
LANGUAGE
The
learnability
of
a
discipline
depends
strongly
on
the
learnability
of
the
language
used.
In
teaching
mathematics
we
should
therefore
consider
the
learnability
of
the
language
used,
and
compare
it
with
that
of
specialized
languages
(such
as
musical
notation),
and
of
our
native
tongue.
For
example,
a
child
can
quickly
learn
to
transcribe
the
following
tune
from
musical
notation
to
a
piano,
perhaps
by
merely
watching
it
done
by
an
adult:
Further
refinements
such
as
the
indication
of
time,
sharps,
flats,
and
phrasing
may
be
added
and
learned
with
equal
facility.
Two
matters
warrant
further
comment:
*
A
less
graphic
presentation
of
the
notes
(such
as
the
sequence
e
c
a
c
e
c)
would
be
more
difficult
for
a
beginner
to
learn.
Moreover,
the
phenomenal
rate
of
transcription
by
a
pianist
could
hardly
be
achieved
using
parallel
lists
of
named
notes.
Admittedly,
this
speed
is
due
in
part
to
the
musical
coherence
of
the
piece
transcribed,
just
as
our
speed
in
reading
a
meaningful
English
sentence
is
much
greater
than
in
reading
gibberish.
*
The
ease
of
learning
musical
notation
claimed
in
this
example
is
due
in
part
to
the
tool
used;
in
this
case
the
piano.
The
linear
arrangement
of
the
piano
keys
mirrors
the
vertical
movement
over
the
musical
staff,
and
proves
much
easier
to
understand
than
the
multiple
strings
(and
absence
of
frets)
on
a
violin.
With
the
computer
and
programming
languages,
mathematics
has
newly-acquired
tools,
and
its
notation
should
be
reviewed
in
the
light
of
them.
The
computer
may,
in
effect,
be
used
as
a
patient,
precise,
and
knowledgeable
"native
speaker"
of
mathematical
notation.
In
The
Language
Instinct
[14],
Pinker
has
treated
the
phenomenal
learnability
of
natural
languages
as
an
inborn
instinct
in
children,
and
in
The
Symbolic
Species
[15],
Deacon
has
presented
the
co-evolution
of
language
and
the
human
brain
as
an
explanation
of
this
miracle
of
an
inborn
facility.
In
Deacon"s
view,
language
has
developed
under
evolutionary
pressure
to
have,
at
least
for
elementary
purposes,
a
uniform
structure
that
is
easily
learned,
particularly
by
infants.
For
example,
the
pattern
in
the
sentences:
applies
uniformly
to
other
nouns
and
verbs.
Moreover,
these
patterns
extend
to
simple
compound
sentences
and
tenses:
Of
course
a
child
never
hears
a
phrase
such
as
"holded
the
doll",
but
uniformly
applies
the
pattern
used
in
"dropped",
finally
adopting
the
anomalous
forms
of
strong
verbs
such
as
hold.
According
to
Pinker,
this
adoption
occurs
at
a
time
quite
independent
of
badgering
by
adults
(No,
dear,
you
held
the
doll).
However,
in
contrast
to
our
native
tongue,
mathematical
notation
is
neither
uniform
nor
easy
to
learn.
Consider
the
following
examples,
expressed
first
in
English:
A
review
of
earlier
sections
will
suggest
other
examples
of
non-uniform
notation
that
further
increase
the
difficulties
for
a
beginner.
Experienced
mathematicians
may
well
accept
such
non-uniformities
as
obvious
or
natural.
Moreover,
they
will
be
properly
concerned
about
the
continued
readability
of
older
literature
if
any
change
were
to
be
made.
However,
this
is
not
a
new
problem,
and
there
are
known
ways
in
which
such
change
may
be
addressed.
Are
such
non-uniformities
essential
to
mathematics,
or
are
they
simply
relics
of
the
"...chance,
haphazard
procedure
of
the
past..."
cited
by
Cajori,
and
therefore
replacable?
To
illustrate
the
possibilities,
we
will
repeat
the
foregoing
examples
together
with
equivalent
expressions
in
two
distinctly
different
programming
languages:
A
PROGRAM
FOR
MATHEMATICAL
NOTATION
We
cannot
expect
our
mathematical
notation
to
be
as
accessible
as
our
native
language.
In
particular,
it
can
never
enjoy
the
ever-present
opportunity
to
experiment
and
to
provide
immediate
and
gratifying
results
that
is
enjoyed
by
our
native
language,
at
least
not
for
very
young
children.
However,
we
might
make
mathematical
notation
more
accessible
by:
*
Complementing
existing
notation
by
notation
possessing
a
simple
and
uniform
grammar
and
using
only
familiar
and
readily
available
symbols.
*
Making
this
complementary
notation
executable
on
a
computer,
so
that
a
student
might
easily
obtain
gratifying
results
that
encourage
exploration.
*
Providing
material
to
guide
exploration
in
a
restrained
manner
that
does
not
stifle
the
thrill
of
independent
discovery.
EXPLORATION
We
now
present
examples
of
using
the
computer
in
exploring
a
few
functions
and
operators,
as
well
as
in
exploring
the
grammar
of
the
notation
used.
We
invite
mathematicians
to
ponder
the
question
of
how
they
might
be
presented
in
conventional
notation.
Exp
1
From
the
functions:
Observe
the
results
and
attempt
to
identify
and
name
the
functions
used;
but
do
not
spend
too
much
time,
since
the
next
exploration
provides
better
tools.
Exp
2
Enter
Exp
3
Define
and
experiment
with
functions
such
as
Exp
4
Repeat
explorations
2
and
3
using
the
following
symmetric
lists,
and
comment
on
any
interesting
characteristics
of
the
resulting
tables:
Exp
6
Use
the
results
of
the
following
expressions
(and
similar
experiments)
to
state
in
English
(and
in
conventional
math
notation)
the
relations
among
the
tables
generated:
Exp
7
Enter
expressions
of
the
following
forms,
and
then
describe
in
English
(and
in
mathematical
notation)
the
effects
of
Exp
8
Examine
the
production
of
tables
of
Stirling
numbers
by
the
expression
Exp
9
To
explore
the
rhematic
(word-formation)
rules
of
J,
enter
expressions
such
as:
Exp
10
Enter
the
expressions
Tracing
may
be
switched
off
by
entering
The
parsing
table
from
Section
C
illuminates
the
annotations
provided
by
the
trace.
Exp
11
For
further
simple
explorations
use
Exercises
from
Chapter
1
of
Iverson
[16].
SUMMARY
In
this
section
we
have
attempted
to:
*
Use
the
strict
grammar
and
precise
interpretation
of
programming
languages
to
illuminate
some
of
the
vagaries
of
a
mathematical
notation
that
has,
as
De
Morgan
said,
"...grown
up
without
much
looking
to,
at
the
dictates
of
convenience
..."
*
Indicate
the
potentially
benign
effects
on
the
learnability
of
mathematical
notation
that
can
be
provided
by
simple
uniform
notation
combined
with
the
opportunity
for
precise
and
independent
exploration
using
computers.
*
Sketch
the
possibilities
of
adopting
some
complementary
and
non-conflicting
notation
executable
on
computers.
11B.
Informal
proofs
11C.
Formal
proofs
11D.
Inductive
proofs
11E.
Recursive
definition
11F.
Guessing
games
Although
proofs
are
an
important
(and
many
might
say
the
essential)
part
of
mathematics,
we
will
spend
little
time
on
them
in
this
book.
In
introducing
his
book
Proofs
and
Refutations:
The
Logic
of
Mathematical
Discovery
[17],
Imre
Lakatos
makes
the
following
point:
The
main
point
of
the
present
book
is
to
exploit
new
tools
for
the
exploration
of
relations
and
patterns,
that
can
be
used
by
both
mathematicians
and
laymen
to
find
those
guesses
that
are
amenable
to,
and
worthy
of,
proof.
We
recommend
the
reading
of
Lakatos
at
any
point:
his
book
is
highly
entertaining,
instructive,
and
readable
by
any
layman
with
the
patience
to
look
up
the
meanings
of
a
small
number
of
words
such
as
polyhedron,
polygon,
and
convex.
The
following
quotes
from
Lakatos
reflect
his
view
of
the
importance
of
guessing:
I
have
had
my
results
for
a
long
time,
but
I
do
not
yet
know
how
I
am
to
arrive
at
them.
Gauss
If
only
I
had
the
theorems!
Then
I
should
find
the
proofs
easily
enough.
Riemann
I
hope
that
now
all
of
you
see
that
proofs,
even
though
they
may
not
prove,
certainly
do
help
to
improve
our
conjecture.
Lakatos
On
the
other
hand
those
who,
because
of
the
usual
deductive
presentation
of
mathematics,
come
to
believe
that
the
path
of
discovery
is
from
axioms
and/or
definitions
to
proofs
and
theorems,
may
completely
forget
about
the
possibility
and
importance
of
naive
guessing.
Lakatos
We
cite
two
further
comments
on
the
effects
of
excessive
formalism
in
the
teaching
of
mathematics:
Plato"s
exaltation
of
mathematics
as
an
august
and
mysterious
ritual
had
its
roots
in
dark
superstitions
which
troubled,
and
fanciful
puerilities
which
entranced,
people
who
were
living
through
the
childhood
of
civilization,
when
even
the
cleverest
people
could
not
clearly
distinguish
the
difference
between
saying
that
13
is
a
"prime"
number
and
saying
that
13
is
an
unlucky
number.
His
influence
on
education
has
spread
a
veil
of
mystery
over
mathematics
and
helped
to
preserve
the
queer
freemasonry
of
the
Pythagorean
brotherhoods,
whose
members
were
put
to
death
for
revealing
secrets
now
printed
in
school
books.
It
reflects
no
discredit
on
anyone
if
this
veil
of
mystery
makes
the
subject
distasteful.
Plato"s
great
achievement
was
to
invent
a
religion
which
satisfies
the
emotional
needs
of
people
who
are
out
of
harmony
with
their
social
environment,
and
just
too
intelligent
or
too
individualistic
to
seek
sanctuary
in
the
cruder
forms
of
animism.
Hogben
"
the
author
has
the
notion
that
mathematical
formulas
have
their
"secret
life,"
behind
their
Golem-like
appearance.
To
bring
out
the
"secret
life"
of
mathematical
relations
by
an
occasional
narrative
digression
does
not
appear
to
him
a
profanation
of
the
sacred
rituals
of
formal
analysis
but
merely
an
attempt
to
a
more
integrated
way
of
understanding
The
reader
who
has
to
struggle
through
a
maze
of
"lemmas,"
"corollaries,"
and
"theorems,"
can
easily
get
lost
in
formalistic
details,
to
the
detriment
of
the
essential
elements
of
the
results
obtained.
By
keeping
his
mind
on
the
principal
points
he
gains
in
depth,
although
he
may
lose
in
details.
The
loss
is
not
serious,
however,
since
any
reader
equipped
with
the
elementary
tools
of
algebra
and
calculus
can
easily
interpolate
the
missing
details.
It
is
a
well-known
experience
that
the
only
truly
enjoyable
and
profitable
way
of
studying
mathematics
is
the
method
of
"filling
in
details"
by
one"s
own
efforts.
Lanczos[18]
However,
it
is
important
to
remember
that
in
addition
to
the
mathematics
that
is
important
to
the
intelligent
layman,
there
is
another
mathematics,
as
expressed
by
G.H.
Hardy
in
his
A
Mathematician"s
Apology
[19]:
What
about
other
steps,
such
as
the
equivalence
of
For
the
layman
it
may
be
best
to
accept
informal
proofs,
but
harbor
a
healthy
suspicion
that
obvious
ideas
are
sometimes
wrong.
In
a
further
quotation
from
Lakatos:
"
You
are
interested
only
in
proofs
which
"prove"
what
they
have
set
out
to
prove.
I
am
interested
in
proofs
even
if
they
do
not
accomplish
their
intended
task.
Columbus
did
not
reach
India
but
he
discovered
something
quite
interesting.
Suppose
that
by
assuming
that
If,
independently
of
this
assumption,
we
are
able
to
show
further
that
equality
does
hold
for
some
specific
value
(such
as
A
recursive
definition
therefore
depends
upon
three
functions,
such
as
A
recursively
defined
function
provides
a
convenient
base
for
an
hypothesis
for
use
in
an
inductive
proof.
For
example
a
function
We
will
use
this
last
relation
in
an
inductive
proof
that
the
sum
of
the
first
The
quotes
from
Lakatos
in
Section
11A
emphasize
the
importance
of
guessing
at
relationships,
and
the
use
of
proofs
to
test
and
refine
the
resulting
conjectures.
We
will
now
discuss
techniques
for
guessing,
emphasizing
the
use
of
the
computer.
However,
games
are
seductive;
the
reader
should
perhaps
limit
the
time
spent
on
this
section,
but
plan
to
return
to
it
again
and
again.
EACHBOX
and
BOX
The
list
function
DIAGONAL
It
is
sometimes
necessary
to
apply
a
function
to
each
diagonal
of
a
table.
For
example:
DIFFERENCES
If
The
letters
in
a
word
can
be
sorted
into
alphabetical
order
by
using
the
function
The
last
result
indicates
that
there
are
only
six
anagrams
of
the
three-letter
word,
with
the
indices
The
last
results
illustrate
that
anagrams
of
lists
of
numbers
may
be
made,
and
that
if
these
lists
are
indices
(such
as
In
making
tables
of
anagrams
by
hand
as
required
in
the
first
list
of
Exercises,
it
was
probably
easy
to
do
the
first
two
by
simply
jotting
down
the
anagrams
unsystematically.
However,
for
larger
tables
it
becomes
difficult
to
avoid
repetitions
and
to
ensure
that
the
table
is
complete,
especially
if
one
does
not
know
how
many
there
are
in
all.
The
number
of
anagrams
of
an
A
comparison
of
Exercises
3
and
4
indicates
that
it
is
easier
to
write
the
table
for
a
word
whose
letters
are
in
some
systematic
order,
preferably
alphabetic.
The
result
of
If
This
suggests
a
method
for
making
permutations
of
the
next
higher
order:
replicate
and
modify
the
table
of
permutations
of
order
13B.
Or,
and,
and
not
13C.
Lists
and
sets
13D.
Classification
The
list
of
positive
numbers
that
occur
in
a
list
Otherwise
one
might
confuse
the
question
of
the
ordering
of
the
defining
list
14B.
Commutativity
14C.
Associativity
14D.
Symmetry
14E.
Distributivity
14F.
Distributivity
of
dyadic
functions
14G.
Parity
For
example,
Section
11C
showed
that
Certain
important
identities
are
expressed
as
general
properties
of
functions,
referred
to
as
commutativity,
associativity,
symmetry,
distributivity,
and
parity.
The
expressions
A
function
that
yields
the
same
result
for
any
association
imposed
by
parentheses
is
said
to
be
associative.
For
example,
A
function
that
applies
to
any
permutation
of
a
list
to
yield
the
same
result
is
said
to
be
symmetric.
For
example:
Since
double
and
halve
each
distribute
over
addition,
and
since
they
may
be
expressed
as
the
equivalent
functions
However,
The
situation
is
more
accurately
stated
by
saying
that
the
monadic
functions
As
we
will
show
in
Chapter
19,
we
can
use
complex
numbers
to
similarly
express
the
sine
and
cosine
as
odd
and
even
parts
of
a
function
closely
related
to
the
exponential.
15B.
Dot
product
as
a
linear
vector
function
15C.
Matrix
inverse
Comment
on
the
matrices
that
represent
them
and
their
inverses.
16B.
Products
of
polynomials
16C.
Multiplication
of
decimal
numbers
16D.
Other
bases
16E.
Remainder,
Divisibility,
and
Integer
part
16F.
Notes
ax0+bx1+cx2+dx3
ax3+bx2+cx1+dx0
Descending
order
is
commonly
used
in
high
school,
but
ascending
order
is
more
suitable
in
advanced
math,
because
in
truncated
power
series
a
"largest
exponent"
may
not
be
clearly
identified.
To
compare
these
schemes
we
will
define
two
functions
called
The
final
example
suggests
that
a
descending
polynomial
with
right
argument
It
follows
that
the
elements
of
An
equivalent
list
of
single
digits
can,
however,
be
obtained
by
"carrying"
all
but
the
final
digit
to
the
next
higher
element,
as
illustrated
in
the
following
sequence:
Not
only
is
this
combined
multiplication-and-carry
more
difficult
to
execute
accurately,
but
the
resulting
record
is
almost
impossible
to
check
for
possible
errors
except
by
repeating
the
entire
process
"
a
repetition
that
invites
repetition
of
the
same
errors.
The
remainder
function
is
denoted
by
If
the
remainder
The
number
The
integer
quotient
can
also
be
obtained
by
applying
the
integer
part
function
III
II;
IIIoII;
III
IIo;
IIIoIIo
...If
our
base
is
b,
we
need
only
(b-1)
other
signs
e.g.
if
b=10
the
other
signs
we
need
are
nine
in
all.
We
can
then
express
any
nameable
number
however
great
without
enlarging
our
stock
in
trade.
...Its
invention
liberated
the
human
intellect
from
the
prison
bars
of
the
counting
frame.
The
new
script
was
a
complete
model
of
the
mechanical
process
one
performs
with
it.
With
a
sign
for
the
empty
column,
'carrying
over'
on
slate,
paper
or
parchment
is
just
as
easy
as
carrying
over
on
the
abacus.
...In
mediaeval
Europe,
the
name
for
such
rules
was
algorithms,
a
corruption
of
the
name
of
a
thirteenth
century
mathematician,
spelled
Al
Khwarismi
or
Alkarismi.
17B.
Designing
an
algorithm
17C.
Explicit
definition
A
recipe
may
call
for
some
thing
(such
as
Hollandaise
sauce)
which
is
itself
specified
by
a
recipe;
in
mathematics
or
programming
such
a
thing
is
more
commonly
called
a
function
or
component
function.
For
example,
in
the
program
the
program
for
the
function
EXAMPLE
1
Define
a
function
for
the
decaying
sine
curve.
We
begin
by
assigning
values
to
a
list
argument
In
Section
11E,
the
agenda
operator
18B.
Area
under
a
graph
as
a
function
18C.
Polynomial
approximations
We
will
first
make
a
similar
graph,
using
a
finer
grid
(with
a
spacing
0.05
between
points):
Consider
the
point
The
rate
of
change
In
other
words,
the
area
under
the
graph
of
a
function
is
the
anti-derivative
of
the
function.
Since
this
area
can
be
viewed
as
the
aggregation
or
integration
of
the
component
areas,
it
is
also
called
the
integral
of
the
function.
This
situation
is
analogous
to
the
equation-solving
of
Chapter
9,
which
gives
the
inverse
of
a
function
for
some
chosen
point,
but
not
the
inverse
function
itself.
A
practical
solution
to
the
anti-derivative
of
a
function
The
expression
The
function
19B.
Complex
numbers
19C.
Division
19D.
The
Exponential
Family
Such
negative
numbers
were
once
regarded
as
curious
absurdities,
but
are
found
to
serve
consistently
and
usefully
under
addition,
subtraction,
and
multiplication.
Similarly,
the
introduction
of
division
as
the
inverse
of
multiplication
leads
to
the
consistent
and
useful
notion
of
fractional
numbers.
Because
the
square
of
any
number
(positive
or
negative)
is
non-negative,
the
introduction
of
the
square
root
as
the
inverse
of
the
square
leads
to
a
further
extension
when
applied
to
a
negative
number.
These
new
numbers
were
(and
still
are)
called
imaginary.
For
example:
The
function
20B.
Mathematics:
from
the
Birth
of
Numbers
20C.
Concrete
mathematics
20D.
Computer
Resources
20E.
Conclusion
These
facts
make
it
possible
to
present
to
the
layman
a
simple
view
of
calculus
as
the
study
of
the
rate
of
change
of
a
function,
and
to
use
it
to
provide
insight
into
matters
such
as
the
sine
and
cosine
functions
(so
useful
in
trigonometry
and
the
study
of
mechanical
and
electrical
vibrations),
and
into
the
exponential
and
its
inverse
the
logarithm
(so
useful
in
growth
processes
and
matters
such
as
the
familiar
musical
scale).
These
matters
have
now
been
addressed,
but
there
remain
many
practical
and
interesting
topics
(such
as
probability
and
statistics)
that
are
well
within
the
grasp
and
interest
of
a
layman.
Rather
than
pursue
these,
we
will
conclude
by
suggesting
sources
for
further
study.
Although
there
are
many
excellent
elementary
treatments
of
math
(including
some
high-school
texts),
they
are
all
couched
in
conventional
notation,
which
we
have
(except
for
the
discussion
in
Chapter
10)
largely
ignored.
This
may
make
their
study
difficult.
However,
the
use
of
a
foreign
(that
is,
unfamiliar)
language
also
offers
advantage:
the
effort
of
translation
often
forces
one
to
"look
behind
the
words"
to
gain
a
clearer
understanding
of
their
import.
We
will
discuss
just
two
texts,
in
addition
to
resources
available
on
the
computer.
The
first
text
(Gullberg,
Mathematics:
From
the
Birth
of
Numbers
[20])
is
serious,
entertaining,
and
extensive,
and
provides
a
wealth
of
interesting
historical
detail.
As
stated
in
a
foreword
by
Peter
Hilton
(an
emeritus
professor
of
mathematics):
This
is
not
to
deny
the
usefulness
of
mathematics;
this
very
usefulness,
however,
tends
to
conceal
and
disguise
the
cultural
aspect
of
mathematics.
...
Further,
the
study
of
mathematics
starts
with
the
teaching
of
arithmetic,
a
horrible,
wretched
subject,
far
removed
from
real
mathematics,
but
perceived
to
be
useful.
As
a
result,
vast
numbers
of
intelligent
people
become
'mathematics
avoiders'
even
though
they
have
never
met
mathematics.
Their
desire
to
avoid
the
tedium
of
elementary
arithmetic,
with
its
boring,
unappetizing
algorithms
and
pointless
drill-calculations,
is
perfectly
natural
and
healthy.
To
those
intelligent
people,
it
must
seem
absurd
to
liken
mathematics
to
music
as
an
art
to
be
savored
and
enjoyed
even
in
one's
leisure
time.
Yet
that
is
how
it
should
appear
and
could
appear
if
it
were
playing
its
proper
role
in
our
(otherwise)
civilized
society.
Just
as
an
appreciation
of
music
is
a
hallmark
of
the
educated
person,
so
should
be
an
appreciation
of
mathematics.
The
author
of
this
book
is
a
splendid
example
of
an
educated
person
bearing
this
hallmark.
The
second
(Graham,
Knuth
and
Patashnik,
Concrete
Mathematics
[2])
is
presented
as
"A
foundation
for
Computer
Science".
As
stated
in
the
preface:
This
text
is
recommended
not
only
because
of
its
clarity
and
coverage,
but
also
because
of
my
Concrete
Math
Companion
[21],
which
may
prove
helpful
in
the
matter
of
notation.
It
provides
an
extensive
commentary
on
the
Graham
text,
expressed
in
the
executable
notation
used
here.
CONTINUED
FRACTIONS
On
page
127,
Gullberg
says:
N = a0 + 1
-----------------------
a1 + 1
------------------
a2 + 1
-------------
a3 + 1
--------
a4 + ...
or, in a kind of accepted mathematical "shorthand",
N = [a0, a1, a2, a3 ...]
The
fibonacci
numbers
(treated
by
Gullberg
on
page
287)
may
also
be
obtained
as
continued
fractions.
For
example:
On
page
143,
Gullberg
shows
examples
of
continued
fraction
approximations
to
irrational
numbers
such
as
the
square
root
of
six:
Multiplying
all
entries
of
any
row
multiplies
the
determinant
by
the
same
factor.
The
area
of
a
triangle
is
one-half
the
absolute
value
of
the
determinant
of
the
matrix
obtained
by
bordering
the
three-by-two
table
of
its
coordinates
by
a
column
of
ones.
Similarly,
the
tetrahedron
specified
by
a
four-by-three
table
of
points
in
three
dimensions
may
be
bordered
by
ones
and
subjected
to
the
determinant
to
yield
six
times
( The
following
practicable
systems
of
logarithms
are
used:
lg
x
The
common
logarithm
of
x
(to
base
10)
(also
called
log
x
...)
ln
x
The
natural
logarighm
of
x
(to
base
e)
lb
x
The
binary
logarithm
of
x
(to
base
2)
loga
x
The
logarithm
of
x
to
the
base
a
(also
called
alog
x,
especially
in
older
texts)
1.
Zero
is
a
number.
2.
Every
natural
number
or
zero,
a,
has
an
immediate
successor
a
+
1.
GENERATING
FUNCTIONS
and
TAYLOR
SERIES
In
Section
7.2
GKP
states:
G(z)
=
g0
+
g1z
+
g2z2
+
...
(7.12)
and
we
say
that
G(z),
or
G
for
short,
is
the
generating
function
for
the
sequence
<g0,g1,g2,
...>,
which
we
also
call
<gn>.
The
coefficient
gn
of
zn
in
G(z)
is
sometimes
denoted
[zn]G(z).
For
example,
the
functions
for
the
exponential,
sine,
and
the
product
of
the
sine
and
the
exponential
may
be
generated
as
follows:
a1
+
a2
+...+
an
where
each
ak
is
a
number
that
has
been
defined
somehow.
...the
number
of
ways
to
partition
a
set
of
n
things
into
k
nonempty
subsets
In
Section
5F,
CMC
introduces
the
falling
factorial
function
The
required
transformation
matrices
are
given
by:
These
topics
are
presented
as
labs
in
the
sense
that,
at
any
point
in
the
presentation,
you
may
enter
your
own
J
expressions
to
experiment
with
the
ideas
presented.
Or
you
may
use
the
facilities
described
in
Section
4B
to
capture
and
revise
expressions
already
used
in
the
presentation
or
in
your
own
experiments.
For
example,
choosing
"Fractals,
Visualization,
&
J"
leads
to
a
function
which,
applied
repeatedly
to
the
one-element
list
DEMONSTRATIONS
The
demos
include
a
game
(called
Pousse),
a
table
of
distances
between
major
cities,
and
numerous
graphical
displays
of
objects
in
two
and
three
dimensions.
By
choosing
the
Definition
option
in
some
displays
you
may
study,
and
even
modify,
the
programs
that
produce
them.
DICTIONARY
DEFINITIONS
Further
information
about
J
may
be
obtained
from
the
Help
menu
as
described
in
Section
4B,
but
definitions
may
also
be
obtained
more
directly
by
pressing
key
F1
to
display
the
vocabulary,
and
then
clicking
on
the
desired
item.
For
example,
selecting
the
item
A
definition
may
also
be
displayed
by
placing
the
cursor
immediately
to
the
left
of
a
symbol
on
the
screen
and
pressing
F1
while
holding
down
the
CONTROL
key.
The
view
which
we
shall
explore
is
that
mathematics
is
the
language
of
size,
shape
and
order
and
that
it
is
an
essential
part
of
the
equipment
of
an
intelligent
citizen
to
understand
this
language.
If
the
rules
of
mathematics
are
the
rules
of
grammar,
there
is
no
stupidity
involved
when
we
fail
to
see
that
a
mathematical
truth
is
obvious.
The
rules
of
ordinary
grammar
are
not
obvious.
They
have
to
be
learned.
They
are
not
eternal
truths.
They
are
conveniences
without
whose
aid
truths
about
the
sorts
of
things
in
the
world
cannot
be
communicated
from
one
person
to
another.
.......
Before
the
assembled
court,
Euler
accosted
him
with
the
following
pronouncement,
which
was
uttered
with
due
gravity:
.......
Like
many
of
us,
Diderot
had
stagefright
when
confronted
with
a
sentence
in
size
language.
He
left
the
court
abruptly
amid
the
titters
of
the
assembly,
confined
himself
to
his
chambers,
demanded
a
safe
conduct,
and
promptly
returned
to
France.
This
discussion
may
be
found
by
first
clicking
on
Chapter
20
in
the
list
at
the
beginning
of
the
text,
then
clicking
on
Section
20C,
and
then
moving
back
up
the
page
to
the
last
part
of
Section
20B.
The
function
denoted
by
Compare
your
definitions
with
those
given
below.
In
his
imaginative
and
persuasive
Vision
in
Elementary
Mathematics
[22],
W.W.
Sawyer
uses
similar
(hand-drawn)
pictures
to
introduce
elementary
concepts
in
arithmetic
and
algebra,
clarifying
the
ideas
by
"translating"
from
pictures
to
notation
and
back.
Sawyer's
pictures
do
not
even
require
the
somewhat
abstract
notion
of
the
numeral
Addition
is
shown
as:
For
further
justification
of
the
choice
of
Click
on
any
one
of
the
Chapters
listed
at
the
beginning
of
the
text,
and
then
click
on
the
chapter
heading
to
return
to
the
list
of
chapters.
Click
on
any
one
of
the
Sections
listed
at
the
beginning
of
the
selected
chapter,
and
then
click
on
the
Section
heading
to
return
to
the
chapter.
Again
select
a
chapter
and
a
section
within
it.
Then
click
on
the
label
beginning
with
S
that
appears
to
the
right
of
the
section
heading.
Click
on
the
heading
of
the
supplemental
section
to
return
to
the
corresponding
main
section.
Click
on
the
Help
menu
to
display
the
items
for
which
information
is
available.
Then
click
on
Foreign
Conjunction,
and
then
on
item
9
to
see
the
case
used
in
defining
Finally
press
the
Escape
key
(Esc)
to
remove
the
Help
display.
A
deinition
may
be
displayed
directly
without
displaying
the
Vocabulary:
simply
place
the
cursor
just
to
the
left
of
the
symbol,
and
press
F1
while
holding
down
the
control
key
(Ctrl).
Experiment
with
their
joint
use,
employing
the
shape
function
Examine
a
plot
of
the
sine
function
( Look
up
the
definition
of
Finally,
plot
Test
this
assertion
for
various
values
of
Experiment
with
the
growth
function
Then
use
other
initial
brackets
to
approximate
the
other
two
roots,
and
apply
Experiment
with
other
polynomial
functions.
Note
that
a
polynomial
will
have
one
less
root
than
the
number
of
elements
in
its
coefficient,
but
that
some
of
them
will
be
complex
in
the
sense
defined
in
Chapter
19.
The
method
of
false
position
will
find
only
the
real
(that
is,
non-complex)
roots.
The
result
of
We
will
use
the
function
Experiment
with
multiplying
other
pairs
of
complex
numbers.
In
particular,
verify
that
the
product
of
The
(monadic)
function
Make
a
table
of
the
sum
of
squares
(3A.
Plotting
S3A.
x=: i:5
can be prepared as
follows:
f=: 25 with - on *:
x=: i:5
x,:f x
_5 _4 _3 _2 _1 0 1 2 3 4 5
0 9 16 21 24 25 24 21 16 9 0
Study of such a
function table can
reveal
much about the
behaviour of the
function: for
example, from
0
at the
argument
_5
,
it grows at an
ever-decreasing
rate to a high point
at 0 25
,
and then declines
at an ever-increasing
rate to
5 0
.
x
to
the right (or
left, if
negative), and a
distance
f x
upward (or
downward, if
negative), and
mark
the resulting
point. Then join
adjacent points
by "lines", and
points to
arguments by
"sticks".
load 'plot'
PLOT=: 'line,stick' with plot
PLOT x;f x
A plot can be removed
from the screen
(to permit further
computation) by
pressing
the key labelled Esc.
However, anyone
unfamiliar with such
graphs should perhaps
make a few by hand,
using simple
functions such as the
cube
(f=: ^ with 3
),
negation
(f=: -
),
and
the identity
(f=: ]
).
x,:fs x
or
x,.fs x
to make its table,
and compare your
observations with
the
remarks given
below:
fs=: 0 1 0 _1r6 0 1r120 0 _1r5040 with p.
x=: 1r3*i:10
PLOT x;fs x
fs
appears to be an
oscillating
function that
begins at about
(-3+1r7),0
;
drops at a
decreasing
rate to a low of
_1
;
rises
through
0 0
to a high of
1
;
and again
drops to about
(3+1r7),0
.
PLOT x;f x
is said to be a
plot of
f x
"against" or
"versus" the
argument
x
. A
function can also
be plotted
against another
function, as
illustrated
in the following
exercise.
fc=: 1 0 _1r2 0 1r24 0 _1r720 0 1r40320 with p.
set 5
x,.fc x
PLOT x;fc x
(fc x),.(fs x)
PLOT (fc x);(fs x)
fs
and
fc
are
approximations of
them.
fs
against
fc
in
the preceding
exercise
produced an
approximate
circle.
d,:e
produces a
two-rowed table
from the
lists
d
and
e
,
and
expressions of the
form
c,d,:e
form multi-rowed
tables from
further lists.
Moreover,
PLOT x;c,d,:e
plots each of the
lists against
x
in
a single graph,
providing visual
comparison of the
functions
represented by the
lists.
PLOT x;(fs x),:fc x)
PLOT x;(fs x),:fc x-3r2)
3B.
Local behaviour
and area
S3B.
cir=: 0 with o.
gives the square
root of one minus
the square
of its argument.
Its plot for the
argument
a=: 1r5*i:5
is therefore a
rough
approximation to a
semi-circle with a
radius of one
unit. Thus:
cir=: 0 with o.
a=: 1r5 * i:5
a
_1 _4r5 _3r5 _2r5 _1r5 0 1r5 2r5 3r5 4r5 1
PLOT a;cir a
sum=: +/
sums a list, and
sum cir a
therefore sums the
altitudes of the
graph of the
semi-circle, thus
giving an
approximation to
its area
(except that the
sum must be
multiplied
by
1r5
,
the common width
of the
trapezoids that
form the area).
Thus:
sum=: +/
1r5 * sum cir a
1.51852
2*1r5 * sum cir a
3.03705
pi
.
Better
approximations are
provided by a
larger
number of points:
b=: 1r1000 * i:1000
2 * +/1r1000 * cir b
3.14156
3C.
Graphs versus
function
tables
S3C.
Insights provided by
the graph of the
function
cir
that
are not provided so
directly by its
function table are
based upon the
pairwise views of
adjacent points;
the slopes of the
line segments between
them reflect the rate
of change of the
function, and the
trapezoids defined by
them provide a basis
for the area.
pw
, a
sum function, a
commuted
difference
function, and an
average or
mean function.
Thus:
pw=: 1 : '2 with (u.\)'
sum=: +/
dif=: -~/
mean=: sum % #
y=: cir a
y
0 0.6 0.8 0.917 0.98 1 0.98 0.917 0.8 0.6 0
mean y
0.69
mean pw y NB. Average heights of the trapezoids
0.3 0.7 0.86 0.95 0.99 0.99 0.95 0.86 0.7 0.3
dif pw y
0.6 0.2 0.12 0.063 0.02 _0.02 _0.063 _0.12 _0.2 _0.6
We will further
illustrate the
pairwise
operator on a
function for the
Fibonacci
numbers, using a
definition discussed
under "generating
functions" in [2]:
fib=: (0 1 with p. % 1 _1 _1 with p.)t.
x=: 1 2 3 4 5 6 7 8 9 10 11 12 13
fib x
1 1 2 3 5 8 13 21 34 55 89 144 233
sum pw fib x
2 3 5 8 13 21 34 55 89 144 233 377
sum pw sum pw fib x
5 8 13 21 34 55 89 144 233 377 610
dif pw fib x
0 1 1 2 3 5 8 13 21 34 55 89
gm=: %/pw fib x NB. Pairwise ratios
set 4
gm NB. Appproximations to golden mean
1 0.5 0.6667 0.6 0.625 0.6154 0.619 0.6176 0.6182 0.618 0.6181 0.618
gm * 1 + gm
2 0.75 1.111 0.96 1.016 0.9941 1.002 0.9991 1 0.9999 1 1
dif pw f x
are
easily seen in a
graph of
f
,
but
repeated use (as
in
dif pw dif pw f x
)
are
not. They can,
however,
provide
interesting
results when
applied to
familiar
functions. For
example:
sqr=: ^ with 2
sqr x
1 4 9 16 25 36 49 64 81 100 121 144 169
dif pw sqr x
3 5 7 9 11 13 15 17 19 21 23 25
dif pw dif pw sqr x
2 2 2 2 2 2 2 2 2 2 2
dif pw dif pw dif pw sqr x
0 0 0 0 0 0 0 0 0 0
dp=: dif pw
dp sqr x
3 5 7 9 11 13 15 17 19 21 23 25
dp dp sqr x
2 2 2 2 2 2 2 2 2 2 2
cube=: ^ with 3
cube x
1 8 27 64 125 216 343 512 729 1000 1331 1728 2197
dp cube x
7 19 37 61 91 127 169 217 271 331 397 469
dp dp cube x
12 18 24 30 36 42 48 54 60 66 72
dp dp dp cube x
6 6 6 6 6 6 6 6 6 6
p2=: 2 with ^
and the use
of the
pair-wise
quotients
%/ pw
and
%~/ pw
on it.
3D.
Notes
S3D.
Chapters 2 and 3
introduced two
important
facilities for the
study of functions,
the
function table, and
graphs. Chapter 1
introduced one
particularly
important
function, the
polynomial --
important
because it can
approximate, and
therefore be
used to study, a wide
range of functions.
The next chapter
examines it further.
*
for
both
signum and
multiplication in
Section 1D) may
wish to turn now
to the two-page
discussion of
trains,
inflections,
ambivalence,
and bonding in
Section 10D.
4A.
Bonding4A.
Bonding
S4A.
The
polynomial
function
introduced
in
Chapter 1
is a
function
of two
arguments,
the first
of which
is
commonly
called
the
coefficients
of the
function.
Using the
example
from
Chapter
1:
x=: 4
2 3 4 p. x
78
c=: 2 3 4
c p. x
78
g=: c with p.
g x
78
The
expression
g=: c with p.
illustrates
the
fact that
the
function
p.
can be
bonded
with a
list of
coefficients
to define
a
specific
polynomial
function
g
.
Consider
the
following
examples:
c2=: 1 2 1
c3=: 1 3 3 1
c4=: 1 4 6 4 1
y=: 0 1 2 3 4 5
f2=: c2 with p.
f2 y
1 4 9 16 25 36
f3=: c3 with p.
f3 y
1 8 27 64 125 216
(f2 y) * (f3 y)
1 32 243 1024 3125 7776
g=: f2 * f3
g y
1 32 243 1024 3125 7776
The
Taylor
operator
t.
applies
to a
polynomial
such as
f3
to
produce a
function
which,
applied
in turn
to an
integer
i
,
gives
coefficient
i
of the
polynomial.
For
example:
f3 t. 2
3
f3 t. 0 1 2 3 4 5 6
1 3 3 1 0 0 0
(f2 * f3) t. 0 1 2 3 4 5 6
1 5 10 10 5 1 0
The
result of
f2 f3 y
is said
to be the
result
of
applying
f2
to the
result of
f3
.
The
corresponding
function
is
denoted
by
f2 on f3
.
For
example:
f3 y
1 8 27 64 125 216
f2 1 8 27 64 125 216
4 81 784 4225 15876 47089
f2 f3 y
4 81 784 4225 15876 47089
h=: f2 on f3
h y
4 81 784 4225 15876 47089
h t. 0 1 2 3 4 5 6 7 8
4 12 21 22 15 6 1 0 0
g1=: f2 * f2
g2=: f2 * f2 * f2
g3=: f3 - f2
g4=: f3 on g
SUM c with p. + d with p.
DIFFERENCE c with p. - d with p.
PRODUCT c with p. * d with p.
COMPOSITION (c with p.) on (d with p.)
SLOPE or rate of increase over an interval
DERIVATIVE or limit of the slope over small intervals
AGGREGATE or area under the graph of a function
INTEGRAL or limit of the area for small intervals
4B.
Notes
S4B.
This
brief
treatment
of
polynomials
is enough
to
provide a
basis for
the
treatment
of the
important
topics of
Power
Series,
Slope and
Derivative,
Growth
and
Decay,
and
Vibrations
in the
next four
chapters.
We
therefore
defer
further
discussion
of
the
polynomial
to
Chapter
16:
Polynomials
and
Number
Systems.
That
chapter
may,
however,
be
attempted
at any
point.
5A.
Introduction
5A.
Introduction
S5A.
Elements
of
a
list
may
be
identified
and
selected
by
its
indices,
beginning
at
zero.
For
example:
a=: 1 2 3 4 5 6 ^ 3
a
1 8 27 64 125 216
0 { a
1
1 { a
8
5 { a
216
6 { a
|index error
| 6 {a
A
polynomial
whose
coefficients
may
be
expressed
as
a
function
of
their
indices
is
called
a
power
series.
For
example:
g=: ! with 3
g i. 8
1 3 3 1 0 0 0 0
(g i.8) with p. 0 1 2 3 4 5 6
1 8 27 64 125 216 343
g 0
gives
the
number
of
distinct
ways
that
zero
things
can
be
chosen
from
three
things;
g 1
gives
the
number
of
ways
that
one
thing
can
be
chosen,
and
so
on,
to
the
case
g 4
which
shows
that
four
things
can
be
chosen
from
three
in
no
ways.
The
resulting
coefficients
are
those
used
in
c3
in
Section
4A;
h=: ! with 4
gives
those
used
in
c4
,
and
so
on.
The
coefficients:
0 1 0 _1r6 0 1r120 0 _1r5040
1 0 _1r2 0 1r24 0 _1r720 0 1r40320
used
in
Section
3A
can
also
be
expressed
as
power
series.
Both
lists
are
reciprocal
factorials
(such
as
1r24
and
1r120
)
multiplied
by
_1
or
0
or
1
.
The
power
series
function
for
the
first
is
given
by:
ps=: % on ! * 2 with | * _1: ^ 3: = 4: | ]
ps 0 1 2 3 4 5 6 7 8 9 10r1
0 1 0 _1r6 0 1r120 0 _1r5040 0 1r362880 0
pc
for
the
second
list
of
coefficients
given
above.
5B.
Truncated
power
series
S5B.
For
the
power
series
g=: ! with 3
,
the
coefficients
following
the
first
four
are
all
zero,
and
the
truncated
series
g i.4
therefore
defines
a
polynomial
that
is
equivalent
to
the
longer
list
produced
by
g i.8
.
Thus:
g i.4
1 3 3 1
(g i.4) with p. x=: 0 1 2 3 4 5 6
1 8 27 64 125 216 343
g i.8
1 3 3 1 0 0 0 0
(g i.8) with p. x
1 8 27 64 125 216 343
ps=: % on ! * 2 with | * _1: ^ 3: = 4: | ]
never
"terminates"
with
all
zeros.
However,
the
reciprocal
factorial
factor
(% on !
)
ensures
that
successive
terms
diminish
rapidly
in
magnitude,
and
a
short
series
may
therefore
provide
a
good
approximation.
For
example:
] c12=: ps i. 12r1
0 1 0 _1r6 0 1r120 0 _1r5040 0 1r362880 0 _1r39916800
] c10=: ps i. 10r1
0 1 0 _1r6 0 1r120 0 _1r5040 0 1r362880
set 9
dec (c12 with p. ,c10 with p.) 2
0.909296136 0.909347443
However,
the
definition
of
the
polynomial
in
Section
1I
shows
that
successive
coefficients
are
multiplied
by
successive
powers
of
the
argument
x
.
For
large
arguments,
the
growth
of
this
factor
may
be
fast
enough
to
overpower
the
decrease
in
the
coefficient.
For
example:
dec (c12 with p. ,c10 with p.) 5
_1.1336173 0.08963018
For
small
arguments
(particularly
for
those
less
than
one
in
magnitude),
reasonably
short
power
series
of
the
type
that
includes
a
reciprocal
factorial
factor
provide
good
approximations.
For
example:
dec ((ps i.20) with p.,(ps i.18) with p.) 5
_0.958933165 _0.958776369
y=: 1r5 * i:5
y
_1 _4r5 _3r5 _2r5 _1r5 0 1r5 2r5 3r5 4r5 1
sin=: 1 with o.
((ps i.10) with p.,.(ps i.8) with p.,.sin) y
_0.841471010 _0.841468254 _0.841470985
_0.717356093 _0.717355723 _0.717356091
_0.564642473 _0.564642446 _0.564642473
_0.389418342 _0.389418342 _0.389418342
_0.198669331 _0.198669331 _0.198669331
0 0 0
0.198669331 0.198669331 0.198669331
0.389418342 0.389418342 0.389418342
0.564642473 0.564642446 0.564642473
0.717356093 0.717355723 0.717356091
0.841471010 0.841468254 0.841470985
t.
can
be
used
to
produce
the
power
series
for
the
sine
as
follows:
sin t. i. 12r1
0 1 0 _1r6 0 1r120 0 _1r5040 0 1r362880 0 _1r39916800
sign sin t. i. 12r1
0 1 0 _1 0 1 0 _1 0 1 0 _1
^
q=: (^t.i),.(1 with o.t.i),.(2 with o.t.i=: i.12x)
q,.*q
5C.
Notes
S5C.
Power
series
are
of
great
importance
in
math,
and
it
is
tempting
to
digress
in
a
discussion
of
reasons
for
this
importance,
much
as
was
done
for
polynomials
in
Section
4A.
6A.
Approximation
to
the
derivative
(rate
of
change)
6A.
Approximation
to
the
derivative
(rate
of
change)
S6A.
As
remarked
in
Section
3B,
the
slopes
of
the
segments
of
a
graph
show
the
average
rate
of
change
of
a
function
between
adjacent
points.
Plotting
more
points
at
lesser
intervals
gives
a
better
approximation.
For
example:
c=: 4 _3 _2 1
f=: c with p.
x1=: i.4
PLOT x1;f x1
x2=: 1r10*i.31
PLOT x2;f x2
x3=: 1r100 * i.301
PLOT x3;f x3
((f x+r)-(f x))%r
gives
the
slope
of
the
graph
of
f
between
arguments
x
and
x+r
as
the
ratio
of
the
rise
(f x+r)-(f x)
to
the
run
r
.
For
example:
x=: 2
r=: 1r10
((f x+r)-(f x)) % r
1.41
x=: 0 1 2 3 4 5 6
r=: 1r1000
((f x+r)-(f x)) % r
_3.002 _3.999 1.004 12.007 29.01 52.013 81.016
r=: 1r10000
((f x+r)-(f x)) % r
_3.0002 _3.9999 1.0004 12.001 29.001 52.001 81.002
For
these
small
values
of
the
run,
the
slopes
appear
to
be
"approaching
a
limiting
value"
given
approximately
by
the
run
of
one
ten-thousandth.
This
limiting
value
is
the
derivative
of
the
function
f
,
that
is,
the
slope
of
the
tangent.
The
value
r=: 0
might
seem
appropriate,
but
this
only
gives
the
meaningless
division
of
a
zero
rise
by
a
zero
run.
Thus:
r=: 0
((f x+r)-(f x)) % r
0 0 0 0 0 0 0
The
desired
result
is
given
by
the
derivative
operator
d.
,
with
f d.1
giving
the
(first)
derivative
of
f
and
f d.2
giving
the
second
derivative
(that
is,
the
derivative
of
the
derivative),
and
so
on.
For
example:
f d.1 x
_3 _4 1 12 29 52 81
f d.2 x
_4 2 8 14 20 26 32
f d.1 2 3 4 5 x
_3 _4 6 0 0
_4 2 6 0 0
1 8 6 0 0
12 14 6 0 0
29 20 6 0 0
52 26 6 0 0
81 32 6 0 0
Moreover,
the
application
of
the
Taylor
operator
to
the
resulting
derivatives
show
them
to
be
terminating
power
series,
that
is,
ordinary
polynomials:
d=: f d.1 t. i.7
d
_3 _4 3 0 0 0 0
f d.2 t. i.7
_4 6 0 0 0 0 0
d with p. x
_3 _4 1 12 29 52 81
d with p. d.1 x
_4 2 8 14 20 26 32
f d.2 x
_4 2 8 14 20 26 32
The
coefficients
d
of
the
first
derivative
polynomial
must
bear
some
relation
to
the
coefficients
c
of
the
original
polynomial
f
.
We
will
explore
this
relation
by
examining
their
ratios,
as
seen
in
their
divide
table:
d % table c
+--+----------------+
| | 4 _3 _2 1|
+--+----------------+
|_3|_3r4 1 3r2 _3|
|_4| _1 4r3 2 _4|
| 3| 3r4 _1 _3r2 3|
| 0| 0 0 0 0|
| 0| 0 0 0 0|
| 0| 0 0 0 0|
| 0| 0 0 0 0|
+--+----------------+
The
diagonal
of
successive
integers
1 2 3
suggests
that
d
may
be
obtained
from
c
by
multiplying
by
successive
integers,
and
rotating
the
result
one
place
to
the
left:
c
4 _3 _2 1
#c NB. number of elements in c
4
i.#c
0 1 2 3
c * i.#c
0 _3 _4 3
1 |. c * i.#c
_3 _4 3 0
d
_3 _4 3 0 0 0 0
We
will
first
test
this
relation
on
another
polynomial
function
and
then,
in
the
following
section,
examine
the
question
of
why
the
relation
holds
in
general:
c2=: ! with 5 i.6
c2
1 5 10 10 5 1
f2=: c2 with p.
d2=: f2 d.1 t. i.5
d2
5 20 30 20 5
1 |. c2 * i.#c2
5 20 30 20 5 0
6B.
Derivatives
of
polynomials
S6B.
The
polynomial
f=: 4 1 3 2 with p.
is
a
sum
of
four
monomials.
Thus:
f=: 4 1 3 2 with p.
f0=: 4 with * on (^ with 0)
f1=: 1 with * on (^ with 1)
f2=: 3 with * on (^ with 2)
f3=: 2 with * on (^ with 3)
(f0,f1,f2,:f3) x
4 4 4 4 4 4 4
0 1 2 3 4 5 6
0 3 12 27 48 75 108
0 2 16 54 128 250 432
(f0+f1+f2+f3) x
4 10 30 76 160 294 490
f x
4 10 30 76 160 294 490
Any
slope
of
a
function
that
is
a
sum
of
functions
equals
the
sum
of
the
corresponding
slopes
of
the
component
functions,
and
the
derivative
of
a
sum
of
functions
is
therefore
the
sum
of
the
derivatives
of
the
corresponding
functions.
For
example:
(f0 d.1 , f1 d.1 , f2 d.1 ,: f3 d.1) x
0 0 0 0 0 0 0
1 1 1 1 1 1 1
0 6 12 18 24 30 36
0 6 24 54 96 150 216
(f0 d.1 + f1 d.1 + f2 d.1 + f3 d.1) x
1 13 37 73 121 181 253
f d.1 x
1 13 37 73 121 181 253
Similar
remarks
apply
to
the
multiplication
that
occurs
in
the
monomials.
For
example,
in
f2=: 3 with * on (^ with 2)
,
the
multiplication
by
three
of
the
square
function
(^ with 2
)
multiplies
each
of
its
slopes
by
three,
and
therefore
multiplies
its
derivative
by
three.
It
remains
to
determine
the
derivative
of
power
functions
such
as
the
square.
If
f=: ^ with 2
,
then
the
rise
(f x+r)-(f x)
is
given
by
the
square
of
x+r
(that
is,
(x+r)*(x+r)
)
minus
the
square
of
x
.
x
plus
2*x*r
plus
the
square
of
r
,
and
subtraction
of
the
square
of
x
then
leaves
a
rise
of
2*x*r
plus
the
square
of
r
.
The
slope
of
the
square
function
(for
the
run
r
)
is
then
given
by
dividing
this
sum
by
r
to
obtain
(2*x)+r
.
The
derivative
is
then
given
by
the
case
for
r=: 0
,
that
is,
2*x
(or,
equivalently,
2*x^1)
.
(x+r)*(x+r)*(x+r)
gives
3*x^2
for
the
derivative
of
the
cube
^ with 3
,
and,
in
general,
gives
n*x^(n-1)
for
the
derivative
of
^ with n
.
The
contribution
of
a
monomial
cn * x ^ n
to
the
derivative
polynomial
is
therefore
the
monomial
n * cn * x ^ (n-1)
,
which
therefore
appears
as
a
coefficient
n * cn
displaced
one
place
to
the
left
in
the
list
of
coefficients.
d=: 1: |. c * i.#c
given
in
the
preceding
section
for
the
coefficients
d
of
the
derivative
polynomial.
These
results
will
be
summarized
by
defining
a
function
der
which,
applied
to
a
list
of
coefficients
of
a
polynomial,
gives
the
list
of
coefficients
of
the
derivative
polynomial.
We
will
illustrate
its
use
on
the
polynomial
graphed
in
Section
A,
and
will
graph
it
together
with
the
secant
slopes
of
the
function
so
that
they
can
be
compared:
der=: 1: |. ] * i. on #
c=: 4 _3 _2 1
d=: der c
d
_3 _4 3 0
x2=: 1r10*i.31
PLOT x2 ; (c with p. ,: d with p.) x2
f
correctly
suggests
that
it
is
a
function
derived
from
f
,
but
it
is
only
one
among
many
(such
as
the
inverse)
also
derived
from
f
.
The
phrase
slope
of
f
would
be
more
informative,
and
could
be
distinguished
from
the
associated
secant
slope
of
f
.
6C.
Taylor
coefficients
S6C.
It
is
also
interesting
to
compare
the
Taylor
coefficients
of
the
derivative
of
the
polynomial
d with p.
with
the
result
of
the
function
der
:
d with p. d.1 t. i.8
_4 6 0 0 0 0 0 0
der d
_4 6 0 0
As
a
foretaste
of
the
growth
and
oscillating
functions
of
the
next
two
chapters,
we
will
also
show
Taylor
series
for
the
exponential
and
sine
functions:
exp=: ^
exp t. i=: i.10r1
1 1 1r2 1r6 1r24 1r120 1r720 1r5040 1r40320 1r362880
exp d.1 t. i
1 1 1r2 1r6 1r24 1r120 1r720 1r5040 1r40320 1r362880
exp d.2 t. i
1 1 1r2 1r6 1r24 1r120 1r720 1r5040 1r40320 1r362880
sin=: 1 with o.
]s=: sin t. i.12r1
0 1 0 _1r6 0 1r120 0 _1r5040 0 1r362880 0 _1r39916800
der s
1 0 _1r2 0 1r24 0 _1r720 0 1r40320 0 _1r3628800 0
sin d.1 t. i.11r1
1 0 _1r2 0 1r24 0 _1r720 0 1r40320 0 _1r3628800
der der s
0 _1 0 1r6 0 _1r120 0 1r5040 0 _1r362880 0 0
der der der s
_1 0 1r2 0 _1r24 0 1r720 0 _1r40320 0 0 0
der der der der s
0 1 0 _1r6 0 1r120 0 _1r5040 0 0 0 0
s
0 1 0 _1r6 0 1r120 0 _1r5040 0 1r362880 0 _1r39916800
6D.
Notes
S6D.
For
an
arbitrary
function
f
(such
as
any
one
of
the
functions
of
trigonometry),
the
matter
of
the
limiting
value
of
the
secant
slope
((f x+r)-(f x)) % r
as
r
"approaches"
zero
(discussed
in
Section
6A)
raises
difficult
questions
that
are
properly
answered
only
by
lengthy
analysis
of
the
notion
of
limits.
This
is
what
makes
Calculus
such
a
forbidding
subject.
f
is
a
good
approximation
to
the
derivative
of
f
?
Yes,
but
only
for
functions
that
are
"uniformly
continuous".
This
is
true
of
a
wide
range
of
functions
of
practical
interest,
including
all
of
those
to
be
treated
in
subsequent
chapters.
7A.
Growth
polynomials
7A.
Growth
polynomials
S7A.
It
is
a
common
observation
that
growing
things
(such
as
young
plants
and
animals,
young
commercial
companies,
and
a
colony
of
bacteria)
change
not
at
a
constant
rate,
but
at
a
rate
roughly
proportional
to
present
size.
^
.
In
a
graph
of
this
function
this
relation
may
be
seen
approximately
in
the
slopes
of
the
secants.
Thus:
x=: 1r2*i.11
x
0 1r2 1 3r2 2 5r2 3 7r2 4 9r2 5
set 4
^ x
1 1.649 2.718 4.482 7.389 12.18 20.09 33.12 54.6 90.02 148.4
PLOT x;^x
c=: 1 1 1r2 1r6 1r24 1r120 1r720 1r5040
der=: 1:|.]*i.@:# NB. Gives coeffs of derivative
d=: der c
d
1 1 1r2 1r6 1r24 1r120 1r720 0
dec c with p. x
1 1.649 2.718 4.481 7.381 12.13 19.85 32.23 51.81 82.22 128.6
dec d with p. x
1 1.649 2.718 4.478 7.356 12.01 19.41 30.95 48.56 74.81 113.1
The
two
polynomials
differ
only
in
the
term
1r5040*x^7
,
and
are
therefore
nearly
equal
for
reasonably
small
values
of
x
.
Moreover,
the
pattern
required
of
further
coefficients
is
clear:
coefficient
k
must
be
1%!k
.
Thus:
! i. 12r1
1 1 2 6 24 120 720 5040 40320 362880 3628800 39916800
a=: 1 % ! i. 12
b=: der a
(a with p. ,. b with p. ,. ^) x
1 1 1
1.649 1.649 1.649
2.718 2.718 2.718
4.482 4.482 4.482
7.389 7.389 7.389
12.18 12.18 12.18
20.08 20.08 20.09
33.11 33.08 33.12
54.55 54.44 54.6
89.8 89.42 90.02
147.6 146.4 148.4
^(x+3)
and
(^x) * (^3)
,
and
comment
on
the
results.
(^x) * (^-x)
^(x+-x)
set 2
^-x
% ^ x
decay=: ^ on -
decay x
decay t. i. 10
7B.
The
name
Exponential
S7B.
^
,
the
expression
x^e
is
said
to
denote
the
base
x
to
the
exponent
e
,
and
the
function
x with ^
may
therefore
be
said
to
be
an
exponential
function.
For
example:
e=: 1r10*i.11
e
0 1r10 1r5 3r10 2r5 1r2 3r5 7r10 4r5 9r10 1
3^e
1 1.1 1.2 1.4 1.6 1.7 1.9 2.2 2.4 2.7 3
3 with ^ e
1 1.1 1.2 1.4 1.6 1.7 1.9 2.2 2.4 2.7 3
^e
1 1.1 1.2 1.3 1.5 1.6 1.8 2 2.2 2.5 2.7
2 with ^ e
1 1.1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.9 2
The
exponential
function
^
appears
to
lie
between
the
functions
2 with ^
and
3 with ^
.
Thus:
set 7
(^,.2.5 with ^,.2.75 with ^,.2.71 with
^,.2.718 with ^,.1x1 with ^) e
1 1 1 1 1 1
1.105171 1.095958 1.106454 1.104834 1.105159 1.105171
1.221403 1.201124 1.22424 1.220658 1.221377 1.221403
1.349859 1.316382 1.354565 1.348624 1.349817 1.349859
1.491825 1.4427 1.498763 1.490005 1.491763 1.491825
1.648721 1.581139 1.658312 1.646208 1.648636 1.648721
1.822119 1.732862 1.834846 1.818786 1.822005 1.822119
2.013753 1.899144 2.030172 2.009456 2.013607 2.013753
2.225541 2.081383 2.246292 2.220115 2.225356 2.225541
2.459603 2.281109 2.485418 2.452858 2.459374 2.459603
2.718282 2.5 2.75 2.71 2.718 2.718282
The
base
that
gives
the
exponential
exactly
is
called
Euler"s
number,
and
is
denoted
in
math
by
e
and
in
J
by
1x1
.
8A.
Introduction
8A.
Introduction
S8A.
Vibrations
are
commonly
seen
in
the
motions
of
a
clock
pendulum,
of
a
piano
string,
and
of
a
weight
(such
as
a
plumb
bob
suspended
on
a
rubber
band
or
steel
spring).
If
the
bob
is
pulled
straight
down
a
certain
distance
from
its
rest
position
and
released,
it
visibly
oscillates
above
and
below
its
rest
position
until
it
is
brought
to
rest
by
friction
in
the
air
and
in
the
suspension.
b
is
a
function
that
gives
the
position
of
the
bob
as
a
function
of
time,
then
its
speed
or
velocity
is
given
by
b d.1
(the
rate
of
change
of
position),
and
its
acceleration
is
given
by
the
second
derivative
b d.1 d.1
(the
rate
of
change
of
its
velocity).
b
of
the
bob.
In
other
words,
the
second
derivative
b d.1
is
proportional
to
-b
.
-b
is
equal
to
b d.1 d.1
,
and
we
seek
a
polynomial
with
this
property.
Consider
the
coefficients
of
the
function
fs
introduced
in
Section
3A:
c=: 0 1 0 _1r6 0 1r120 0 _1r5040
der c
1 0 _1r2 0 1r24 0 _1r720 0
der der c
0 _1 0 1r6 0 _1r120 0 0
-der der c
0 1 0 _1r6 0 1r120 0 0
The
required
pattern
is
clear:
it
is
the
same
as
for
the
exponential
of
Chapter
7,
except
that
alternate
coefficients
are
zero,
and
that
the
other
coefficients
alternate
in
sign.
The
function
with
this
property
is
called
the
sine,
commonly
abbreviated
to
sin:
sin=: 1 with o.
sin t. i.12
0 1 0 _1r6 0 1r120 0 _1r5040 0 1r362880 0
_1r39916800
sin t. 20 21 22 23
0 1r51090942171709440000 0 _1r25852016738884976640000
8B.
Harmonics
S8B.
The
function
sin on (2:*])
applies
the
sin
to
the
double
of
its
argument,
and
therefore
produces
a
vibration
(or
oscillation)
of
twice
the
frequency.
It
is
called
an
harmonic
of
the
oscillation
sin
.
This
may
be
seen
in
a
combined
plot
of
the
two
functions:
x=: 1r10 * i.65
plot x;(sin x) ,: (sin on (2:*]) x)
2
in
the
function
sin on (2:*])
by
other
integers
to
produce
other
harmonics,
and
plot
the
results.
cos
and
some
of
its
harmonics.
cos
against
its
harmonic
cos on (2:*])
.
8C.
Decay
S8C.
Because
of
"friction"
of
some
sort,
vibrations
commonly
decay,
usually
at
an
approximately
exponential
rate
determined
by
a
function
of
the
form
decay=: ^ on - on (] % [)
.
sin * 6 with decay
.
6
,
and
plot
them
together
with
their
non-decaying
counterparts.
9A.
Inverse
9A.
Inverse
S9A.
The
predecessor
function
(<:
)
introduced
in
1D
is
said
to
be
the
inverse
of
the
successor
function
(>:
)
because
it
"undoes"
its
work.
For
example:
>:1 2 3 4 5
2 3 4 5 6
<:>:1 2 3 4 5
1 2 3 4 5
Conversely,
>:
is
also
the
inverse
of
<:
,
and
we
may
simply
say
that
the
two
are
inverses.
h=: (* with 4) on sqr
,
where
sqr=: *:
is
the
square
function.
In
order
to
determine
the
voltage
required
to
produce
a
desired
heat,
we
need
the
inverse
v=: sqrt on (% with 4)
,
where
sqrt=: %:
is
the
square
root
function.
Thus:
h=: (* with 4) on sqr
sqr=: *:
v=: sqrt on (% with 4)
sqrt=: %:
h 0 1 2 3 4 5 6 7
0 4 16 36 64 100 144 196
v h 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
v 0 1 2 3 4 5 6 7
0 0.5 0.707107 0.866025 1 1.11803 1.22474 1.32288
h v 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
For
many
(but
not
all)
functions,
the
inverse
operator
INV=: ^:_1
produces
the
inverse
function.
For
example:
INV=: ^:_1
<:INV 0 1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
cube=: ^ with 3
cuberoot=: cube INV
cube 0 1 2 3 4 5 6 7
0 1 8 27 64 125 216 343
cuberoot cube 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
^ with 4 INV 0 1 2 3 4 5 6 7
0 1 1.18921 1.31607 1.41421 1.49535 1.56508 1.62658
^ with 4 ^ with 4 INV 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
f=: ^ with 3 + ^ with 4
f 0 1 2 3 4 5 6 7
0 2 24 108 320 750 1512 2744
f INV 0 1 2 3 4 5 6 7
|domain error
| f INV 0 1 2 3 4 5 6 7
9B.
Equations
S9B.
However,
for
a
specific
argument,
say
y=: 20
,
we
could
find
the
value
of
the
inverse
of
f
by
guessing
the
result
x
,
and
applying
f
to
it
to
guide
us
to
an
improved
guess,
by
either
increasing
or
decreasing
x
.
For
example:
y=: 20
x=: 2
f x
24
x=: x-1r2
set 5
f x
8.4375
x=: x+1r4
dec f x
14.738
dec f x=: x+1r8
18.951
dec f x=: x+1r16
21.365
dec f x=: x-1r32
20.131
dec f x=: x-1r64
19.535
dec f x=: x+1r128
19.831
dec f x=: x+1r256
19.981
dec f x=: x+1r512
20.056
dec x
1.9043
This
problem
is
commonly
stated
as
the
equation
(f x)=y
,
implying
that
one
is
to
find
a
value
of
x
such
that
the
relation
is
true.
Moreover,
the
problem
of
solving
equations
is
commonly
introduced
with
little
or
no
clue
as
to
why
the
matter
is
important.
g=: - with y on f
differs
from
f
in
subtracting
y
from
the
result,
and
a
solution
of
(g x)=0
is
therefore
a
solution
of
(f x)=y
.
A
solution
of
(g x)=0
is
said
to
be
a
root
of
the
function
g
.
9C.
The
method
of
false
position
S9C.
If
one
knows
two
values
a
and
b
such
that
g a
and
g b
differ
in
sign,
then
a
root
of
g
must
lie
somewhere
between
them;
the
list
ab=: a,b
is
said
to
bracket
the
root.
Evaluation
of
f
at
its
midpoint
m
(that
is,
m=: mean ab
)
will
either
yield
zero
(in
which
case
m
is
a
root
of
g
),
or
it
will
differ
in
sign
from
one
of
the
two
results
of
g ab
.
ab
that
differs
can
be
used
with
m
to
form
a
tighter
bracket,
whose
mean
will
give
a
better
approximation
to
the
root
of
g
.
This
process
may
be
repeated
to
obtain
as
close
an
approximation
as
desired.
For
example:
g=: - with y on f
g ab=: 1,2
_18 4
mean=: +/ % #
]m=: mean ab
1.5
g m
_11.563
]ab=: m,1{ab
1.5 2
g ab
_11.563 4
In
general,
a
bracket
of
a
root
of
a
function
g
may
be
tightened
by
the
function
tighten
,
defined
and
illustrated
below:
tighten=: mean,(sign on{. on g = sign on g on mean) { ]
tighten ab=: 1,2
1.5 2
tighten tighten tighten ab
1.875 2
g tighten tighten tighten ab
_1.0486 4
The
function
tighten
may
be
paraphrased
as
follows:
Compare
the
sign
of
the
first
element
({.
)
of
the
result
of
g
for
equality
with
the
sign
of
g
on
the
mean,
and
use
the
result
(0
or
1
)
as
an
index
to
select
from
the
argument;
finally,
catenate
the
selection
with
the
mean.
The
operator
^:
can
be
used
to
apply
a
function
repeatedly,
as
illustrated
below:
tighten^:3 ab
1.875 2
z=: tighten^:0 1 2 3 4 5 6 7 8 9 10 11 12 ab
z;g z
+---------------+-------------------------+
| 1 2| _18 4|
| 1.5 2| _11.5625 4|
| 1.75 2| _5.26172 4|
| 1.875 2| _1.04858 4|
| 1.9375 1.875| 1.36501 _1.04858|
|1.90625 1.875| 0.131333 _1.04858|
|1.89063 1.90625| _0.465246 0.131333|
|1.89844 1.90625| _0.168624 0.131333|
|1.90234 1.90625| _0.0190637 0.131333|
| 1.9043 1.90234| 0.0560301 _0.0190637|
|1.90332 1.90234| 0.018457 _0.0190637|
|1.90283 1.90332|_0.000309859 0.018457|
|1.90308 1.90283| 0.00907195 _0.000309859|
+---------------+-------------------------+
9D.
Newton"s
method
S9D.
If
x=: 2
is
an
appoximation
to
the
root
of
g
,
then
(as
suggested
by
the
small
"triangle"
with
apex
at
the
point
x,g x
in
the
accompanying
graph)
a
good
correction
is
provided
by
dividing
g x
by
the
derivative
g d.1 x
that
gives
the
slope
of
the
tangent
to
the
graph
at
the
point
x,g x
:
PLOT x;g x=: 1r10*i.22
x=: 2
(g , g d.1 , g%g d.1) x
4 44 0.0909091
x=: x - (g%g d.1) x
g x
0.24124
x=: x - (g%g d.1) x
g x
0.00106658
newton=: ] - g % g d.1
newton 2
1.90909
g newton 2
0.24124
newton^:(i.4) 2
2 1.90909 1.90287 1.90284
g newton^:(i.4) 2
4 0.24124 0.00106658 2.1139e_8
g newton ^:(i.3 5) 25
406230 128520 40655 12855.8 4061.08
1279.01 399.129 121.057 33.5929 7.07075
0.658183 0.00775433 1.11692e_6 2.13163e_14 3.55271e_15
g
,
its
convergence
is
not
guaranteed
in
general,
especially
for
initial
guesses
far
from
the
root.
9E.
Roots
of
Polynomials
S9E.
The
(possibly
multiple)
roots
of
a
polynomial
c with p.
may,
in
principle,
be
obtained
by
the
methods
of
sections
9C
and
9D,
but
it
may
be
difficult
to
find
suitable
brackets
or
initial
guesses.
However,
the
function
roots=: > on {: on p.
may
be
applied
to
the
coefficients
c
to
obtain
the
roots.
For
example:
roots=: > on {: on p.
c=: _1 0 1
r=: roots c
r
1 _1
c p. r
0 0
d=: 6 1 _4 1
s=: roots d
s
3 2 _1
d p. s
3.55271e_15 2.66454e_15 0
Because
of
the
limited
precision
of
the
computations
leading
to
the
roots
s
,
the
application
of
the
polynomial
to
them
yields
tiny
results,
but
not
exact
zeros.
The
following
function
(the
product
of
the
sign
function
with
the
magnitude)
serves
to
make
such
results
more
readable
by
"zeroing"
tiny
results:
zero=: **|
zero d p. s
0 0 0
A
graph
of
the
polynomial
1 0 1 with p.
(one
plus
the
square)
indicates
that
it
has
no
roots,
because
the
graph
never
drops
to
zero:
e=: 1 0 1
x=: i:4
PLOT x;e p. x
roots
applies
as
follows:
roots e
0j1 0j_1
e p. roots e
0 0
The
root
0j1
is
an
example
of
an
imaginary
number,
to
be
discussed
in
Chapter
19.
Its
square
is
negative
one:
0j1*0j1
_1
9F.
Logarithms
S9F.
The
logarithm
(^.
)
is
the
function
inverse
to
the
exponential:
^ ^:_1
^.
^. ^:_1
^
]x=: i.8
0 1 2 3 4 5 6 7
^x
1 2.71828 7.38906 20.0855 54.5982 148.413 403.429 1096.63
^.^x
0 1 2 3 4 5 6 7
^.x
__ 0 0.693147 1.09861 1.38629 1.60944 1.79176 1.94591
^^.x
0 1 2 3 4 5 6 7
As
discussed
in
Section
7B,
the
exponential
^
is
equal
to
e with ^
,
where
e=: 1x1
is
Euler's
number.
Similarly,
e with ^.
is
inverse
to
e with ^
,
as
illustrated
below:
e=: 1x1
e
2.71828
e with ^ x
1 2.71828 7.38906 20.0855 54.5982 148.413 403.429 1096.63
e with ^. e with ^ x
0 1 2 3 4 5 6 7
10 with ^ x
1 10 100 1000 10000 100000 1e6 1e7
10 with ^. 10 with ^ x
0 1 2 3 4 5 6 7
10 with ^. 1 10 100 1000 10000 100000
0 1 2 3 4 5
The
function
10 with ^.
is
the
base-10
logarithm,
more
commonly
used
in
elementary
math
than
the
natural
log
^.
.
10A.
Introduction
10A.
Introduction
S10A.
Despite
its
importance,
the
grammar
of
our
native
language
is
not
acquired
by
formal
instruction,
but
by
imitation
and
casual
guidance
in
conversation.
Formal
grammar
becomes
important
only
at
a
later
stage,
in
addressing
more
complex
and
more
precise
uses
of
language.
10B.
Word
formation
S10B.
Grammar
is
commonly
taken
to
concern
parsing
the
words
of
a
sentence
into
phrases,
and
determining
the
order
in
which
the
phrases
are
to
be
interpreted.
However,
it
is
worth
noting
that
the
comprehension
of
a
sentence
must
begin
by
first
breaking
it
into
its
component
words.
;: '12+27'
+--+-+--+
|12|+|27|
+--+-+--+
;: '12+.27'
+--+--+--+
|12|+.|27|
+--+--+--+
;: '12+0.27'
+--+-+----+
|12|+|0.27|
+--+-+----+
;: '+/1 2 3 4'
+-+-+-------+
|+|/|1 2 3 4|
+-+-+-------+
The
formal
rules
are
stated
in
the
J
Dictionary
as
follows:
The
alphabet
is
standard
ASCII,
comprising
digits,
letters
(of
the
English
alphabet),
the
underline
(used
in
names
and
numbers),
the
(single)
quote,
and
others
(which
include
the
space)
to
be
referred
to
as
graphics.
It
would
clearly
be
confusing
if
it
were
possible
to
assign
the
name
a.
).
e
(as
in
2.4e3
to
signify
2400
in
exponential
form),
and
the
letter
j
to
separate
the
real
and
imaginary
parts
of
a
complex
number,
as
in
3e4j_0.56
.
Also
see
the
discussion
of
Constants.
'can''t'
is
the
five-character
abbreviation
of
the
six-character
word
'cannot'
.
The
ace
a:
denotes
the
boxed
empty
list
<$0
.
prices=: 4.5 12
)
begin
with
a
letter
and
may
continue
with
letters,
underlines,
and
digits.
A
name
that
ends
with
an
underline
or
that
contains
two
consecutive
underlines
is
a
locative,
as
discussed
in
Section
II.I.
+
for
plus)
or
by
a
graphic
modified
by
one
or
more
following
inflections
(a
period
or
colon),
as
in
+.
and
+:
for
or
and
nor.
A
primary
may
also
be
an
inflected
name,
as
in
e.
and
o.
for
membership
and
pi
times.
A
primary
cannot
be
assigned
a
referent.
+
to
multiplication,
as
in
+=: *
.
10C.
Parsing
S10C.
The
complete
parsing
rules
are
stated
in
the
J
dictionary
as
follows.
The
leading
five-point
summary
will
suffice
for
most
purposes:
10%3+2
,
the
phrase
3+2
is
evaluated
first
to
obtain
a
result
that
is
then
used
to
divide
10
.
In
summary:
,"2-a
is
equivalent
to
(,"2)-a
,
not
to
,"(2-a)
.
+/ . */b
,
the
rightmost
adverb
/
applies
to
the
verb
derived
from
the
phrase
+/ . *
,
not
to
the
verb
* .
3*p%q^|r-5
can
therefore
be
read
from
left
to
right:
the
overall
result
is
3
times
the
result
of
the
remaining
phrase,
which
is
the
quotient
of
p
and
the
part
following
the
%
,
and
so
on.
a=: 1 2 3
,
then
b=: +/2*a
would
be
parsed
and
executed
as
follows:
" b =: + / 2 * a
" b =: + / 2 * 1 2 3
" b =: + / 2 * 1 2 3
" b =: + / 2 * 1 2 3
" b =: + / 2 * 1 2 3
" b =: + / 2 4 6
" b =: + / 2 4 6
" b =: + / 2 4 6
" b =: 12
" b =: 12
" 12
" 12
The
foregoing
illustrates
two
points:
1)
Execution
of
the
phrase
2 * 1 2 3
is
deferred
until
the
next
element
(the
/
)
is
transferred;
had
it
been
a
conjunction,
the
2
would
have
been
its
argument,
and
the
monad
*
would
have
applied
to
1 2 3
;
and
2)
Whereas
the
value
of
the
name
a
moves
to
the
stack,
the
name
b
(because
it
precedes
a
copula)
moves
unchanged,
and
the
pronoun
b
is
assigned
the
value
12
.
13!:16 (q.v.)
.
The
executions
in
the
stack
are
confined
to
the
first
four
elements
only,
and
eligibility
for
execution
is
determined
only
by
the
class
of
each
element
(noun,
verb,
etc.,
an
unassigned
name
being
treated
as
a
verb),
as
prescribed
in
the
following
parse
table.
EDGE VERB NOUN ANY 0 Monad
EDGE+AVN VERB VERB NOUN 1 Monad
EDGE+AVN NOUN VERB NOUN 2 Dyad
EDGE+AVN VERB+NOUN ADV ANY 3 Adverb
EDGE+AVN VERB+NOUN CONJ VERB+NOUN 4 Conj
EDGE+AVN VERB VERB VERB 5 Trident
EDGE CAVN CAVN CAVN 6 Trident
EDGE CAVN CAVN ANY 7 Bident
NAME+NOUN ASGN CAVN ANY 8 Is
LPAR CAVN RPAR ANY 9 Paren
Legend: AVN denotes ADV+VERB+NOUN
CAVN denotes CONJ+ADV+VERB+NOUN
EDGE denotes MARK+ASGN+LPAR
10D.
Conventional
mathematical
notation
S10D.
This
section
is
a
discussion
of
mathematical
notation
from
the
vantage
point
of
programming
languages,
with
emphasis
on
ideas
from
programming
that
might
be
adopted
without
conflict
in
mathematical
notation.
By
relieving
the
brain
of
all
unnecesary
work,
a
good
notation
sets
it
free
to
concentrate
on
more
advanced
problems,
and
in
effect
increases
the
mental
power
of
the
race...
By
the
aid
of
symbolism
we
can
make
transitions
in
reasonings
almost
mechanically
by
the
eye...
A.
N.
Whitehead
On
the
other
hand,
Cajori
comments
on
the
paucity
of
publications
concerning
the
general
question
of
notation,
and
quotes
De
Morgan
("a
close
student
of
the
history
of
mathematics")
as
follows:
Mathematical
notation,
like
language,
has
grown
up
without
much
looking
to,
at
the
dictates
of
convenience
and
with
the
sanction
of
the
majority.
In
that
preface
William
Forster
quotes
the
reply
of
Oughtred
to
the
question
of
how
he
(Oughtred)
had
for
so
many
years
concealed
his
invention
of
the
slide
rule
from
himself
(Forster)
whom
he
had
taught
so
many
other
things.
The
reply
was:
On
page
93
Cajori
continues
with:
That
the
true
way
of
Art
is
not
by
Instruments,
but
by
Demonstration:
and
that
it
is
a
preposterous
course
of
vulgar
Teachers,
to
begin
with
Instruments,
and
not
with
the
Sciences,
and
so
in-stead
of
Artists,
to
make
their
Scholers
only
doers
of
tricks,
and
as
it
were
Iuglers
...
That
the
vse
of
instruments
is
indeed
excellent,
if
a
man
be
an
Artist:
but
contemptible
being
set
and
opposed
to
Art.
And
lastly,
that
he
meant
to
commend
to
me,
the
skill
of
Instruments,
but
first
he
would
haue
me
well
instructed
in
the
Sciences.
It
may
be
claimed
that
there
is
a
middle
ground
which
more
nearly
represents
the
ideal
procedure
in
teaching.
Shall
the
slide
rule
be
placed
in
the
student"s
hands
at
the
time
when
he
is
engaged
in
the
mastery
of
principles?
Shall
there
be
an
alternate
study
of
the
theory
of
logarithms
and
of
the
slide
rule
--
on
the
idea
of
one
hand
washing
the
other
--
...
Writing
in
the
early
1900"s,
Cajori
could
not
have
foreseen
the
advent
of
that
universal
mathematical
instrument,
the
modern
computer,
nor
its
spawning
of
the
development
and
study
of
the
notations
of
programming
languages.
00 0080 10
00 0081 11
10 0082 11
loaded
the
number
contained
in
register
80
into
the
accumulator,
added
register
81
to
it,
and
stored
the
resulting
sum
in
register
82.
Let a=3
Let b=5
Let c=(a+b)*(a-b)
Although
a
few
symbols
from
programming
languages
(such
as
FORTRAN"s
*
for
multiplication)
have
been
widely
adopted
in
math,
the
mathematical
notation
used
in
exposition
has
been
largely
unaffected.
On
the
other
hand,
many
mathematicians
have
been
forced
to
learn
programming
languages,
or
to
work
with
programmers
who
translate
their
mathematical
expressions.
"I
doubt
not
but
that
there
shall
be
in
convenient
time,
brought
to
light
many
precepts
which
may
tend
to
ye
perfecting
of
Navigation,
and
the
help
and
safety
of
such
whose
Vocations
doe
inforce
them
to
commit
their
lives
and
estates
in
the
vast
Ocean
to
the
providence
of
God."
Thus
farr
that
very
good
and
judicious
man
Mr.
Oughtred.
I
will
add,
that
if
instead
of
sending
the
Observations
of
Seamen
to
able
Mathematicians
at
Land,
the
Land
would
send
able
Mathematicians
to
Sea,
it
would
signify
much
more
to
the
improvemt
of
Navigation
and
safety
of
Mens
lives
and
estates
on
that
element.
The
need
to
make
translation
manageable
has
led
to
the
development
of
languages
with
simple
and
precisely
defined
grammars,
that
is,
rules
for
word-formation
and
parsing.
Although
mathematical
notation
undoubtedly
possesses
parsing
rules,
they
are
rather
loose,
sometimes
contradictory,
and
seldom
clearly
stated.
It
is
perhaps
significant
that
Cajori"s
History
makes
no
mention
of
the
matter
of
grammar.
v<-2 7 1 8 2 8
+/v
28
The
operator
applies
to
any
function,
such
as
*
(times),
>.
(max),
or
<.
(min),
and
may
therefore
obviate
the
use
of
many
symbols
such
as
the
capital
Greek
sigma
and
pi
for
summation
and
product:
(*/v),(>./v),(<./v)
1792 8 1
Because
of
their
application
to
a
broad
range
of
topics,
their
strict
grammar,
and
their
strict
interpretation,
programming
languages
can
provide
new
insights
into
mathematical
notation.
We
begin
with
the
matter
of
symbols.
= < > _ + * - % ^ $ ~ | . : , ;
# ! / \ [ ] { } " ' ` @ & ?
This
economy
is
achieved
in
part
by
adopting
from
mathematics
the
use
of
reserved
words
such
as
sin,
cos,
e,
and
log
--
reserved
from
use
as
names
for
variables.
Further
economies
are
implicit
in
notions
that
have
been
used
in
mathematics
but
not
systematically
exploited.
We
will
illustrate
them
by
their
use
in
J,
a
language
derived
from
APL.
f
and
g
by
f+g
.
This
notion
can
be
exploited
more
generally,
including
constructs
such
as
f+g*h
for
f
added
to
the
product
of
g
and
h
.
For
example,
using
%
for
divide,
and
#
for
number
of
elements:
mean=: +/ % # NB. Arithmetic mean or average
mean 1 2 3 4 5
3
com=: ] - +/ % # NB. ] is the identity function
com 1 2 3 4 5 NB. Center on mean
_2 _1 0 1 2
Non-mathematical
functions
can
be
used
in
a
train.
For
example,
the
function
;
(which
boxes
each
argument
and
catenates
the
boxed
results)
can
be
used
to
display
results
for
convenient
comparison:
(];mean;com;] - +/ % #) 1 2 3 4 5
+---------+-+-----------+-----------+
|1 2 3 4 5|3|_2 _1 0 1 2|_2 _1 0 1 2|
+---------+-+-----------+-----------+
1
and
0
to
denote
true
and
false,
and
used
the
symbols
for
times
and
plus
to
denote
the
logical
functions
and
and
or.
*
.
for
and
and
+
.
for
or.
Similarly,
=
is
used
as
a
truth-function
(like
<
and
>),
whereas
=:
is
used
as
a
copula
(to
assign
a
referent
to
a
name),
and
<.
is
used
for
lesser-of
(that
is,
minimum).
Thus:
p=: 0 0 1 1 [ q=: 0 1 0 1
(p *. q);(p +. q);(p + q);(p < q);(p <. q)
+-------+-------+-------+-------+-------+
|0 0 0 1|0 1 1 1|0 1 1 2|0 1 0 0|0 0 0 1|
+-------+-------+-------+-------+-------+
AMBIVALENCE
In
the
expression
a-b
the
symbol
-
denotes
subtraction
(a
function
of
two
arguments),
whereas
in
-b
it
denotes
negation,
a
different
(albeit
related)
function
of
one
argument.
This
ambivalence
(a
"binding
power"
of
either
two
or
one)
introduces
no
confusion
in
conventional
notation,
and
could
be
exploited
for
other
functions:
a=: 2
b=: 5
(a-b),(-b) NB. Subtraction and Negation (0-b)
_3 _5
(a%b),(%b) NB. Division and Reciprocal (1%b)
0.4 0.2
(a^b),(^b) NB. Power and Exponential (e^b)
32 148.413
(a^.b),(^.b) NB. Base-a log, Natural log (e^.b)
2.32193 1.60944
BONDS
In
their
Combinatory
Logic
[11],
Curry
and
Feys
developed
a
set
of
combinators,
which
we
will
treat
as
operators
in
the
sense
of
Heaviside.
One
of
these
bonds
a
function
of
two
arguments
(such
as
^
)
to
one
of
its
arguments
(such
as
3
)
to
produce
a
function
of
one
argument
(the
cube),
an
operation
that
has
come
to
be
called
Currying
in
honour
of
its
author.
For
example:
cube=: ^ with 3
log10=: 10 with ^.
(cube ; log10) 10 50 100 200
+-------------------+-------------------+
|1000 125000 1e6 8e6|1 1.69897 2 2.30103|
+-------------------+-------------------+
Conclusion.
Taken
together,
trains,
inflection,
ambivalence,
and
bonds
provide
highly
mnemonic
representations
for
a
host
of
functions.
Their
advantages
can
be
fully
appreciated
only
by
careful
comparison
with
the
alternatives
now
used
in
mathematics.
"727
Invention
of
Symbols.
--
Whenever
the
source
is
known,
it
is
found
to
have
been
individualistic
--
the
conscious
suggestion
of
one
mind.
Comments
about
the
hope
of
grateful
remembrance
appear
unkind;
perhaps
Oughtred
invented
symbols
to
clarify
his
own
thinking,
and
as
a
tool
for
teaching.
Nevertheless,
Cajori"s
main
point
is
sound
--
any
attempt
to
impose
an
individual
system
is
vain
and
hopeless.
log(a+b)*(a-b)
is
carried
out
by
identifying
the
primitive
operations
(such
as
addition)
and
then
performing
them
in
an
appropriate
order.
The
process
begins
with
word-formation
(identification
of
the
individual
words:
log
,
left
parenthesis,
a
,
+
,
b
,
etc.),
and
continues
with
parsing
the
sequence
of
words
according
to
a
formal
or
informal
grammar
based
upon
the
parts
of
speech
(variables,
functions,
punctuation,
etc.).
;:
)
to
a
quoted
character
string:
;:'log(a+b)*(a-b)'
+---+-+-+-+-+-+-+-+-+-+-+-+
|log|(|a|+|b|)|*|(|a|-|b|)|
+---+-+-+-+-+-+-+-+-+-+-+-+
sqr=: ^ with 2
area=: sqr 4
+/\4#3
3 6 9 12
PARTS OF SPEECH
MATH TERMS ENGLISH (J) TERMS
Constants 2 3 4 Nouns
Variable area Pronoun
Functions ^ # Verbs
Function sqr Proverb
Operators / \ Adverbs
Operator with Conjunction
( ) Punctuation
=: Copula
2+2
and
2*2
and
2^2
yield
identical
results,
only
for
the
specific
argument
2
,
but
2*2
and
sqr 2
are
identical
for
any
argument.
Such
an
identity
is
usually
expressed
by
using
a
variable
argument
in
the
form
x*x
and
sqr x
.
pi
in
the
expression
pi=: 3.14159
is
jarring,
since
there
is
no
intent
to
allow
its
value
to
vary.
Although
the
term
pronoun
is
not
commonly
used
in
mathematics,
Hogben
uses
it
(p
432)
to
refer
to
the
symbol
e
used
for
Euler"s
number.
+/v
can
replace
the
Greek
sigma
for
summation
and,
more
generally,
f/
can
replace
other
such
symbols,
but
only
for
functions
that
are
not
anonymous.
x=: 3 [ y=: 4
(x*y),(3*4),(xy),(34) NB. xy is NOT a J expression
12 12 12 34
HIERARCHY
AND
ORDER
OF
EXECUTION
The
polynomial
expression
3x+4x2+2x4
evaluates
correctly
only
under
the
convention
that
the
power
function
is
executed
before
multiplication,
and
multiplication
before
addition.
This
heirarchy
is
adopted
throughout
mathematics,
and
in
almost
all
programming
languages.
+/3 4 2*x^1 2 4
,
and
in
+/c*x^e
.
1-2-3-4-5
may
be
interpreted
differently
according
to
how
it
is
parenthesized:
the
following
interpretations
are
used
in
mathematics
and
in
J:
(((1-2)-3)-4)-5 NB. Math
1-(2-(3-(4-5))) NB. J
1-(2+3+4+5)
),
and
the
J
result
is
the
alternating
sum
(1+3+5)-(2+4)
.
f/v
inserts
the
function
f
between
elements
of
v
,
the
J
expression
-/v
gives
the
alternating
sum,
a
commonly-needed
result
that
is
expressed
in
math
as
the
sum
over
(Greek
sigma)
(-1)i v
.
Similarly,
the
alternating
product
is
expressed
as
%/v
.
3e6
to
denote
3*10^6
.
Producing
no
conflict,
this
has
also
been
widely
adopted
in
mathematics.
3j4
(a
complex
number)
and
1r2
(a
rational)
and
1r2p1
could
be
similarly
adopted
for
many
convenient
constants,
as
illustrated
by
the
following
examples
from
J:
2p1 1r2p1 1r4p_1 NB. Multiples of powers of pi
6.28319 1.5708 0.0795775
3x2 2b101 NB. 3 times e sqared,101 in base 2
22.1672 5
2ad30 NB. Complex number, magnitude 2 at 30 deg.
1.73205j1
n
(when
it
exists)
such
that
n f x
yields
x
for
any
argument
x
.
For
example,
0
is
the
neutral
of
+
,
and
1
is
the
neutral
of
*
.
k{.v
and
k}.v
to
take
and
drop
the
first
k
elements
of
a
vector
v
,
we
may
write
identities
concerning
sums
and
products
over
partitions
of
a
vector:
v=: 2 3 5 7 11
k=: 3
(k{.v);(k}.v);((+/k{.v) + (+/k}.v));(+/v)
+-----+----+--+--+
|2 3 5|7 11|28|28|
+-----+----+--+--+
(*/v);((*/k{.v) * (*/k}.v))
+----+----+
|2310|2310|
+----+----+
k=: 0
(for
which
k{.v
is
an
empty
vector),
but
only
because
the
results
of
+/i.0
and
*/i.0
are
defined
to
be
the
neutrals
of
+
and
*
.
The
neutral
of
minimum
(<./i.0
)
is
infinity,
in
effect
defining
it.
*/x-i.m
,
correctly
including
the
case
of
the
empty
vector
that
occurs
when
m
is
zero.
Moreover,
*/x+s*i.m
covers
a
host
of
cases;
in
particular,
the
values
_1
and
0
and
1
for
s
give
the
falling
factorial,
the
ordinary
power
function,
and
the
rising
factorial.
Non-integer
values
of
s
are
equally
useful
in
the
finite
calculus.
!.
provides
them
in
expressions
of
the
form
^!.s
.
p.!.s
provides
the
corresponding
polynomial
functions
(in
which
the
power
function
^
used
in
the
ordinary
polynomial
is
replaced
by
the
stope
function
^!.s
).
Compare
the
use
of
^!.s
with
the
notations
discussed
in
the
introductory
Note
on
Notation
in
[2].
t under p
,
using
the
"under"
operator
under=: &.
.
Thus:
under=: &.
0 0 1 1 +. under -. 0 1 0 1 NB. Or under not is and
0 0 0 1
3 + under ^. 4 NB. Times as add under natural log
12
3 " under (10 with ^.) 4 NB. Division using base-10 log
0.75
(<2 1 3) + under p. (<1 0 4) NB. Add polynomials
+-+------------------+
|2|3.68614 1 0.813859|
+-+------------------+
p.
to
map
the
polynomial
roots
given
by
the
arguments
to
corresponding
coefficients,
which
are
then
added
and
mapped
back
to
give
the
equivalent
multiplier
2
and
roots
3.68614 1 0.813859
.
--------------------------------
O O
--------------------------------
O O O
--------------------------------
O
--------------------------------
--------------------------------
Hold the doll
Drop the ball
Drop the ball and hold the doll
I dropped the ball and holded the doll
(base 10) logarithm of 3 log10 3
negation of 3 -3
factorial 3 3! (Order of noun and verb reversed)
(# of combs of) 3 above 5 in large parentheses
3 to the power 5 3 superscript 5
3 beside 5 (3,5) (Parens mandatory for vectors)
this is 3 Let t=3 (Single-letter names only)
that is 5 Let u=5
this plus that t+u
(is) this lessthan that t<u Usually treated as assertions,
(is) this equalto that t=u rather than as more usable truth-
functions that return results
English Math J C
logarithm of 3 log10 3 10^.3 log10(3.0)
negation of 3 3 -3 -3
factorial 3 3! !3 fact(3)
(# of combs of) 3 above 5 in parens 3!5 outof(3,5)
3 to the power 5 3 superscript 5 3^5 pow(3.0,5.0)
3 beside 5 (3,5) 3,5
this is 3 Let t=3 this=: 3 this=3
that is 5 Let u=5 that=: 5 that=5
this plus that t+u this+that this+that
(is) this equalto that t=u this=that this==that
+ - * ^ ! +. *. ^. < = > >:
select
a
few
for
exploration
by
entering
expressions
such
as:
16 + 36
52
16 +. 36
4
x=: 0 1 2 3 4 5
and
y=: x
and
x +/ y
to
produce
an
addition
table.
Then
enter
expressions
for
further
tables
to
identify
each
of
the
functions
listed
in
Exp
1.
Which
of
the
functions
appear
to
be
commutative?
f=: +/*-/
and
g=: </+.=/
]y=: x=: 0 1 2 3 4 5 6 - 3
_3 _2 _1 0 1 2 3
Exp
5
Evaluate
the
familiar
sum
over
(denoted
by
capital
Greek
sigma)
cixi
at
x=0
,
assuming
that
(as
is
often
stated)
zero
to
the
power
zero
is
undefined.
2 3 5 7;11 13
x (-/ ; -~/) y
x (</ ; =/ ; g ; <:/) y
~
,
and
state
what
part
of
speech
it
is
in
J:
x (-/ ; -~/) y
x (!/ ; !~/) y
x (*./ ; *.~/) y
S1=: %.S2=: |: (^/%.^!._1/)~ i.10r1
(%. N is matrix inverse, and M %. N is "matrix divide")
;: 'TABLE=: x (*./ ; *.~/) y'
trace=: 13 !: 16
and
9 trace 1
to
invoke
the
tracing
of
subsequent
expressions,
that
is,
to
show
their
detailed
parsing
and
execution.
Then
enter
TABLE=: x (*./ ; *.~/) y
and
other
expressions
from
earlier
explorations.
9 trace 0
.
11A.
Introduction
11A.
Introduction
S11A.
Its
modest
aim
is
to
elaborate
the
point
that
informal,
quasi-empirical,
mathematics
does
not
grow
through
a
monotonous
increase
of
the
number
of
indubitably
established
theorems
but
through
the
incessant
improvement
of
guesses
[Italics
added]
by
speculation
and
criticism,
by
the
logic
of
proofs
and
refutations.
Just
send
me
the
theorems,
then
I
shall
find
the
proofs.
Chrysippus
There
are
then
two
mathematics.
There
is
the
real
mathematics
of
the
real
mathematicians,
and
there
is
what
I
will
call
"trivial"
mathematics,
for
want
of
a
better
word.
The
trivial
mathematics
may
be
justified
by
arguments
which
would
appeal
to
Hogben,
or
other
writers
of
his
school,
but
there
is
no
such
defence
for
the
real
mathematics,
which
must
be
justified
as
an
art
if
it
can
be
justified
at
all.
There
is
nothing
in
the
least
paradoxical
or
unusual
in
this
view,
which
is
that
held
commonly
by
mathematicians.
11B.
Informal
proofs
S11B.
We
will
illustrate
a
proof
by
first
guessing
at
a
relation,
using
the
function
odd
from
Section
2E:
odd=: 1:+2:*i.
odd 6
1 3 5 7 9 11
+/odd 6
36
(+/ odd 1),(+/odd 2),(+/odd 3),(+/odd 4),(+/odd 5)
1 4 9 16 25
It
appears
that
the
sum
of
the
first
n
odd
integers
is
n*n
,
a
relation
we
will
demonstrate
by
using
a
few
facts
illustrated
by
the
following:
|. odd 6
11 9 7 5 3 1
(+/odd 6),(+/|.odd 6)
36 36
(odd 6)+(|.odd 6)
12 12 12 12 12 12
6 # 2*6 NB. Six copies of twice six
12 12 12 12 12 12
half=: % with 2
half 6 # 2*6
6 6 6 6 6 6
+/half 6 # 2*6
36
+/6#6
36
6*6
36
We
now
write
a
sequence
of
(obviously?)
equivalent
sentences:
n=: 6
+/odd n
36
+/|.odd n
36
half (+/odd n)+(+/|.odd n)
36
half +/(odd n)+(|.odd n)
36
half +/6 # 2*6
36
+/6 # 6
36
n*n
36
Because
a
value
(6
)
was
assigned
to
the
argument
n
,
each
of
the
foregoing
sentences
were
executable,
and
were
executed
to
give
results
whose
equality
provided
some
assurance
that
an
error
had
not
been
made.
We
will,
however,
write
an
informal
proof
as
a
similar
sequence,
omitting
the
results
that
would
have
been
produced
by
their
execution.
Thus:
+/odd n
+/|.odd n
half (+/odd n)+(+/|.odd n)
half +/(odd n)+(|.odd n)
half +/6 # 2*6
+/6 # 6
n*n
11C.
Formal
proofs
S11C.
In
a
formal
proof
it
is
necessary
to
state
clearly
the
justification
for
each
equivalence,
that
is,
the
reason
why
each
statement
is
believed
to
be
equivalent
to
the
one
that
precedes
it.
For
example,
we
will
begin
to
convert
the
foregoing
informal
proof
to
a
formal
proof
as
follows:
+/odd n
+/|.odd n
half (+/odd n)+(+/|.odd n)
half +/(odd n)+(|.odd n)
half +/6 # 2*6
+/6 # 6 NB. Half of sum is sum of halves
n*n NB. Def of multiplication (in 1G)
A
stickler
for
logic
might
ask
why
he
should
believe
that
half
of
a
sum
equals
the
sum
of
the
halves
of
the
list
summed.
A
convincing
answer
is
not
as
easy
as
might
be
supposed,
leading
to
an
appreciation
of
the
following
statement
from
Lakatos:
TEACHER:
This
decomposition
of
the
conjecture
suggested
by
the
proof
opens
new
vistas
for
testing.
The
decomposition
deploys
the
conjecture
on
a
wider
front,
so
that
our
criticism
has
more
targets.
+/odd n
and
+/|.odd n
?
It
may
seem
obvious,
but
what
is
special
about
+/
that
would
not
apply
for
another
function
such
as
%/
?
A
mathematician
might
say
(and
offer
proofs
that)
functions
such
as
+/
and
*/
and
gcd/
and
>./
are
symmetric,
meaning
that
they
give
the
same
result
when
applied
to
any
permutation
(re-ordering)
of
their
arguments.
TEACHER:
I
agree
with
you
that
the
conjecture
has
received
a
severe
criticism
by
Alpha"s
counterexample.
But
it
is
untrue
that
the
proof
has
"completely
misfired".
If,
for
the
time
being,
you
agree
to
my
earlier
proposal
to
use
the
word
"proof"
for
a
"thought
experiment"
which
leads
to
a
decomposition
of
the
original
conjecture
into
"subconjectures",
instead
of
using
it
in
the
sense
of
a
"guarantee
of
certain
truth",
you
need
not
draw
this
conclusion.
+/even n
,
and
write
an
informal
proof
of
the
equivalence.
+/i.n
+/
on i. t. i. 4
11D.
Inductive
proofs
S11D.
+/ on odd n
were
equal
to
n*n
for
a
certain
value
of
n
,
we
were
able
to
use
this
assumption
to
prove
that
+/ on odd n+1
must
therefore
equal
(n+1)*(n+1)
,
we
could
then
conclude
that
equality
must
hold
for
all
succeeding
values,
n+2
and
n+3
,
and
so
on.
n=: 0
),
we
may
further
conclude
that
the
relation
is
true
for
all
integers
greater
than
or
equal
to
that
value.
For
example:
+/ on odd n+1
(+/odd n)+(2*n)+1 NB. From definition of odd
(n*n)+(2*n)+1 NB. Assumed "induction hypothesis"
(n+1)*(n+1) NB. Simple algebra
11E.
Recursive
definition
S11E.
A
function
that
is
defined
in
terms
of
itself
is
said
to
be
recursively
defined.
For
example,
a
factorial
function
fac
might
be
defined
by
saying
that
fac n
is
n * fac n-1
.
However,
it
is
necessary
to
further
define
its
value
for
some
specific
argument;
for
example,
to
define
fac 0
as
1
.
]*fac on <:
to
perform
the
recursion,
the
constant
function
1:
for
the
specific
argument
0
,
and
the
"conditional
function"
= with 0
to
choose
between
them.
Thus:
fac=: (]*fac on <:) ` 1: @. (= with 0)
fac 0
1
fac 4
24
!4
24
In
the
foregoing,
the
tie
operator
`
forms
a
gerund
from
the
two
functions
to
which
it
is
applied,
and
the
agenda
operator
@.
selects
one
of
them
according
to
the
result
of
the
conditional
function
= with 0
.
sodd
for
the
sum
of
the
odd
integers
might
be
recursively
defined
as
follows:
sodd=: (sodd on <: + 2 with * - 1:)`0: @. (= with 0)
(sodd 0),(sodd 1),(sodd 2),(sodd 3),(sodd 4)
0 1 4 9 16
The
first
and
"main"
function
of
the
three
used
in
this
recursive
definition
may
be
interpreted
as
follows:
sodd n
is
equal
to
(sodd n-1) + (2*n) " 1
or,
equivalently,
that
sodd n+1
equals
(sodd n) + (2*n+1) " 1
.
n
odd
numbers
is
n*n
,
using
the
inductive
hypothesis
of
Section
D
as
follows:
sodd n+1
(sodd n) + (2*n+1) " 1 NB. Recursive def of sodd
(n*n) + (2*n+1) " 1 NB. Induction hypothesis
(n+1)*(n+1) NB. Simple algebra
n=: 6
d=: 0 1r6 _1r2 1r3
+/*:i.n
55
d p. n
55
11F.
Guessing
games
S11F.
i.
applies
to
an
argument
such
as
3 4
to
produce
a
table,
but
we
may
also
wish
to
apply
it
to
each
of
the
arguments
3
and
4
to
produce
separate
lists.
Thus:
a=: 3 4
i. a
0 1 2 3
4 5 6 7
8 9 10 11
i.3
0 1 2
i.4
0 1 2 3
eachbox=: &.>
i. eachbox a
+-----+-------+
|0 1 2|0 1 2 3|
+-----+-------+
PREFIX
In
summing
the
list
2 7 1 8
,
we
may
also
wish
to
obtain
the
"subtotals"
or
"partial
sums"
by
applying
sumation
over
each
prefix
of
the
list.
Thus:
pref=: \
sum=: +/
a=: 2 7 1 8
sum a
18
sum pref a
2 9 10 18
*/pref a
2 14 14 112
<./pref a
2 2 1 1
>./pref a
2 7 7 8
diag=: /.
c=: 1 2 1
d=: 1 3 3 1
t=: c */d
t
1 3 3 1
2 6 6 2
1 3 3 1
sum diag t
1 5 10 10 5 1
f
is
a
function
and
g
is
a
guess
at
an
equivalent
function,
then
f-g
gives
the
needed
correction.
For
example:
x=: 0 1 2 3 4 5 6 7r1
each=:"0
f=: +/ on i. each NB. Sums of integers
f x
0 0 1 3 6 10 15 21
g=: (^ with 2 % 2:) each
g x
0 1r2 2 9r2 8 25r2 18 49r2
(f-g) x
0 _1r2 _1 _3r2 _2 _5r2 _3 _7r2
corr=: (- % 2:) each
corr x
0 _1r2 _1 _3r2 _2 _5r2 _3 _7r2
gc=: g+corr NB. Corrected guess
(f=gc) x
1 1 1 1 1 1 1 1
RATIOS
The
ratio
f%g
may
sometimes
provide
a
better
guide
to
correction.
Consider,
for
example,
the
following
sums
of
powers:
f1=: +/ on (^&1) on i. each
f2=: +/ on (^&2) on i. each
f3=: +/ on (^&3) on i. each
f4=: +/ on (^&4) on i. each
f5=: +/ on (^&5) on i. each
(f1,f2,f3,f4,:f5) x
0 0 1 3 6 10 15 21
0 0 1 5 14 30 55 91
0 0 1 9 36 100 225 441
0 0 1 17 98 354 979 2275
0 0 1 33 276 1300 4425 12201
For
f1
the
equivalent
function
g1
is,
of
course,
the
function
gc
derived
above,
and
we
will
use
the
ratio
f3%g1
to
look
for
a
definition
of
a
function
g3
corresponding
to
f3
.
Thus:
g1=: gc
(f3%g1) x
0 0 1 3 6 10 15 21
g1 x
0 0 1 3 6 10 15 21
It
therefore
appears
that
g3
may
be
expressed
as
the
product
of
g1
with
itself:
g3=: g1*g1
(f3=g3) x
1 1 1 1 1 1 1 1
TAYLOR
COEFFICIENTS
For
functions
such
as
g1
and
g3
that
are
expressed
directly
in
terms
of
powers,
quotients,
products,
and
sums,
the
Taylor
operator
may
be
applied
to
give
the
coefficients
of
an
equivalent
polynomial.
For
example:
x=: 0 1 2 3 4 5 6 7r1
c1=: g1 t. x
c1
0 _1r2 1r2 0 0 0 0 0
c1&p. x
0 0 1 3 6 10 15 21
f1 x
0 0 1 3 6 10 15 21
c3=: g3 t. x
c3
0 0 1r4 _1r2 1r4 0 0 0
(f3=c3&p.) x
1 1 1 1 1 1 1 1
POLYNOMIAL
APPROXIMATIONS
The
Taylor
operator
does
not
apply
to
functions
such
as
the
square
root,
and
we
use
instead
an
expression
that
gives
coefficients
that
approximate
the
function.
Thus:
f=: %:
f x
0 1 1.4142 1.7321 2 2.2361 2.4495 2.6458
(f x)*(f x) NB. To verify that f is square root
0 1 2 3 4 5 6 7
c=: (f x) %. (x ^/ i.#x)
c p. x
0 1 1.4142 1.7321 2 2.2361 2.4495 2.6458
It
may
be
noted
that
the
polynomial
appeared
to
give
not
just
an
approximation,
but
the
exact
result.
However,
the
result
may
be
far
from
correct
for
arguments
other
than
the
x
used
in
computing
the
coefficients,
especially
so
for
arguments
outside
the
range
of
the
elements
of
x
.
For
example:
c p. x+1r2
0.64666 1.2301 1.5796 1.8717 2.1204 2.3468 2.5436 2.8157
f x+1r2
0.70711 1.2247 1.5811 1.8708 2.1213 2.3452 2.5495 2.7386
c p. 9
5.9577
f 9
3
12A.
Anagrams
12A.
Anagrams
S12A.
Although
we
have
discussed
the
importance
of
relations
and
analysis
(proofs)
in
math,
our
exclusive
use
of
numeric
arguments
has
probably
given
the
impression
that
math
is
exclusively
about
numbers.
To
redress
the
balance,
we
will
now
treat
some
relations
concerning
English
words,
beginning
with
sorting
and
anagrams.
sort=: /:~
(which applies equally to numeric arguments).
For
example:
sort=: /:~
w0=: 'REVEL'
sort w0
EELRV
w1=: 'LEVER'
sort w1
EELRV
w0=w1
0 1 1 1 0
(sort w0)=(sort w1)
1 1 1 1 1
As
shown
in
the
last
results
the
words
are
not
equal,
but
they
are
similar,
in
the
sense
that
they
are
anagrams,
or
permutations
of
one
another,
containing
the
same
letters
but
in
a
different
order.
Although
it
is
not
an
English
word,
we
will
also
call
the
word
'EELVR'
an
anagram.
w2=: 'AH'
(including
itself).
w3=: 'ART'
.
w4a=: 'SPOT'
.
w4b=: 'ABCD'
.
To
check
your
work,
use
the
anagram
function
A.
as
illustrated
below:
0 A. w2=: 'AH'
AH
1 A. w2
HA
0 1 A. w2
AH
HA
0 1 2 3 4 5 A. w3=: 'ART'
ART
ATR
RAT
RTA
TAR
TRA
6 A. w3
|index error
| 6 A.w3
i.6
.
Similar
tests
will
show
that
there
are
twenty-four
anagrams
of
four-letter
words,
leading
to
the
following
tables:
(i.24) A. w4a=: 'SPOT'
SPOT
SPTO
SOPT
SOTP
STPO
STOP
PSOT
PSTO
POST
POTS
PTSO
PTOS
OSPT
OSTP
OPST
OPTS
OTSP
OTPS
TSPO
TSOP
TPSO
TPOS
TOSP
TOPS
trans=: |: NB. Function to transpose a table
trans (i.24) A. w4a=: 'SPOT'
SSSSSSPPPPPPOOOOOOTTTTTT
PPOOTTSSOOTTSSPPTTSSPPOO
OTPTPOOTSTSOPTSTSPPOSOSP
TOTPOPTOTSOSTPTSPSOPOSPS
trans (i.24) A. w4b=: 'ABCD'
AAAAAABBBBBBCCCCCCDDDDDD
BBCCDDAACCDDAABBDDAABBCC
CDBDBCCDADACBDADABBCACAB
DCDBCBDCDACADBDABACBCABA
trans (i.24) A. i.4
0 0 0 0 0 0 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3
1 1 2 2 3 3 0 0 2 2 3 3 0 0 1 1 3 3 0 0 1 1 2 2
2 3 1 3 1 2 2 3 0 3 0 2 1 3 0 3 0 1 1 2 0 2 0 1
3 2 3 1 2 1 3 2 3 0 2 0 3 1 3 0 1 0 2 1 2 0 1 0
(trans (i.24) A. i.4) { 'arst'
aaaaaarrrrrrsssssstttttt
rrssttaassttaarrttaarrss
strtrsstatasrtatarrsasar
tstrsrtstasatrtarasrsara
trans (i.24) A. 'arst'
aaaaaarrrrrrsssssstttttt
rrssttaassttaarrttaarrss
strtrsstatasrtatarrsasar
tstrsrtstasatrtarasrsara
i.4
)
they
may
be
used
to
index
a
word
to
produce
its
anagrams.
anag=: trans on (i. on ! on # A. ])
on
various
lists
of
numbers
and
letters.
n
-letter
word
can
be
obtained
by
a
simple
argument:
the
leading
letter
can
be
chosen
in
n
ways,
so
that
the
total
is
n
times
the
number
of
anagrams
of
an
(n-1
)-letter
word,
leading
to
the
product
n
times
n-1
times
n-2
,
etc.
--
in
other
words,
!n
.
Thus:
#w4a
4
!#w4a
24
(i.24) A. 'ABCD'
suggests
a
systematic
approach:
choose
the
first
letter
of
the
word
as
the
initial
letter,
and
append
to
it
the
table
for
the
remaining
letters
organized
by
the
same
principle;
then
choose
the
second
letter
as
the
initial,
and
so
on.
i.4 3 2
and
(i.4 3 2) A. 'ABCD'
and
<"2(i.4 3 2) A. 'ABCD'
.
Study
the
results,
and
try
similar
expressions
for
shorter
and
longer
words.
p
is
any
one
of
the
six
permutations
of
0 1 2
,
then
3,p
is
a
permutation
of
order
four.
However,
if
p
is
prefixed
by
any
of
the
other
possible
beginnings
of
a
permutation
of
order
four
(2
or
1
or
0
)
the
result
is
not
a
permutation,
but
it
can
be
made
so
by
incrementing
each
element
of
p
that
is
greater
than
or
equal
to
the
prefix.
Thus:
P=: (i.6) A. 0 1 2
P;(3,.P);(P>:2);(P+P>:2);(2,.P+P>:2);(1,.P+P>:1);(0,.P+P>:0)
+-----+-------+-----+-----+-------+-------+-------+
|0 1 2|3 0 1 2|0 0 1|0 1 3|2 0 1 3|1 0 2 3|0 1 2 3|
|0 2 1|3 0 2 1|0 1 0|0 3 1|2 0 3 1|1 0 3 2|0 1 3 2|
|1 0 2|3 1 0 2|0 0 1|1 0 3|2 1 0 3|1 2 0 3|0 2 1 3|
|1 2 0|3 1 2 0|0 1 0|1 3 0|2 1 3 0|1 2 3 0|0 2 3 1|
|2 0 1|3 2 0 1|1 0 0|3 0 1|2 3 0 1|1 3 0 2|0 3 1 2|
|2 1 0|3 2 1 0|1 0 0|3 1 0|2 3 1 0|1 3 2 0|0 3 2 1|
+-----+-------+-----+-----+-------+-------+-------+
n
,
and
prefix
each
by
an
element
of
i.n+1
.
The
scheme
can
also
be
used
as
the
basis
for
a
recursive
definition
of
a
function
for
making
tables
of
permutations.
13A.
Introduction
13A.
Introduction
S13A.
Boolean
or
symbolic
logic
concerns
propositions,
a
proposition
being
simply
a
function
that
produces
one
of
only
two
possible
results.
These
two
results
are
commonly
referred
to
as
true
and
false,
and
(following
George
Boole,
the
father
of
symbolic
logic)
will
be
denoted
by
the
numbers
1
and
0
.
For
example:
f1=: <&0
f2=: >&0
x=: i:3
x
_3 _2 _1 0 1 2 3
f1 x
1 1 1 0 0 0 0
f2 x
0 0 0 0 1 1 1
The
proposition
f1
is
true
(that
is,
gives
the
result
1
)
for
any
negative
number,
and
is
said
to
define
the
set
of
negative
numbers;
f2
defines
the
set
of
positive
numbers.
y
may
be
obtained
by
using
the
result
f2 y
to
copy
from
y
each
element
of
y
for
which
f2 y
is
true.
For
example:
y=: 3 1 4 1 5 9 - 3
y
0 _2 1 _2 2 6
f2 y
0 0 1 0 1 1
(f2 y) # y
1 2 6
13B.
Or,
and,
and
not
S13B.
The
function
or=: +.
may
be
applied
to
two
propositions
to
yield
a
proposition
that
is
true
if
either
of
the
propositions
is
true.
For
example:
or=: +.
g=: f1 or f2
g x
1 1 1 0 1 1 1
Similarly
for
and=: *.
,
the
proposition
proposition
h=: f1 and f2
is
true
only
if
both
f1
and
f2
are
true.
Since
a
number
cannot
be
both
positive
and
negative,
h
can
never
be
true,
and
is
said
to
define
an
empty
set.
Thus:
and=: *.
h=: f1 and f2
h x
0 0 0 0 0 0 0
(h x) # x
(g x) # x
_3 _2 _1 1 2 3
The
(monadic)
function
not=: -.
negates
a
boolean
result.
For
example:
not=: -.
(f1,.(not on f1),.g,.(not on g),.h,.(not on h)) x
1 0 1 0 0 1
1 0 1 0 0 1
1 0 1 0 0 1
0 1 0 1 0 1
0 1 1 0 0 1
0 1 1 0 0 1
0 1 1 0 0 1
13C.
Lists
and
sets
S13C.
The
set
of
English
vowels
is
defined
by
the
proposition
vow
,
developed
as
follows:
s=: 'do you love me'
'aeiou' =/ s
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 1 0 0 0 1 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0
or/'aeiou' =/ s
0 1 0 0 1 1 0 0 1 0 1 0 0 1
vow=: or/ on ('aeiou'&(=/))
vow s
0 1 0 0 1 1 0 0 1 0 1 0 0 1
(vow s)#s
oouoee
(not vow s)#s
d y lv m
alphabet=: 'abcdefghijklmnopqrstuvwxyz '
(vow alphabet)#alphabet
aeiou
It
is
important
to
understand
that
the
set
of
English
vowels
is
defined
by
the
function
vow
,
not
by
the
list
'aeiou'
(nor
by
the
same
list
that
resulted
from
applying
the
function
to
the
universe
of
the
entire
alphabet).
'aeiou'
or
repetitions
of
its
elements
(neither
of
which
affect
the
definition
of
the
function)
with
the
question
of
whether
a
set
is
ordered
(which
it
is
not).
13D.
Classification
S13D.
A
single
proposition
can
be
used
to
classify
its
arguments
according
to
whether
they
belong
to
the
set
it
defines,
and
several
propositions
can
be
used
to
provide
several
classifications.
Consider,
for
example,
a
list
of
transactions
that
are
recorded
as
a
list
of
account
numbers
(an
)
and
a
corresponding
list
of
credits
(cr
)
to
the
accounts,
as
well
as
the
list
of
all
possible
account
numbers
(all
).
Thus:
an=: 1010 1040 1030 1030 1060 1010 1040 1040 1050
cr=: 131 755 458 532 218 47 678 679 934
all=: 1010 1020 1030 1040 1050 1060
c=: all =/ an
c
1 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 0 0 0
0 1 0 0 0 0 1 1 0
0 0 0 0 0 0 0 0 1
0 0 0 0 1 0 0 0 0
eachrow=: "1
cr +/ on * eachrow c
178 0 990 2112 934 218
14A.
Introduction
14A.
Introduction
S14A.
A
pair
of
expressions
(such
as
x*y
and
y*x
)
that
give
identical
results
for
all
possible
values
of
the
arguments
are
said
to
form
an
identity.
Identities
are
important
because
they
allow
a
function
to
be
expressed
in
different
ways,
each
of
which
may
possess
particular
advantages,
such
as
ease
of
evaluation
or
insight
into
the
behaviour
of
the
function.
+/ odd n
(the
sum
of
the
first
n
odd
numbers)
is
identical
to
the
more
easily
computed
product
n*n
.
Similarly,
the
sum
of
the
squares
of
the
first
n
positive
integers
(+/(1+i.n)^2
)
is
identical
to
the
polynomial
0 1r6 1r2 1r3 p. n
.
14B.
Commutativity
S14B.
The
commute
operator
~
interchanges
the
arguments
of
the
function
to
which
it
is
applied.
For
example:
3 -~ 5
2
5 " 3
2
from=: -~
3 from 5
2
into=: %~
5 into 3
0.6
If
f~
is
identical
to
f
,
then
the
function
f
is
said
to
be
commutative.
For
example,
+
and
*
are
commutative,
but
-
and
%
are
not.
<
,
=
,
[
(left),
]
,
<.
(min),
>.
,
+:
(greatest
common
divisor),
and
*:
(least
common
multiple).
f table i:4
for
both
commutative
and
non-commutative
functions,
and
observe
the
symmetry
of
the
former.
14C.
Associativity
S14C.
3-(4-5)
and
(3-4)-5
apply
the
same
function
to
the
same
arguments,
but
yield
different
results
because
the
parentheses
associate
them
differently;
subtracting
5
from
4
and
then
subtracting
the
result
from
3
to
yield
4
in
the
first
case,
and
subtracting
4
from
3
and
then
subtracting
5
from
the
result
to
yield
_6
in
the
last.
3+(4+5)
and
(3+4)+5
both
yield
12
.
14D.
Symmetry
S14D.
+/2 3 5 7
17
+/3 5 2 7
17
-/2 3 5 7
_3
-/3 5 2 7
_7
If
f
is
both
associative
and
commutative,
then
f/
is
symmetric.
For
example:
all=: (i.!3) A. 2 3 5r1
all
2 3 5
2 5 3
3 2 5
3 5 2
5 2 3
5 3 2
lcm=: *.
eachrow=: "1
lcm/ eachrow all
30 30 30 30 30 30
%/ eachrow all
10r3 6r5 15r2 6r5 15r2 10r3
14E.
Distributivity
S14E.
If
f(x g y)
is
equivalent
to
(f x)g(f y)
,
we
say
that
the
(monadic)
function
f
distributes
over
the
(dyadic)
function
g
.
The
two
parts
of
this
identity
may
also
be
stated
as
f on g
and
(f on [) g (f on ])
.
For
example,
+:
(double)
and
-:
(halve)
each
distribute
over
both
addition
and
subtraction,
facts
that
may
be
tested
in
the
following
manner:
3 (+:on+) 5
16
3 (+:on[ + +:on]) 5
16
The
operator
over
defined
below
can
be
used
in
the
expression
f over g
to
test
whether
f
distributes
over
g
.
Thus:
over=: 2 : '(u. on v.) = ((u. on [) v. (u. on ]))'each
(+:over - table ,. -: over + table ,. +: over * table) i:3
+--+----------------+--+----------------+--+----------------+
| |_3 _2 _1 0 1 2 3| |_3 _2 _1 0 1 2 3| |_3 _2 _1 0 1 2 3|
+--+----------------+--+----------------+--+----------------+
|_3| 1 1 1 1 1 1 1|_3| 1 1 1 1 1 1 1|_3| 0 0 0 1 0 0 0|
|_2| 1 1 1 1 1 1 1|_2| 1 1 1 1 1 1 1|_2| 0 0 0 1 0 0 0|
|_1| 1 1 1 1 1 1 1|_1| 1 1 1 1 1 1 1|_1| 0 0 0 1 0 0 0|
| 0| 1 1 1 1 1 1 1| 0| 1 1 1 1 1 1 1| 0| 1 1 1 1 1 1 1|
| 1| 1 1 1 1 1 1 1| 1| 1 1 1 1 1 1 1| 1| 0 0 0 1 0 0 0|
| 2| 1 1 1 1 1 1 1| 2| 1 1 1 1 1 1 1| 2| 0 0 0 1 0 0 0|
| 3| 1 1 1 1 1 1 1| 3| 1 1 1 1 1 1 1| 3| 0 0 0 1 0 0 0|
+--+----------------+--+----------------+--+----------------+
over
to
test
whether
+:
distributes
over
gcd
and
lcm
.
d=: * with 2
and
h=: % with 2
it
appears
that
numbers
other
than
2
would
do
as
well,
that
is,
any
multiple
or
fraction
function
would
distribute
over
addition
(and
subtraction).
Thus:
(((* with 2.5)over + table),.((% with 4)over + table))i:3
+--+----------------+--+----------------+
| |_3 _2 _1 0 1 2 3| |_3 _2 _1 0 1 2 3|
+--+----------------+--+----------------+
|_3| 1 1 1 1 1 1 1|_3| 1 1 1 1 1 1 1|
|_2| 1 1 1 1 1 1 1|_2| 1 1 1 1 1 1 1|
|_1| 1 1 1 1 1 1 1|_1| 1 1 1 1 1 1 1|
| 0| 1 1 1 1 1 1 1| 0| 1 1 1 1 1 1 1|
| 1| 1 1 1 1 1 1 1| 1| 1 1 1 1 1 1 1|
| 2| 1 1 1 1 1 1 1| 2| 1 1 1 1 1 1 1|
| 3| 1 1 1 1 1 1 1| 3| 1 1 1 1 1 1 1|
+--+----------------+--+----------------+
Since
*
is
commutative,
2.5 with*
would
serve
as
well
as
*with 2.5
in
the
foregoing,
but
would
4 with%
give
the
same
result
as
%with 4
?
14F.
Distributivity
of
dyadic
functions
S14F.
Although
we
have
discussed
the
distribution
of
monadic
functions
over
dyadic
functions,
it
is
more
common
in
mathematics
to
discuss
the
distribution
of
dyadic
functions
over
dyadic
functions.
Thus,
because
a*(b+c)
is
equivalent
to
(a*b)+(a*c)
,
it
is
said
that
multiplication
distributes
over
addition.
Similarly
(a+b)*c
is
equivalent
to
(a*c)+(b*c)
,
and
again
multiplication
distributes
over
addition.
(a+b)%c
is
equivalent
to
(a%c)+(b%c)
and
we
might
conclude
that
division
also
distributes
over
addition.
On
the
other
hand,
a%(b+c)
is
not
equivalent
to
(a%b)+(a%c)
,
and
it
is
sometimes
said
that
division
"distributes
to
the
left"
over
addition.
x with *
and
* with x
and
% with x
distribute
over
addition,
but
that
x with %
does
not.
Finally,
the
idea
of
a
monadic
function
distributing
over
addition
leads
to
the
important
notion
of
linear
functions,
treated
in
Chapter
15.
14G.
Parity
S14G.
A
graph
of
the
square
function
appears
to
be
reflected
(as
in
a
mirror)
in
the
vertical
line
through
the
origin.
This
is
so
because
the
square
of
-x
equals
the
square
of
x
for
every
x
.
Thus:
sqr=: ^ with 2
x=: i:1j10
x
_1 _0.8 _0.6 _0.4 _0.2 0 0.2 0.4 0.6 0.8 1
sqr x
1 0.64 0.36 0.16 0.04 0 0.04 0.16 0.36 0.64 1
PLOT x;sqr x
Similarly,
a
graph
of
the
cube
is
reflected
in
the
origin,
because
the
cube
of
-x
equals
the
negative
of
the
cube
of
x
:
cube=: ^ with 3
PLOT x;cube x
(cube -x)=(-cube x)
1 1 1 1 1 1 1 1 1 1 1
(sqr x)=(sqr x)
1 1 1 1 1 1 1 1 1 1 1
Simple
algebra
shows
that
for
any
function
f
,
the
function
ef=: f + f with -
is
even,
and
that
the
function
of=: f - f with -
is
odd.
For
example:
f=: ^ NB. The exponential (which is neither even nor odd)
ef=: f+f with -
of=: f-f with -
PLOT x;(f,ef,:of) x
The
functions
hef=: ef % 2:
and
hof=: of % 2:
are
called
the
even
and
odd
parts
of
f
because
they
are,
respectively,
even
and
odd,
and
because
they
sum
to
f
:
hef=: ef % 2:
hof=: of % 2:
(f=hef+hof) x
1 1 1 1 1 1 1 1 1 1 1
PLOT x;(hef,hof,:hef+hof) x
The
odd
and
even
parts
of
a
function
are
often
functions
of
interest
in
their
own
right.
For
example,
hof
is
the
hyperbolic
sine,
and
hef
is
the
hyperbolic
cosine.
They
are
denoted
in
J
by
5 with o.
and
6 with o.
,
respectively.
15A.
Dot
product
and
vector
functions
15A.
Dot
product
and
vector
functions
S15A.
The
expression
+/w*x
gives
a
sum
over
the
argument
x
weighted
by
the
vector
w
.
For
example:
x=: 2 3 5 7 11
w=: 0 1 2 3 4
w*x
0 3 10 21 44
+/w*x
78
The
dot
operator
(.
)
applied
to
the
functions
+/
and
*
produces
an
equivalent
function
called
the
dot,
inner,
or
matrix
product.
Thus:
dp=: +/ . *
w dp x
78
Moreover,
dp
applies
to
a
matrix
(table)
left
argument
to
produce
a
vector
(list)
of
results,
using
successive
rows
of
the
matrix
as
weights.
For
example:
a=: 3 1 4
b=: 2 7 8
c=: 2 1 0
]m=: a,b,:c
3 1 4
2 7 8
2 1 0
m dp 2 3 5
29 65 7
b dp 2 3 5
65
g=: m with dp
g 2 3 5
29 65 7
If
m
is
a
square
matrix
(as
in
the
present
example),
then
m with dp
applies
to
a
vector
to
produce
a
vector
of
the
same
number
of
elements.
We
will
call
such
a
function
a
vector
function.
15B.
Dot
product
as
a
linear
vector
function
S15B.
The
dot
product
with
a
vector
or
matrix
left
argument
distributes
over
addition,
and
is
therefore
a
linear
function,
as
defined
in
Section
14F.
For
example:
x=: 2 3 5
y=: 0 1 2
f=: 2 7 8 with dp
((f x)+(f y)) , (f x+y)
88 88
g=: m with dp
((g x)+(g y)) ,: (g x+y)
38 88 8
38 88 8
The
function
I=: =/~ on i.
yields
a
result
called
an
identity
matrix,
because
when
used
with
dp
it
produces
an
identity
function
(that
yields
its
argument
unchanged).
For
example:
I=: i. =/ i.
]i=: I 3
1 0 0
0 1 0
0 0 1
i with dp 2 3 5
2 3 5
A
linear
vector
function
need
not
be
expressed
as
a
dot
product,
but
if
it
is
not,
the
required
matrix
is
easily
determined.
For
example,
sop=: +/\
(sums
over
prefixes)
is
a
linear
vector
function,
and
the
matrix
m
for
an
equivalent
function
m with dp
may
be
determined
as
follows:
x=: 2 3 5 7 11
y=: 0 1 2 3 4
sop=: +/\
((sop x)+(sop y)) ,: (sop x+y)
2 6 13 23 38
2 6 13 23 38
]i=: I # x
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
i dp x
2 3 5 7 11
sop i dp x
2 5 10 17 28
(sop i) dp x
2 5 10 17 28
]m=: sop i
1 0 0 0 0
1 1 0 0 0
1 1 1 0 0
1 1 1 1 0
1 1 1 1 1
The
resulting
matrix
provides
an
interesting
way
of
looking
at
the
sums
over
prefixes:
the
ones
in
the
successive
rows
indicate
the
elements
included
in
the
successive
sums.
15C.
Matrix
inverse
S15C.
The
inverse
of
a
linear
vector
function
m with dp
is
itself
a
linear
vector
function,
and
can
therefore
be
expressed
in
the
form
mi with dp
.
The
matrix
mi
may
be
obtained
from
m
by
applying
the
matrix
inverse
function
%.
.
Thus:
]z=: m dp x=: 2 3 5 7 11
2 5 10 17 28
mi=: %.m
mi dp z
2 3 5 7 11
mi
1 0 0 0 0
_1 1 0 0 0
0 _1 1 0 0
0 0 _1 1 0
0 0 0 _1 1
The
pairs
_1 1
in
the
rows
of
the
inverse
mi
indicate
that
the
inverse
of
the
sum
over
prefixes
is
a
differencing
operation,
and
the
matrix
mi
may
be
called
a
difference
matrix.
|.
),
rotation
(2 with |.
)
and
8 with A.
.
16A.
Ascending
and
descending
order
of
exponents
16A.
Ascending
and
descending
order
of
exponents
S16A.
In
conventional
mathematics,
polynomials
are
sometimes
expressed
with
the
exponents
in
ascending
order
(beginning
with
zero),
and
sometimes
in
descending
order
(beginning
with
the
largest
exponent).
Thus:
pa
(for
ascending
order),
and
pd
(for
descending).
The
former
is
the
function
p.
that
we
have
used
in
earlier
chapters,
and
the
latter
may
be
expressed
in
terms
of
it
using
the
reversal
function
(|.
)
to
reverse
the
order
of
the
coefficients.
Thus:
pa=: p.
pd=: |. on [ pa ]
x=: 0 1 2 3 4 5
1 2 3 pa x
1 6 17 34 57 86
1 2 3 pd x
3 6 11 18 27 38
1 2 3 pd 10
123
10
gives
the
value
in
decimal
of
the
digits
in
the
list
of
coefficients.
In
fact,
the
decimal
number
system
(and
number
systems
with
bases
other
than
ten)
are
"polynomial
representations"
of
numbers,
and
we
may
find
that
schemes
for
multiplying
polynomials
lead
to
improved
methods
of
multiplying
multi-digit
decimal
numbers.
16B.
Products
of
polynomials
S16B.
The
product
of
two
polynomials
c1 with p.
and
c2 with p.
is
itself
a
polynomial,
whose
coefficients
can
be
computed
from
c1
and
c2
by
first
forming
their
multiplication
table.
For
example:
c1=: 2 3 5
c2=: 4 1 0 3
c1 * table c2
+-+---------+
| | 4 1 0 3|
+-+---------+
|2| 8 2 0 6|
|3|12 3 0 9|
|5|20 5 0 15|
+-+---------+
The
coefficient
8
in
the
upper
left
corner
is
the
coefficient
of
x^0
in
the
product
polynomial,
the
elements
of
the
next
diagonal
(2 12
)
are
coefficients
of
x^1
,
the
next
diagonal
has
coefficients
of
x^2
,
and
so
on.
The
combined
coefficients
of
successive
powers
may
therefore
be
obtained
by
summing
diagonals
of
the
table
to
obtain
c3=: 8 14 23 11 9 15
.
Thus:
c3=: 8 14 23 11 9 15
x=: 0 1 2 3 4 5
(c1 p. x) * (c2 p. x)
8 80 840 4928 18800 54528
c3 p. x
8 80 840 4928 18800 54528
In
the
expression
f/.
the
oblique
operator
/.
produces
a
function
that
applies
f
to
each
of
the
diagonals
of
a
table
argument.
Thus:
c1 */ c2
8 2 0 6
12 3 0 9
20 5 0 15
+//. c1 */ c2
8 14 23 11 9 15
c3 = +//. c1 */ c2
1 1 1 1 1 1
We
may
therefore
define
a
function
pc
to
produce
product
coefficients
as
follows:
pc=: +//. on (*/)
c1 pc c2
8 14 23 11 9 15
1 1 pc 1 1
1 2 1
1 1 pc 1 1 pc 1 1
1 3 3 1
Similar
reasoning
will
show
that
the
same
function
pc
produces
coefficients
for
the
product
of
descending
polynomials.
This
may
be
tested
as
follows:
c1 pd x
5 10 19 32 49 70
c2 pd x
3 8 39 120 275 528
(c1 pd x)*(c2 pd x)
15 80 741 3840 13475 36960
c3 pd x
15 80 741 3840 13475 36960
16C.
Multiplication
of
decimal
numbers
S16C.
The
last
result
of
Section
16A
indicates
that
the
result
of
c pd 10
is
the
decimal
value
of
the
number
whose
digits
are
the
elements
of
the
list
c
.
Thus:
c1=: 1 2 3
c2=: 1 2 0 3
(c1 pd 10),(c2 pd 10)
123 1203
c1 pc c2
represent
the
product
of
the
numbers
123
and
1203
.
Thus:
]c3=: c1 pc c2
1 4 7 9 6 9
c3 pd 10
147969
123*1203
147969
Consequently,
the
product
can
be
obtained
by
making
the
table
c1 * table c2
and
summing
its
diagonals:
c1 * table c2
+-+-------+
| |1 2 0 3|
+-+-------+
|1|1 2 0 3|
|2|2 4 0 6|
|3|3 6 0 9|
+-+-------+
1,(+/2 2),(+/0 4 3),(+/3 0 6),(+/6 0),9
1 4 7 9 6 9
However,
these
diagonal
sums
for
other
arguments
may
yield
results
greater
than
9
,
and
therefore
themselves
be
multi-digit
numbers.
For
example:
c4=: 1 2 3 4 5 6 7
c5=: 8 7 6 5 4
]c6=: c4 pc c5
8 23 44 70 100 130 160 126 92 59 28
c6 pd 10
108214735818
1234567*87654
108214735818
The
result
c6
does
correctly
represent
the
product,
but
it
is
unsatisfactory
in
that
its
multi-digit
elements
cannot
be
simply
squeezed
together
(as
in
8234470100130160126925928
)
to
produce
the
correct
product.
c6=: 8 23 44 70 100 130 160 126 92 59 28
c7=: 8 23 44 70 100 130 160 126 92 61 8
c8=: 8 23 44 70 100 130 160 126 98 1 8
c9=: 8 23 44 70 100 130 160 135 8 1 8
c10=: 8 23 44 70 100 130 173 5 8 1 8
c11=: 8 23 44 70 100 147 3 5 8 1 8
c12=: 8 23 44 70 114 7 3 5 8 1 8
c13=: 8 23 44 81 4 7 3 5 8 1 8
c14=: 8 23 52 1 4 7 3 5 8 1 8
c15=: 8 28 2 1 4 7 3 5 8 1 8
c16=: 10 8 2 1 4 7 3 5 8 1 8
c17=: 1 0 8 2 1 4 7 3 5 8 1 8
c6 pd 10
108214735818
c17 pd 10
108214735818
Moreover,
the
entire
normalization
from
c6
to
c17
can
be
done
easily
by
hand
in
a
single
process.
In
summary,
multiplication
of
decimal
numbers
represented
by
the
lists
of
digits
d1
and
d2
can
be
performed
by
hand
by
writing
down
the
table
d1 * table d2
,
summing
the
diagonals,
and
"normalizing"
the
results
to
single-digit
elements
(written
together
without
spaces).
This
process
may
be
compared
with
the
commonly-taught
scheme
shown
below:
1234567
87654
------------
4938268
6172835
7407402
8641969
9876536
------------
108214735818
In
contrast
to
the
three
distinct
steps
of
recording
the
multiplications
in
a
table,
summing
its
diagonals,
and
a
final
normalizion
by
carry,
this
conventional
scheme
combines
multiplication
and
carry
in
each
step
of
the
production
of
each
line,
and
again
uses
carrying
in
the
final
summation
of
the
several
lines.
16D.
Other
bases
S16D.
Just
as
c pd 10
gives
the
decimal
(or
base-10
)
value
of
c
as
a
weighted
sum
with
weights
of
decreasing
powers
of
10
,
so
c pd 8
gives
the
base-8
value,
using
powers
of
8
as
weights.
For
example:
c1=: 1 2 3
c2=: 1 2 0 3
(c1 pd 8),(c2 pd 8)
83 643
]c3=: c1 pc c2
1 4 7 9 6 9
c3 pd 8
53369
(c1 pd 8)*(c2 pd 8)
53369
Again
the
result
c3
can
be
normalized,
this
time
to
the
range
0
to
7
.
This
requires
dividing
by
8
,
"carrying"
the
integer
quotient,
and
leaving
the
remainder.
Thus:
c3
1 4 7 9 6 9
1 4 7 9 7 1 pd 8
53369
1 4 8 1 7 1 pd 8
53369
1 5 0 1 7 1 pd 8
53369
16E.
Remainder,
Divisibility,
and
Integer
part
S16E.
The
carrying
process
used
in
preceding
sections
made
use
of
the
remainder.
For
example,
8
divides
into
24
exactly
(that
is,
an
integer
number
of
times),
but
it
divides
27
leaving
a
remainder
of
3
.
|
and
is
illustrated
by:
| table i=: 1 2 3 4 5 6 7 8
+-+---------------+
| |1 2 3 4 5 6 7 8|
+-+---------------+
|1|0 0 0 0 0 0 0 0|
|2|1 0 1 0 1 0 1 0|
|3|1 2 0 1 2 0 1 2|
|4|1 2 3 0 1 2 3 0|
|5|1 2 3 4 0 1 2 3|
|6|1 2 3 4 5 0 1 2|
|7|1 2 3 4 5 6 0 1|
|8|1 2 3 4 5 6 7 0|
+-+---------------+
d|n
is
zero,
we
say
that
n
is
divisible
by
d
,
as
illustrated
by
the
following
divisibility
table:
=&0 on | table i
+-+---------------+
| |1 2 3 4 5 6 7 8|
+-+---------------+
|1|1 1 1 1 1 1 1 1|
|2|0 1 0 1 0 1 0 1|
|3|0 0 1 0 0 1 0 0|
|4|0 0 0 1 0 0 0 1|
|5|0 0 0 0 1 0 0 0|
|6|0 0 0 0 0 1 0 0|
|7|0 0 0 0 0 0 1 0|
|8|0 0 0 0 0 0 0 1|
+-+---------------+
n-d|n
is
divisible
by
d
,
and
the
result
of
the
division
d%~n-d|n
is
called
the
integer
quotient.
Thus:
iq=: ([%~]-|)"0
8 iq 22 23 24 25 26 27
2 2 3 3 3 3
iq table i
+-+---------------+
| |1 2 3 4 5 6 7 8|
+-+---------------+
|1|1 2 3 4 5 6 7 8|
|2|0 1 1 2 2 3 3 4|
|3|0 0 1 1 1 2 2 2|
|4|0 0 0 1 1 1 1 2|
|5|0 0 0 0 1 1 1 1|
|6|0 0 0 0 0 1 1 1|
|7|0 0 0 0 0 0 1 1|
|8|0 0 0 0 0 0 0 1|
+-+---------------+
<.
to
the
result
of
division.
For
example:
i%5
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6
<.i%5
0 0 0 0 1 1 1 1
<. on (%~) table i
+-+---------------+
| |1 2 3 4 5 6 7 8|
+-+---------------+
|1|1 2 3 4 5 6 7 8|
|2|0 1 1 2 2 3 3 4|
|3|0 0 1 1 1 2 2 2|
|4|0 0 0 1 1 1 1 2|
|5|0 0 0 0 1 1 1 1|
|6|0 0 0 0 0 1 1 1|
|7|0 0 0 0 0 0 1 1|
|8|0 0 0 0 0 0 0 1|
+-+---------------+
16F.
Notes
S16F.
In
his
Chapter
6:
The
Dawn
of
nothing,
Hogben
provides
an
interesting
discussion
of
number
systems
and
the
role
of
zero
in
their
development.
For
example:
Why
this
is
necessarily
true,
is
easy
to
see
if
we
recall
the
Roman
representation
of
32,
i.e.
XXXII.
If
the
Romans
had
written
it
in
the
form
III
II,
there
would
have
been
no
way
of
distinguishing
it
from
302,
320,
3,020,
3,200,
etc.
The
one
simple
way
of
escape
from
this
dilemma
is
to
introduce
a
sign
such
as
the
Maya
lozenge
...,
a
dot
or
a
circle
for
the
empty
column
of
the
abacus.
We
can
then
write
32,
302,
320,
3,020
as
below:
17A.
Introduction
17A.
Introduction
S17A.
In
cooking,
a
list
of
one
or
more
instructions
is
called
a
recipe;
in
mathematics
or
computer
science
it
is
called
a
program
or
algorithm.
odd=: 1:+even
even=: 2:*i.
odd
makes
use
of
the
function
even
,
and
each
function
may
be
used
independently:
odd 5
1 3 5 7 9
even 5
0 2 4 6 8
(odd*even) 5
0 6 20 42 72
17B.
Designing
an
algorithm
S17B.
Except
for
the
very
simplest
cases,
it
is
best
to
begin
by
computing
an
example
and
assessing
its
suitability,
and
only
then
composing
the
required
definition
or
definitions.
We
will
illustrate
two
approaches
to
this
final
step:
f
and
g
),
and
use
them
in
a
single
definition
(such
as
h=: f+f on g
).
x.
and
y.
.
x
,
and
applying
sine
and
decay
functions
to
it:
x=: 1r2*i.11
s=: 1&o. x
]n=: _1r5 * x
0 _1r10 _1r5 _3r10 _2r5 _1r2 _3r5 _7r10 _4r5 _9r10 _1
d=: ^ n
set 2
d*s
0 0.43 0.69 0.74 0.61 0.36 0.077 _0.17 _0.34 _0.4 _0.35
PLOT x;d,s,:d*s
17C.
Explicit
definition
S17C.
We
will
now
illustrate
the
use
of
a
form
of
definition
in
which
the
arguments
occur
explicitly
(using
the
names
x.
and
y.
),
and
allows
multiple
lines
in
which
names
may
be
assigned
to
intermediate
results.
Thus:
b=: 4
b
4
f=: 4 : 0
a=: i. x.
b=: a ^ y.
c=: +/b
b;c
)
5 f 2
+----------+--+
|0 1 4 9 16|30|
+----------+--+
b
0 1 4 9 16
It is clear that the value originally assigned to b
(in
order
to
illustrate
this
matter)
has
been
changed
by
the
execution
of
f
,
behaviour
that
might
cause
the
loss
of
valuable
data.
This
unsuitable
behaviour
can
be
avoided
by
using
a
different
copula
(=.
)
to
localize
the
names
assigned
within
the
function.
Thus:
f=: 4 : 0
a=.i. x.
b=.a ^ y.
c=.+/b
b;c
)
7 f 3
+-------------------+---+
|0 1 8 27 64 125 216|441|
+-------------------+---+
b
0 1 4 9 16
See
Section
S16C
for
a
further
example
of
explicit
definition.
@.
was
used
to
provide
a
conditional
execution
of
functions
in
its
argument.
In
many
programming
languages,
conditional
execution
is
provided
by
constructs
such
as
if,
then,
else,
and
while
do.
The
form
used
in
explicit
definition
is
illustrated
by:
SUM=: 3 : 0
i=.0
a=.0
while. i<y.
do. a=.next a
i=.next i
end.
a
)
SUM 4
6
0+1+2+3
6
sum=: +/ on i.
sum 4
6
18A.
Introduction
18A.
Introduction
S18A.
Just
as
the
operator
d.1
can
be
applied
to
a
function
f
to
obtain
its
derivative,
so
the
operator
d._1
can
be
applied
to
obtain
its
anti-derivative,
that
is,
a
function
whose
derivative
is
f
.
For
example:
derv=: d.1
anti=: d._1
c=: 1 2 3 4 5 6
c with p.
1 2 3 4 5 6&p.
c with p. derv
2 6 12 20 30&p.
c with p. anti
0 1 1 1 1 1 1&p.
c with p. anti derv
1 2 3 4 5 6&p.
derv
and
anti
on
functions
such
as
^
and
1&o.
and
2&o.
and
6&o.
1 2 3 4 5&p.
and
7 2 3 4 5&p.
,
and
explain
their
agreement.
18B.
Area
under
a
graph
as
a
function
S18B.
A
study
of
the
graph
of
Section
3B
(an
approximation
to
a
circle)
suggests
that
the
area
under
the
graph
of
a
function
f
from
the
argument
_1
(or
any
fixed
point)
to
an
argument
x
is
itself
a
function
of
x
(that
depends
upon
the
function
f
).
a=: i:1j40
PLOT a;cir a
What
is
the
rate
of
change
of
the
area
function?
x=: 0.5
,
the
spacing
s=: 0.05
,
and
the
next
plotted
point
x+s
.
The
change
in
area
is
due
to
the
quadrilateral
with
base
s
and
heights
cir x
and
cir x+s
,
an
area
equal
to
s
times
the
average
of
the
heights
cir x
and
cir x+s
.
((cir x+s)-(cir x))%s
is
therefore
the
average
of
cir x
and
cir x+s
.
For
small
values
of
s
,
this
average
approaches
cir x
;
the
derivative
of
the
area
under
the
graph
of
cir
is
therefore
the
function
cir
itself.
18C.
Polynomial
approximations
S18C.
As
illustrated
in
Section
3B,
the
area
under
a
curve
can
be
computed
to
give
the
value
of
the
anti-derivative
of
a
function
at
a
chosen
point.
But
this
does
not
yield
a
function
for
the
anti-derivative
in
the
sense
that
the
operator
d._1
does
for
the
functions
to
which
it
applies.
f
is
provided
by
finding
the
coefficients
of
a
polynomial
that
approximates
it,
and
then
using
the
fact
that
the
anti-derivative
(as
well
as
the
derivative)
of
a
polynomial
is
easily
obtained.
(f x) %. x^/i.n
yields
the
coefficients
of
an
n
-term
polynomial
that
best
fits
the
function
f
at
the
points
x
.
For
example:
]x=: i:1j10
_1 _0.8 _0.6 _0.4 _0.2 0 0.2 0.4 0.6 0.8 1
]c=: (1&o. x) %. x ^/i.5
_3.46945e_17 0.997542 9.99201e_16 _0.156378 _7.77156e_16
c&p. _1 0 1
_0.841164 _3.46945e_17 0.841164
1&o. _1 0 1
_0.841471 0 0.841471
(c&p. x) ,. (sin x)
_0.841164 _0.841471
_0.717968 _0.717356
_0.564748 _0.564642
_0.389009 _0.389418
_0.198257 _0.198669
_3.46945e_17 0
0.198257 0.198669
0.389009 0.389418
0.564748 0.564642
0.717968 0.717356
0.841164 0.841471
The
polynomial
approximations
may,
however,
be
wildly
wrong
for
arguments
outside
of
the
list
x
to
which
it
was
fitted.
der
of
Section
6B
applied
to
a
list
of
polynomial
coefficients
yields
the
coefficients
of
the
derivative
polynomial.
A
coresponding
function
for
the
anti-derivative
may
be
defined
as
follows:
der=: 1: |. ] * i. on #
ant=: 0:,] % next i. on #
ant c
0 1 1 1 1 1 1
der ant c
1 2 3 4 5 6 0
19A.
Imaginary
numbers
19A.
Imaginary
numbers
S19A.
In
Chapter
1
we
began
with
the
counting
numbers
(1 2 3 4
etc.)
and
found
that
the
introduction
of
subtraction
as
the
inverse
of
addition
led
to
a
new
class
of
negative
numbers
(when
we
attempted
to
subtract
a
larger
number
from
a
smaller).
set=: 9!:11
set 4
sqr=: *:
sqrt=: sqr^:_1
a=: i.10
a
0 1 2 3 4 5 6 7 8 9
sqr a
0 1 4 9 16 25 36 49 64 81
sqrt a
0 1 1.414 1.732 2 2.236 2.449 2.646 2.828 3
b=: sqrt -a
b
0 0j1 0j1.414 0j1.732 0j2 0j2.236 0j2.449 0j2.646 0j2.828 0j3
sqr b
0 _1 _2 _3 _4 _5 _6 _7 _8 _9
19B.
Complex
numbers
S19B.
The
sum
of
a
real
and
an
imaginary
number
is
called
a
complex
number.
For
example:
a+b
0 1j1 2j1.414 3j1.732 4j2 5j2.236 6j2.449 7j2.646 8j2.828 9j3
sqr (a+b)
0 0j2 2j5.657 6j10.39 12j16 20j22.36 30j29.39 42j37.04 56j45.25 72j54
a + table b
+-+-------------------------------------------------------------+
| |0 0j1 0j1.414 0j1.732 0j2 0j2.236 0j2.449 0j2.646 0j2.828 0j3|
+-+-------------------------------------------------------------+
|0|0 0j1 0j1.414 0j1.732 0j2 0j2.236 0j2.449 0j2.646 0j2.828 0j3|
|1|1 1j1 1j1.414 1j1.732 1j2 1j2.236 1j2.449 1j2.646 1j2.828 1j3|
|2|2 2j1 2j1.414 2j1.732 2j2 2j2.236 2j2.449 2j2.646 2j2.828 2j3|
|3|3 3j1 3j1.414 3j1.732 3j2 3j2.236 3j2.449 3j2.646 3j2.828 3j3|
|4|4 4j1 4j1.414 4j1.732 4j2 4j2.236 4j2.449 4j2.646 4j2.828 4j3|
|5|5 5j1 5j1.414 5j1.732 5j2 5j2.236 5j2.449 5j2.646 5j2.828 5j3|
|6|6 6j1 6j1.414 6j1.732 6j2 6j2.236 6j2.449 6j2.646 6j2.828 6j3|
|7|7 7j1 7j1.414 7j1.732 7j2 7j2.236 7j2.449 7j2.646 7j2.828 7j3|
|8|8 8j1 8j1.414 8j1.732 8j2 8j2.236 8j2.449 8j2.646 8j2.828 8j3|
|9|9 9j1 9j1.414 9j1.732 9j2 9j2.236 9j2.449 9j2.646 9j2.828 9j3|
+-+-------------------------------------------------------------+
Since
a
complex
number
is
a
sum
of
a
real
and
an
imaginary
number,
the
product
of
complex
numbers
is
treated
consistently
as
a
product
of
sums.
The
steps
in
the
multiplication
may
be
illustrated
as
follows:
c=: 2j3
d=: 4j5
c*d
_7j22
(2+0j3)*(4+0j5)
_7j22
(2*(4+0j5))+(0j3*(4+0j5))
_7j22
(2*4)+(2*0j5)+(0j3*4)+(0j3*0j5)
_7j22
8+0j10+0j12+_15
_7j22
_7+0j22
_7j22
Note
that
the
product
of
two
imaginaries
(0j3
and
0j5
)
yields
a
negative
real
number.
19C.
Division
S19C.
We
begin
by
dividing
the
product
e=: c*d
by
c
and
then
by
d
to
get
the
expected
results
d
and
c
:
]e=: c*d
_7j22
e%c
4j5
e%d
2j3
To
get
a
general
procedure
for
division,
we
first
note
that
division
by
a
real
number
is
straightforward.
For
example:
12j22 % 2
6j11
Similarly,
we
note
that
multiplication
of
both
numerator
and
dednominator
by
the
same
number
leaves
the
quotient
unchanged.
For
example:
e%c
4j5
g=: 2j_3
(e*g)%(c*g)
4j5
Finally,
we
note
that
the
denominator
c*g
is
a
real
number,
a
result
of
choosing
g
as
the
conjugate
of
c
,
that
is,
obtained
from
c
by
reversing
the
sign
of
its
imaginary
part:
c*g
13
The
function
conj=: +
yields
the
conjugate
of
its
argument,
and
it
can
therefore
be
used
to
provide
division
by
first
producing
an
equivalent
quotient
with
a
real
denominator.
For
example:
conj=: +
p=: 2j5
q=: 3j_4
p%q
_0.56j0.92
conj q
3j4
p*conj q
_14j23
q*conj q
25
(p*conj q)%(q*conj q)
_0.56j0.92
NB. Compare with p%q
19D.
The
Exponential
Family
S19D.
In
Chapter
14
we
showed
that
the
hyperbolic
sine
and
the
hyperbolic
cosine
belonged
to
the
exponential
family
in
the
sense
that
they
could
be
obtained
from
the
exponential
as
its
odd
and
even
parts.
Using
imaginary
numbers,
we
can
treat
the
sine
and
cosine
similarly.
j.
multiplies
its
argument
by
0j1
(the
square
root
of
negative
one).
For
example:
j.i.10
0 0j1 0j2 0j3 0j4 0j5 0j6 0j7 0j8 0j9
Consequently,
each
term
in
the
polynomial
c with p. on j.
differs
from
that
in
the
polynomial
c with p.
by
a
power
of
0j1
determined
by
its
exponent.
For
example:
0j1^0 1 2 3 4 5 6 7 8
1 0j1 _1 0j_1 1 0j1 _1 0j_1 1
c=: 1 2 3 4 5 6 7
f=: c with p.
f t. i.10 NB. Taylor coefficients
1 2 3 4 5 6 7 0 0 0
f on j. t. i.10
1 0j2 _3 0j_4 5 0j6 _7 0 0 0
Consequently,
the
Taylor
coefficients
of
the
function
^ with j.
are
the
same
as
those
of
the
sum
cos+j. sin
,
and
the
cosine
and
sine
can
be
obtained
from
the
even
and
odd
parts
of
^ with j.
O=: .: -
E=: .. -
and experiment with their use on the function
f=: 0 1 2 3 4 5 with p.
using
expressions
such
as
f E
and
f E i:4
and
(f O+f E) i:4
^
and
sin=: 1 with o.
and
cos=: 2 with o.
and
cosh=: 6 with o.
.
20A.
Introduction
20A.
Introduction
S20A.
In
stating
the
purpose
of
this
book
in
the
preface
we
said:
In
the
seventy-odd
years
since
his
publication,
the
development
of
computer
programming
has
provided
languages
with
grammars
that
are
simpler
and
more
tractable
than
that
of
conventional
mathematical
notation.
Moreover,
the
general
availability
of
the
computer
makes
possible
convenient
and
accurate
experimentation
with
mathematical
ideas....
The
unstated
premise
of
this
book
-
a
premise
that
virtually
all
mathematicians
would
agree
to
-
is
that
mathematics,
like
music,
is
worth
doing
for
its
own
sake.
The
author
is,
by
profession,
a
medical
man,
but
he
has
a
love
for
mathemtics
and
wants
others
to
share
his
enthusiasm.
The
course
title
"Concrete
Mathematics"
was
originally
intended
as
an
antidote
to
"Abstract
Mathematics",
since
concrete
classical
results
were
rapidly
being
swept
out
of
the
modern
mathematical
curriculum
by
a
new
wave
of
abstract
ideas
popularly
called
"The
New
Math."
Abstract
mathematics
is
a
beautiful
subject
...
But
its
adherents
had
become
deluded
that
the
rest
of
mathematics
was
inferior
and
no
longer
worthy
of
attention.
20B.
Mathematics:
from
the
Birth
of
Numbers
S20B.
We
will
comment
on
four
topics
covered
by
Gullberg,
primarily
to
show
the
form
of
their
expression
in
J,
and
the
possibility
for
computer
experimentation:
All real numbers can be written as periodic
or nonperiodic, terminating or nonterminating, decimal
fractions. Another way of writing a rational number
is in the form of a continued fraction,
This
is
equivalent
to
the
function
pr=: [+1:%]
applied
over
the
list
a0,a1,a2,a3, etc.
,
and
Gullberg's
example
of
221/41
may
be
treated
as
follows:
pr=: [+1:%]
2 pr 5
2.2
pr/5 2 1 1 3 2r1
221r41
pr/5 2 1 1 3 2
5.39024
pr/\5 2 1 1 3 2r1
5 11r2 16r3 27r5 97r18 221r41
The
final
expression
illustrates
how
the
operator
\
may
be
used
to
obtain
the
partial
sums
or
"convergents"
to
the
complete
continued
fraction.
pr/\1 1 1 1 1 1 1 1 1 1r1
1 2 3r2 5r3 8r5 13r8 21r13 34r21 55r34 89r55
pr/\1 1 1 1 1 1 1 1 1 1
1 2 1.5 1.66667 1.6 1.625 1.61538 1.61905 1.61765 1.61818
These
decimal
results
may
be
recognized
as
increasingly
good
approximations
to
the
Golden
Mean
(or
golden
number),
also
treated
by
Gullberg.
a=: 2 2 4 2 4 2 4 2 4
b=: pr/a
b
2.44949
b*b
6
DETERMINANTS
On
pages
646,7,
Gullberg
states:
A determinant is a value
representing sums and products of a square matrix.
The determinant of a matrix A, det A, is denoted as
arrays of numbers or algebraic quantities, called
entries or elements, disposed in horizontal rows and
vertical columns enclosed between single vertical bars:
| a11 a12 ... a1n |
det A = | ... ... ... ... |
| an1 an2 ... ann |
...
has 3! = 6 triple products of entries from every row
and column, of which no two triplets can be the same,
a11 a22 a33 a11 a23 a32 a12 a21 a33 a12 a23 a31 a13 a21 a32 a13 a22 a31
1-2-3 1-3-2 2-1-3 2-3-1 3-1-2 3-2-1
# of inversions:
none one one two two three
Correction factor:
+1 -1 -1 +1 +1 -1
In
J
the
determinant
function
is
defined
as
det=: -/ . *
which,
applied
to
the
three-by-three
matrix
(that
is,
table)
of
Gullberg's
example
yields
the
following
results:
det=: -/ . *
A=: 2 3 4,.0 1 2,.4 0 2
A
2 0 4
3 1 0
4 2 2
det A
12
Gullberg
notes
the
following
properties:
The
value
of
a
determinant
is
reversed
in
sign
if
any
two
rows
are
interchanged.
For
example:
(1 A. A);(det 1 A. A);(det A)
+-----+---+--+
|2 0 4| | |
|4 2 2|_12|12|
|3 1 0| | |
+-----+---+--+
(1 3 1 * A);(det 1 3 1 * A);(3 * det A)
+-----+--+--+
|2 0 4| | |
|9 3 0|36|36|
|4 2 2| | |
+-----+--+--+
(2 3 4 * A);(det 2 3 4 * A);((*/2 3 4)*det A)
+------+---+---+
| 4 0 8| | |
| 9 3 0|288|288|
|16 8 8| | |
+------+---+---+
triangle=: 3 2$3 _2 , _4 1 , 8 3
bt=: triangle,.1
triangle;bt;(det bt);(1 A. bt);(det 1 A. bt)
+-----+-------+---+-------+--+
| 3 _2| 3 _2 1| | 3 _2 1| |
|_4 1|_4 1 1|_50| 8 3 1|50|
| 8 3| 8 3 1| |_4 1 1| |
+-----+-------+---+-------+--+
The
last
result
agrees
with
Gullberg's
statement
that
the
absolute
value
of
the
determinant
yields
twice
the
area
of
the
triangle.
But,
more
generally,
the
determinant
yields
a
signed
area
that
indicates
whether
the
vertices
of
the
triangle
(when
plotted)
occur
in
clockwise
or
counter-clockwise
order.
!3
)
its
signed
volume.
For
example:
]tet=: 4 3$0 0 0 , 1 0 0 , 0 1 0 , 0 0 1
0 0 0
1 0 0
0 1 0
0 0 1
det tet,.1
_1
]tet2=: ?. 4 3$10
1 7 4
5 2 0
6 6 9
3 5 8
det tet2,.1
_106
LOGARITHMS
On
page
154
Gullberg
says:
that
is,
a
logarithm
is
an
exponent
which
defines
to
what
power
the
base
a
must
be
raised
in
order
to
give
x,
called
the
anti-logarithm.
In
J
the
function
a with ^.
gives
the
base
a
logarithm,
and
the
function
^.
(or
1x1 with ^.
)
gives
the
natural
log.
Hence:
ln=: ^.
log=: 10 with ^.
lb=: 2 with ^.
x=: 1 2 4 10 100
ln x
0 0.693147 1.38629 2.30259 4.60517
log x
0 0.30103 0.60206 1 2
lb x
0 1 2 3.32193 6.64386
ln -1 2 4 10
0j3.14159 0.693147j3.14159 1.38629j3.14159 2.30259j3.14159
^ ln -x
_1 _2 _4 _10 _100
log -x
0j1.36438 0.30103j1.36438 0.60206j1.36438 1j1.36438 2j1.36438
10 ^ log -x
_1 _2 _4 _10 _100
THE
PEANO
AXIOMS
On
page
157
Gullberg
says:
The
natural
numbers
were
axiomatically
defined
in
1899
by
Giuseppe
Peano
in
his
...
Later,
Peano
modified
his
axioms
to
include
also
zero:
The
treatment
in
our
Chapter
1
is
based
on
Peano's
original
formulation
(which
did
not
include
zero
as
a
natural
number),
and
denotes
Peano's
successor
function
by
>:
(and
its
inverse,
the
predecessor,
by
<:
).
20C.
Concrete
Mathematics
S20C.
The
text
Concrete
Mathematics
[2]
will
be
referred
to
as
GKP,
and
will
be
discussed
together
with
commentary
on
it
(expressed
in
J)
from
Concrete
Math
Companion
[21],
to
be
referred
to
as
CMC.
Our
generic
generating
function
has
the
form
In
Section
7B,
CMC
discusses
this
as
follows:
In
GKP7.12
the
limit
(as
SUBSCRIPTS
VERSUS
FUNCTIONS
In
Section
2.1
GKP
states
that:
n
approaches
infinity)
of
the
polynomial
G=. (g i.n) p. ]
is
defined
to
be
the
generating
function
for
the
function
g
.
In
other
words,
g k
is
the
k
th
element
of
the
Taylor
series
for
g
.
gex=. ^ t.
gsin=. 1&o. t.
gsinex=. (1&o. * ^) t.
]ce=. gex i. 8
1 1 0.5 0.166667 0.0416667 0.00833333 0.00138889 0.000198413
]cs=. gsin i.8
0 1 0 _0.166667 0 0.00833333 0 _0.000198413
]cse=. gsinex i. 8
0 1 1 0.333333 0 _0.0333333 _0.0111111 _0.0015873
We'll
be
working
with
sums
of
the
general
form
In
Section
2A,
CMC
discusses
this
as
follows:
We
will
therefore
treat
STIRLING
NUMBERS
In
Section
6.1,
GKP
defines
Stirling
Numbers
of
the
first
and
second
kind
by:
a
as
a
function,
and
the
list
of
indices
as
a
second
function,
typically
i.
or
the
function
Ei=. i.@>:
.
For
example
Ei=. i.@>:
Ei 5
0 1 2 3 4 5
a=. *:
a Ei 5
0 1 4 9 16 25
+/ a Ei 5
55
...the
number
of
ways
to
arrange
n
objects
into
k
cycles
and
provides
tables
of
them
in
Table
245
and
Table
244.
^!._1
and
uses
it
to
define
the
Stirling
numbers
as
matrices
that
provide
the
coefficients
for
linear
transformations
between
the
coefficients
of
certain
important
polynomials.
s1=: |: on ((i. ^!._1/ i.) %. (i. ^/ i.))
s2=: %. on s1
(s1;s2) 8r1
+--------------------------------+-----------------------+
|1 0 0 0 0 0 0 0|1 0 0 0 0 0 0 0|
|0 1 0 0 0 0 0 0|0 1 0 0 0 0 0 0|
|0 _1 1 0 0 0 0 0|0 1 1 0 0 0 0 0|
|0 2 _3 1 0 0 0 0|0 1 3 1 0 0 0 0|
|0 _6 11 _6 1 0 0 0|0 1 7 6 1 0 0 0|
|0 24 _50 35 _10 1 0 0|0 1 15 25 10 1 0 0|
|0 _120 274 _225 85 _15 1 0|0 1 31 90 65 15 1 0|
|0 720 _1764 1624 _735 175 _21 1|0 1 63 301 350 140 21 1|
+--------------------------------+-----------------------+
Functions
to
provide
Tables
245
and
244
of
GkP
are
defined
in
terms
of
these
as
follows
S1=: | on s1
S2=: s2
(S1;S2) 8r1
+----------------------------+-----------------------+
|1 0 0 0 0 0 0 0|1 0 0 0 0 0 0 0|
|0 1 0 0 0 0 0 0|0 1 0 0 0 0 0 0|
|0 1 1 0 0 0 0 0|0 1 1 0 0 0 0 0|
|0 2 3 1 0 0 0 0|0 1 3 1 0 0 0 0|
|0 6 11 6 1 0 0 0|0 1 7 6 1 0 0 0|
|0 24 50 35 10 1 0 0|0 1 15 25 10 1 0 0|
|0 120 274 225 85 15 1 0|0 1 31 90 65 15 1 0|
|0 720 1764 1624 735 175 21 1|0 1 63 301 350 140 21 1|
+----------------------------+-----------------------+
20D.
Computer
Resources
S20D.
LABORATORIES
Clicking
the
mouse
on
the
menu
item
marked
"Studio"
shows
a
menu
that
allows
the
selection
of
either
"Labs"
or
"Demos".
Clicking
on
"Labs"
provides
an
opportunity
to
choose
a
variety
of
topics.
,1
,
produces
a
matrix
with
an
interesting
pattern.
Moreover,
it
provides
a
function
viewmat
that
plots
a
view
of
the
matrix
as
a
grid
of
black
and
white
elements.
Thus:
f=: ,~ ,.~
f ,1
1 1
1 0
f f ,1
1 1 1 1
1 0 1 0
1 1 0 0
1 0 0 0
f f f ,1
1 1 1 1 1 1 1 1
1 0 1 0 1 0 1 0
1 1 0 0 1 1 0 0
1 0 0 0 1 0 0 0
1 1 1 1 0 0 0 0
1 0 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
load 'graph numeric trig'
viewmat f f f f f f f f ,1
o.
will
show
that
the
definition
of
the
function
0 with o.
(used
to
graph
circles
in
Sections
3B
and
18B)
is
the
square
root
of
one
minus
the
square.
20E.
Conclusion
S20E.
Study
of
this
book
will
not
make
a
mathematician,
but
we
hope
that
the
use
of
precise
executable
language
possessing
a
simple
strict
grammar
will
further
the
cause
stated
by
Hogben
in
our
preface
(and
repeated
here):
Perhaps
the
most
important
lesson
for
the
layman
is
that
there
is
no
need
to
be
intimidated
by
mathematics
or
mathematicians.
On
this
matter,
we
give
the
final
word
to
Hogben:
There
is
a
story
about
Diderot,
the
Encyclopaedist
and
materialist,
a
foremost
figure
in
the
intellectual
awakening
which
immediately
preceded
the
French
Revolution.
Diderot
was
staying
at
the
Russian
court,
where
his
elegant
flippancy
was
entertaining
the
nobility.
Diderot
was
informed
that
a
mathematician
had
established
a
proof
of
the
existence
of
God.
a+bn
------- = x, donc Dieu existe, repondez!
n
Algebra
was
Arabic
to
Diderot.
Unfortunately,
he
did
not
realize
that
was
the
trouble.
Had
he
realized
that
algebra
was
just
a
language
in
which
we
describe
the
sizes
of
things,
...
he
would
have
asked
Euler
to
translate
...
into
French.
S1A.
The
Counting
(Natural)
Numbers
This
definition
of
the
counting
numbers
in
terms
of
a
successor
function
was
made
in
1899
by
Giuseppe
Peano.
For
further
details,
see
the
discussion
in
Section
20B,
and
the
Gullberg
text
to
which
it
refers.
S1B.
Lists
and
Names
The
function
(or
verb)
denoted
by
,.
can
be
used
to
stitch
lists
together
to
form
tables,
and
lists
and
tables
together
to
form
further
tables,
as
illustrated
by
the
following:
a=:1 4 7
b=:2 5 8
c=:3 6 9
a,.b
1 2
4 5
7 8
a,.b,.c
1 2 3
4 5 6
7 8 9
table=:a,.b,.c
table,.>:c
1 2 3 4
4 5 6 7
7 8 9 10
>:table
2 3 4
5 6 7
8 9 10
table,.>:>:>:table
1 2 3 4 5 6
4 5 6 7 8 9
7 8 9 10 11 12
The
function
denoted
by
,
can
be
used
to
catenate
lists
and
tables
as
illustrated
by
the
following:
a,b
1 4 7 2 5 8
a,b,c
1 4 7 2 5 8 3 6 9
table,a
1 2 3
4 5 6
7 8 9
1 4 7
table,>:>:>:>:>:>:>:>:>:table
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18
The
function
denoted
by
|:
can
be
used
to
transpose
a
table
as
follows:
|:table
1 4 7
2 5 8
3 6 9
|:table,>:c
1 4 7 4
2 5 8 7
3 6 9 10
Write
various
expressions
employing
the
functions
used
in
the
preceding
examples,
and
show
the
results
produced.
S1C.
Iteration
(Repetition)
Write
the
result
of
the
expression
next for list list
,
and
compare
your
result
with
that
produced
by
entering
it
on
the
computer.
S1D.
Inverse
>
While
we
had
only
the
counting
numbers
(which
begin
at
1
),
our
lists
could
contain
neither
negative
numbers
nor
zero;
but
now
that
we
have
extended
our
domain
to
the
integers
this
restriction
is
removed.
We
may
therefore
introduce
the
functions
i.
and
i:
that
produce
lists
of
integers
as
illustrated
below:
i.5 NB. The first five non-negative integers
0 1 2 3 4
i:5 NB. The integers from _5 to 5
_5 _4 _3 _2 _1 0 1 2 3 4 5
In
the
foregoing
we
used
NB.
which
indicates
that
what
follows
it
is
a
note
or
comment
that
has
no
effect
on
the
meaning
of
the
preceding
sentence.
+:
doubles
its
argument.
For
example:
x=:i:5
x
_5 _4 _3 _2 _1 0 1 2 3 4 5
+:x
_10 _8 _6 _4 _2 0 2 4 6 8 10
double=:+:
double x
_10 _8 _6 _4 _2 0 2 4 6 8 10
y=:double for 2 x
y
_20 _16 _12 _8 _4 0 4 8 12 16 20
double for _1 y NB. Inverse of double
_10 _8 _6 _4 _2 0 2 4 6 8 10
double for _1 x
_2.5 _2 _1.5 _1 _0.5 0 0.5 1 1.5 2 2.5
Some
of
the
results
of
the
last
expression
are
not
integers.
Just
as
the
inverse
of
the
successor
function
led
us
out
of
the
domain
of
the
counting
numbers,
so
the
inverse
of
double
has
led
out
of
the
domain
of
integers
--
this
time
into
fractions
or
rationals.
These
matters
are
treated
further
in
Section
1J.
S1E.
Addition
and
Subtraction
(+
and
-)
Study
the
following
function
tables,
and
try
to
state
the
definitions
of
each
of
the
functions
denoted
by
= > <. <: |
and
!
a=:i.6
a
0 1 2 3 4 5
=table a
+-+-----------+
| |0 1 2 3 4 5|
+-+-----------+
|0|1 0 0 0 0 0|
|1|0 1 0 0 0 0|
|2|0 0 1 0 0 0|
|3|0 0 0 1 0 0|
|4|0 0 0 0 1 0|
|5|0 0 0 0 0 1|
+-+-----------+
(=table a),.(>table a),.(<.table a)
+-+-----------+-+-----------+-+-----------+
| |0 1 2 3 4 5| |0 1 2 3 4 5| |0 1 2 3 4 5|
+-+-----------+-+-----------+-+-----------+
|0|1 0 0 0 0 0|0|0 0 0 0 0 0|0|0 0 0 0 0 0|
|1|0 1 0 0 0 0|1|1 0 0 0 0 0|1|0 1 1 1 1 1|
|2|0 0 1 0 0 0|2|1 1 0 0 0 0|2|0 1 2 2 2 2|
|3|0 0 0 1 0 0|3|1 1 1 0 0 0|3|0 1 2 3 3 3|
|4|0 0 0 0 1 0|4|1 1 1 1 0 0|4|0 1 2 3 4 4|
|5|0 0 0 0 0 1|5|1 1 1 1 1 0|5|0 1 2 3 4 5|
+-+-----------+-+-----------+-+-----------+
(<:table a),.(|table a),.(!table a)
+-+-----------+-+-----------+-+------------+
| |0 1 2 3 4 5| |0 1 2 3 4 5| |0 1 2 3 4 5|
+-+-----------+-+-----------+-+------------+
|0|1 1 1 1 1 1|0|0 1 2 3 4 5|0|1 1 1 1 1 1|
|1|0 1 1 1 1 1|1|0 0 0 0 0 0|1|0 1 2 3 4 5|
|2|0 0 1 1 1 1|2|0 1 0 1 0 1|2|0 0 1 3 6 10|
|3|0 0 0 1 1 1|3|0 1 2 0 1 2|3|0 0 0 1 4 10|
|4|0 0 0 0 1 1|4|0 1 2 3 0 1|4|0 0 0 0 1 5|
|5|0 0 0 0 0 1|5|0 1 2 3 4 0|5|0 0 0 0 0 1|
+-+-----------+-+-----------+-+------------+
=
is
a
truth
function
that
compares
its
arguments
for
equality,
giving
1
if
the
relation
is
true,
and
0
if
it
is
false.
>
is
a
truth
function
called
greater
than.
<.
is
called
lesser-of
or
minimum.
<:
is
a
truth
function
called
less
than
or
equal.
|
is
remainder
on
dividing
by
the
left
argument.
!
is
the
binomial
coefficient
(m!n
is
the
number
of
different
ways
of
choosing
m
things
from
n
things).
This
table
is
commonly
shown
without
the
zeros,
and
called
Pascal's
Triangle.
S1F.
Bonding
Apply
the
bond
(with=:&
)
to
some
of
the
functions
= < >. <: |
introduced
in
Section
S1E,
and
show
their
results.
Compare
your
results
with
the
following:
with=: &
a=:i:3
a
_3 _2 _1 0 1 2 3
= with 2 a
0 0 0 0 0 1 0
< with 2 a
1 1 1 1 1 0 0
<: with 2 a
1 1 1 1 1 1 0
<. with 2 a
_3 _2 _1 0 1 2 2
2 with | a
1 0 1 0 1 0 1
3 with | a
0 1 2 0 1 2 0
S1G.
Multiplication
or
Times
(*)
Comment
on
the
pattern
of
positive
and
negative
numbers
in
the
four
quadrants
defined
by
the
row
and
column
of
zeros
in
the
following
multiplication
table:
* table i:4
+--+-----------------------------+
| | _4 _3 _2 _1 0 1 2 3 4|
+--+-----------------------------+
|_4| 16 12 8 4 0 _4 _8 _12 _16|
|_3| 12 9 6 3 0 _3 _6 _9 _12|
|_2| 8 6 4 2 0 _2 _4 _6 _8|
|_1| 4 3 2 1 0 _1 _2 _3 _4|
| 0| 0 0 0 0 0 0 0 0 0|
| 1| _4 _3 _2 _1 0 1 2 3 4|
| 2| _8 _6 _4 _2 0 2 4 6 8|
| 3|_12 _9 _6 _3 0 3 6 9 12|
| 4|_16 _12 _8 _4 0 4 8 12 16|
+--+-----------------------------+
The
idea
of
multiplication
can
be
introduced
at
an
elementary
level
by
pictures
of
rectangles.
For
example:
a=:3 4 $ 1
a
1 1 1 1
1 1 1 1
1 1 1 1
,a
1 1 1 1 1 1 1 1 1 1 1 1
+/,a
12
+/a
3 3 3 3
+/+/a
12
b=:|:a
b
1 1 1
1 1 1
1 1 1
1 1 1
,b
1 1 1 1 1 1 1 1 1 1 1 1
+/,b
12
+/b
4 4 4
+/+/b
12
Discussion
of
the
notation
used
here
(such
as
$
)
may
be
found
in
Sections
2E
and
2F.
1
used
above,
but
uses
dots:
c=: a { ' .'
c
....
....
....
|:c
...
...
...
...
c='.'
1 1 1 1
1 1 1 1
1 1 1 1
+/+/c='.'
12
Moreover,
he
draws
a
tied
bag
(rather
similar
to
&)
to
denote
an
unknown
quantity,
and
translates
to
algebraic
expressions
that
denote
unknowns
by
letters
such
as
x
and
y.
For
example:
g=:'&&...'
g
&&...
translates
to
2x+3
.
g,g
&&...&&...
which
is
denoted
by
(2x+3)+(2x+3)
and
is
(pictorially)
equivalent
to
that
shown
above,
or
to
&&&&......
which,
in
turn,
translates
to
4x+6
.
S1H.
Power
and
Exponent
See
Section
S1J
for
an
extension
of
the
power
table
to
negative
arguments.
S1I.
Monomials
and
Polynomials
(p.)
Write
various
expressions
using
the
polynomial
function
p.
and
show
the
results
they
produce.
Include
cases
with
negative
coefficients
and
negative
arguments,
and
compare
your
results
with
the
following:
b=:i:4
b
_4 _3 _2 _1 0 1 2 3 4
1 3 3 1 p. b
_27 _8 _1 0 1 8 27 64 125
_1 3 _3 1 p. b
_125 _64 _27 _8 _1 0 1 8 27
(b-1)^3
_125 _64 _27 _8 _1 0 1 8 27
1 _4 6 _4 1 p. b
625 256 81 16 1 0 1 16 81
(b-1)^4
625 256 81 16 1 0 1 16 81
S1J.
Division
(%)
Comment
on
the
pattern
in
the
rows
and
columns
of
the
division
table.
Then
make
a
division
table
for
both
positive
and
negative
arguments,
and
compare
your
results
with
the
following:
c=:i:5r1
c
_5 _4 _3 _2 _1 0 1 2 3 4 5
%table c
+--+------------------------------------------------+
| | _5 _4 _3 _2 _1 0 1 2 3 4 5|
+--+------------------------------------------------+
|_5| 1 5r4 5r3 5r2 5 __ _5 _5r2 _5r3 _5r4 _1|
|_4| 4r5 1 4r3 2 4 __ _4 _2 _4r3 _1 _4r5|
|_3| 3r5 3r4 1 3r2 3 __ _3 _3r2 _1 _3r4 _3r5|
|_2| 2r5 1r2 2r3 1 2 __ _2 _1 _2r3 _1r2 _2r5|
|_1| 1r5 1r4 1r3 1r2 1 __ _1 _1r2 _1r3 _1r4 _1r5|
| 0| 0 0 0 0 0 0 0 0 0 0 0|
| 1|_1r5 _1r4 _1r3 _1r2 _1 _ 1 1r2 1r3 1r4 1r5|
| 2|_2r5 _1r2 _2r3 _1 _2 _ 2 1 2r3 1r2 2r5|
| 3|_3r5 _3r4 _1 _3r2 _3 _ 3 3r2 1 3r4 3r5|
| 4|_4r5 _1 _4r3 _2 _4 _ 4 2 4r3 1 4r5|
| 5| _1 _5r4 _5r3 _5r2 _5 _ 5 5r2 5r3 5r4 1|
+--+------------------------------------------------+
Comment
on
the
patterns
in
the
following
extension
of
the
power
table
to
negative
arguments.
In
particular,
note
the
value
of
0^0
(which
may
have
surprised
you
in
the
power
table
in
Section
1H).
1
for
the
value
of
the
"indeterminate"
expression
0^0
,
see
page
785
of
Gullberg
[20].
^table c
+--+-----------------------------------------------------+
| | _5 _4 _3 _2 _1 0 1 2 3 4 5|
+--+-----------------------------------------------------+
|_5|_1r3125 1r625 _1r125 1r25 _1r5 1 _5 25 _125 625 _3125|
|_4|_1r1024 1r256 _1r64 1r16 _1r4 1 _4 16 _64 256 _1024|
|_3| _1r243 1r81 _1r27 1r9 _1r3 1 _3 9 _27 81 _243|
|_2| _1r32 1r16 _1r8 1r4 _1r2 1 _2 4 _8 16 _32|
|_1| _1 1 _1 1 _1 1 _1 1 _1 1 _1|
| 0| _ _ _ _ _ 1 0 0 0 0 0|
| 1| 1 1 1 1 1 1 1 1 1 1 1|
| 2| 1r32 1r16 1r8 1r4 1r2 1 2 4 8 16 32|
| 3| 1r243 1r81 1r27 1r9 1r3 1 3 9 27 81 243|
| 4| 1r1024 1r256 1r64 1r16 1r4 1 4 16 64 256 1024|
| 5| 1r3125 1r625 1r125 1r25 1r5 1 5 25 125 625 3125|
+--+-----------------------------------------------------+
S1K.
Review
and
Supplement
Experiment
with
moving
around
in
the
text
as
follows:
S1L.
Notes
S2A.
Introduction
To
gain
further
familiarity
with
the
computer,
enter
some
of
the
expressions
from
the
supplemental
sections
for
Chapter
1.
S2B.
Number
of
places
The
!:
used
in
the
expression
set=:9!:11
to
define
the
function
for
setting
the
number
of
digits
displayed
is
called
the
foreign
conjunction,
because
it
concerns
matters
other
than
the
normal
verbs
such
as
+ *
and
%
.
set
.
Also
click
on
the
button
marked
>>
to
see
further
pages.
S2C.
Displays
Sawyer
[22]
emphasizes
the
use
of
trees
and
tables
for
insight,
and
introduces
an
interesting
non-numeric
table
as
follows:
In
the
Japanese
Hiragana
alphabet,
each
character
represents
a
sound
such
as
ka,
ru,
si,
or
o.
There
are
10
possible
beginnings
-
the
consonants
k,
s,
t,
n,
m,
y,
r,
w,
and
'blank';
...
The
ending
is
always
one
one
of
the
five
sounds
a,
e,
i,
o,
u.
How
many
characters
are
there
in
this
alphabet?
We
could
show
this
as
a
tree
with
10
branches
and
5
twigs
on
each
...
This
problem
could
equally
well
be
solved
by
the
rectangle
...
Beginnings=:' KSTNHMYRW'
Endings=:'aeiou'
{ Beginnings;Endings
+--+--+--+--+--+
| a| e| i| o| u|
+--+--+--+--+--+
|Ka|Ke|Ki|Ko|Ku|
+--+--+--+--+--+
|Sa|Se|Si|So|Su|
+--+--+--+--+--+
|Ta|Te|Ti|To|Tu|
+--+--+--+--+--+
|Na|Ne|Ni|No|Nu|
+--+--+--+--+--+
|Ha|He|Hi|Ho|Hu|
+--+--+--+--+--+
|Ma|Me|Mi|Mo|Mu|
+--+--+--+--+--+
|Ya|Ye|Yi|Yo|Yu|
+--+--+--+--+--+
|Ra|Re|Ri|Ro|Ru|
+--+--+--+--+--+
|Wa|We|Wi|Wo|Wu|
+--+--+--+--+--+
The
catalogue
function
({
)
used
above
may
be
further
illustrated
as
follows:
{ 0 1 2;0 1 2;0 1 2
+-----+-----+-----+
|0 0 0|0 0 1|0 0 2|
+-----+-----+-----+
|0 1 0|0 1 1|0 1 2|
+-----+-----+-----+
|0 2 0|0 2 1|0 2 2|
+-----+-----+-----+
+-----+-----+-----+
|1 0 0|1 0 1|1 0 2|
+-----+-----+-----+
|1 1 0|1 1 1|1 1 2|
+-----+-----+-----+
|1 2 0|1 2 1|1 2 2|
+-----+-----+-----+
+-----+-----+-----+
|2 0 0|2 0 1|2 0 2|
+-----+-----+-----+
|2 1 0|2 1 1|2 1 2|
+-----+-----+-----+
|2 2 0|2 2 1|2 2 2|
+-----+-----+-----+
{ 'cht';'oa';'gtw'
+---+---+---+
|cog|cot|cow|
+---+---+---+
|cag|cat|caw|
+---+---+---+
+---+---+---+
|hog|hot|how|
+---+---+---+
|hag|hat|haw|
+---+---+---+
+---+---+---+
|tog|tot|tow|
+---+---+---+
|tag|tat|taw|
+---+---+---+
S2D.
Integer
Lists
Explain
the
difference
between
the
following
tables:
%table i:4
+--+--------------------------------------------------+
|_4| 1 1.33333 2 4 __ _4 _2 _1.33333 _1|
|_3| 0.75 1 1.5 3 __ _3 _1.5 _1 _0.75|
|_2| 0.5 0.666667 1 2 __ _2 _1 _0.666667 _0.5|
|_1| 0.25 0.333333 0.5 1 __ _1 _0.5 _0.333333 _0.25|
| 0| 0 0 0 0 0 0 0 0 0|
| 1|_0.25 _0.333333 _0.5 _1 _ 1 0.5 0.333333 0.25|
| 2| _0.5 _0.666667 _1 _2 _ 2 1 0.666667 0.5|
| 3|_0.75 _1 _1.5 _3 _ 3 1.5 1 0.75|
| 4| _1 _1.33333 _2 _4 _ 4 2 1.33333 1|
+--+--------------------------------------------------+
%table i:4r1
+--+--------------------------------------+
| | _4 _3 _2 _1 0 1 2 3 4|
+--+--------------------------------------+
|_4| 1 4r3 2 4 __ _4 _2 _4r3 _1|
|_3| 3r4 1 3r2 3 __ _3 _3r2 _1 _3r4|
|_2| 1r2 2r3 1 2 __ _2 _1 _2r3 _1r2|
|_1| 1r4 1r3 1r2 1 __ _1 _1r2 _1r3 _1r4|
| 0| 0 0 0 0 0 0 0 0 0|
| 1|_1r4 _1r3 _1r2 _1 _ 1 1r2 1r3 1r4|
| 2|_1r2 _2r3 _1 _2 _ 2 1 2r3 1r2|
| 3|_3r4 _1 _3r2 _3 _ 3 3r2 1 3r4|
| 4| _1 _4r3 _2 _4 _ 4 2 4r3 1|
+--+--------------------------------------+
S2E.
Vocabulary
The
Vocabulary
provides
two
definitions
for
the
symbol
-
;
one
(called
Negate)
for
use
with
one
argument,
and
the
other
(called
Minus)
for
use
with
two
arguments.
For
example:
- i.7 NB. Monadic use
0 _1 _2 _3 _4 _5 _6
3 - i.7 NB. Dyadic use
3 2 1 0 _1 _2 _3
Other
functions
also
have
both
monadic
and
dyadic
cases.
For
example,
a * b
denotes
the
product
of
a
and
b
,
while
*b
denotes
the
sign
of
b
.
S2F.
Functions
over
lists
Just
as
the
over
adverb
/
modifies
a
verb
to
which
it
applies,
the
prefix
adverb
\
modifies
its
argument
verb,
applying
it
to
each
prefix
of
the
eventual
argument.
For
example:
a=:1 2 3 4 5
+/a
15
+/\a
1 3 6 10 15
sum=:+/
sum\a
1 3 6 10 15
(sum 1),(sum 1 2),(sum 1 2 3),(sum 1 2 3 4),(sum 1 2 3 4 5)
1 3 6 10 15
b=:1 2 3 4 5 6r1
*/\b
1 2 6 24 120 720
!b
1 2 6 24 120 720
%/\b
1 1r2 3r2 3r8 15r8 5r16
Consulting
the
Vocabulary
if
necessary,
state
the
results
of
the
following
expressions,
and
check
your
results
by
executing
them
on
the
computer:
c=:18 3 96 17 24 12
<./c
<./\c
>./\c
+./c
+./\c
c % +./\c
*./\c
(*./\c) % c
S2G.
Notes
S3A.
Plotting
The
link
function
(denoted
by
;
)
used
in
the
expression
PLOT x;f x
in
Section
3A
boxes
its
arguments
and
catenates
them
to
form
a
two-element
list.
Together
with
the
laminate
function
also
introduced
in
Section
3A
and
the
,
and
,.
introduced
in
Section
S1B,
they
provide
four
ways
of
forming
lists
and
tables.
$
to
examine
the
shapes
of
results.
S3B.
Local
behaviour
and
area
Use
the
Vocabulary
to
examine
the
definition
of
the
circle
function
o.
used
in
Section
3
B.
In
particular,
experiment
with
the
monadic
case
in
expressions
such
as
o.1
and
o.2
and
o.1r2
.
sin=:1 with o.
)
to
determine
the
approximate
area
under
one
of
its
arches.
Then
define
cos=:2 with o.
and
use
plot
to
plot
each
of
sin
and
cos
against
the
argument,
and
against
one
another.
+:
(the
double
function)
and
plot
sin on +:
against
sin
.
5 with o.
against
6 with o.
on
the
argument
1r12*i:10
to
draw
a
hyperbola.
S3C.
Graphs
versus
function
tables
0 0 1 with p.
and
2 0 1 with p.
and
1 4 6 4 1 with p.
.
S3D.
Notes
S4A.
Bonding
c
and
d
are
the
same
length
(that
is,
have
the
same
number
of
elements),
then
the
polynomial
(c+d) with p.
is
equivalent
to
the
sum
c with p. + d with p.
.
If
one
is
shorter
than
the
other,
it
must
be
extended
by
trailing
zeros
before
adding
it.
c
and
d
.
with=:&
x=:i:4
x
_4 _3 _2 _1 0 1 2 3 4
0 0 1 with p. x
16 9 4 1 0 1 4 9 16
x^2
16 9 4 1 0 1 4 9 16
0 0 3 with p. x
48 27 12 3 0 3 12 27 48
3*x^2
48 27 12 3 0 3 12 27 48
e
is
the
diagonal
sum(s)
of
the
multiplication
table
c */ d
,
then
the
function
e with p.
is
equivalent
to
the
product
g=: c with p. * d with p.
.
Test
this
assertion
for
various
values
of
the
coefficients
c
and
d
.
1 1 with p. x
yields
the
result
1+x
,
and
(1 1 with p. * 1 1 with p.) x
yields
(1+x)^2
.
Determine
(by
hand
and
by
computer)
the
coefficients
of
polynomials
equivalent
to
further
powers
of
1+x
.
Compare
your
results
with
the
table
of
binomial
coefficients
!table i.8
.
d
obtained
by
multiplying
a
list
of
coefficients
c
by
its
indices
i.#c
and
then
deleting
the
leading
element
gives
the
polynomial
d with p.
that
is
the
derivative
or
rate
of
change
of
the
function
c with p.
.
Thus:
c=:1 2 1
c
1 2 1
i.#c
0 1 2
c*i.#c
0 2 2
d=:2 2
x=:i:3
x
_3 _2 _1 0 1 2 3
(c with p. ,: d with p.) x
4 1 0 1 4 9 16
_4 _2 0 2 4 6 8
Use
the
expression
PLOT x;(c with p. ,: d with p.) x
to
plot
the
function
together
with
its
derivative,
and
observe
that
the
derivative
does
represent
the
rate
of
change.
Repeat
for
other
polynomials.
d.1
(discussed
in
Chapter
6)
as
illustrated
below:
c with p. d.1 x
_4 _2 0 2 4 6 8
c with p. d.1 t. i.5
2 2 0 0 0
d.2
gives
the
second
derivative,
the
derivative
of
the
derivative.
Experiment
with
its
use.
t.
to
determine
the
coessicients
of
sums,
differences,
products,
and
composition
of
various
polynomials.
d._1
yields
the
anti-derivative
or
integral
discussed
in
Chapter
18.
Experiment
with
its
use
on
various
polynomials.
S4B.
Notes
S5A.
Introduction
! | _1: 3: ]
used
in
the
definition
of
the
power
series
function
ps
.
Then
experiment
with
each
of
the
following
"components"
of
ps
,
and
explain
their
behaviour:
a=:4: | ]
b=:3: = a
c=:_1: ^ b
d=:2 with |
e=: d * c
f=:% on !
g=:f * e
S5B.
Truncated
power
series
The
function
pg=:% on !
is
the
power
series
function
for
the
growth
or
exponential
function
discussed
in
Chapter
7.
Evaluate,
plot,
and
otherwise
experiment
with,
its
use.
g=:(pg 0 1 2 3 4 5 6) with p.
S5C.
Notes
S6A.
Approximation
to
the
derivative
(rate
of
change)
S6B.
Derivatives
of
polynomials
DER=: 1: }. ] * i. on #
der=: 1: |. ] * i. on #
Note
that
their
results
are
equivalent
as
polynomial
coefficients,
but
that
the
latter
has
the
(sometimes
convenient)
property
of
yielding
a
result
with
the
same
number
of
elements
as
the
argument.
f
reaches
its
lowest
point
(and
therefore
changes
from
decreasing
to
increasng)
is
called
a
point
of
inflection
of
f
.
Enter
the
following
expressions,
and
comment
on
the
resulting
graphs:
der=: 1: |. ] * i. on #
c=: 4 _3 _2 1
PLOT x2;(c with p.,(der c)with p.,:(der der c)with p.)x2
S6C.
Taylor
coefficients
Experiment
with
the
approximations
to
the
exponential,
sine,
and
cosine
functions
and
their
derivatives
given
in
Section
6C,
by
applying
them
to
the
following
argument:
x=: i: 1j5
x
_1 _0.6 _0.2 0.2 0.6 1
S6D.
Notes
S7A.
Growth
polynomials
Execute
the
following
expressions,
and
comment
on
the
results:
x=:i:2
x
^x
^ - x
%^x
(^x)*(^-x)
(^*^ on -) x
S7B.
The
name
Exponential
S8A.
Introduction
Plot
the
sine
and
cosine
functions
together,
using
the
argument
y=:i:3j100
.
S8B.
Harmonics
For
a
discussion
of
Harmonic
Analysis
see
Chapter
31
of
Gullberg
[20].
S8C.
Decay
S9A.
Inverse
Experiment
with
the
use
of
the
inverse
adverb
on
other
functions
in
expressions
such
as:
INV=:^:_1
a=:i.5
a
0 1 2 3 4
^&3 a
0 1 8 27 64
^&3 INV a
0 1 1.25992 1.44225 1.5874
^&3 ^&3 INV a
0 1 2 3 4
^&1r3 a
0 1 1.25992 1.44225 1.5874
^ a
1 2.71828 7.38906 20.0855 54.5982
^INV ^ a
0 1 2 3 4
a+2
2 3 4 5 6
!a+2
2 6 24 120 720
! INV ! a+2
2 3 4 5 6
S9B.
Equations
Repeat
the
first
few
steps
of
Section
9B
to
find
approximations
to
the
root
of
the
function
g
defined
therein.
S9C.
The
method
of
false
position
Define
the
function
g
as
follows:
c=: 4 6 _8 2
g=: c with p.
Use
the
function
tighten
of
Section
9C
with
the
initial
bracket
ab=: _1 1
to
get
approximations
to
one
of
the
roots
of
g
.
g
to
the
results
to
confirm
that
they
are
indeed
(near)
roots.
Compare
your
roots
with
the
result
of
p. c
.
p. c
shows
each
complex
root
with
a
j
separating
its
real
and
imaginary
parts.
S9D.
Newton's
method
Apply
Newton's
method
to
obtain
the
roots
of
various
polynomials.
S9E.
Roots
of
Polynomials
Pages
87-88
of
Gullberg
[20]
give
a
brief
history
of
complex
numbers.
Gullberg
uses
the
conventional
notation
i
for
the
imaginary
square
root
of
negative
one,
and
a+bi
for
the
complex
number
obtained
by
adding
the
real
number
a
to
the
product
of
the
real
number
b
with
the
imaginary
i.
j.
which
multiplies
its
single
argument
by
the
square
root
of
negative
one,
and
which
forms
a
complex
number
from
two
arguments.
For
example:
j.4
0j4
(j.4)*(j.4)
_16
3+j.4
3j4
3 j. 4
3j4
3j4 * 5j12
_33j56
(3*5)+(3*0j12)+(0j4*5)+(0j4*0j12)
_33j56
The
last
result
illustrates
the
fact
that
the
multiplication
of
complex
numbers
follows
the
normal
rules
for
the
product
of
the
sums
of
their
components
(3 0j4 5
and
0j12
).
3j4
with
its
conjugate
3j_4
yields
a
real
number.
+
yields
the
conjugate
of
its
argument.
For
example:
+5j12
5j_12
5j12 * +5j12
169
%: 5j12 * +5j12
13
| 5j12
13
The
foregoing
illustrates
that
the
square
root
of
the
product
of
a
number
with
its
conjugate
is
its
magnitude
(given
by
the
function
|
).
Verify
that
the
magnitude
of
a
real
number
is
itself,
as
is
its
conjugate.
S9F.
Logarithms
S10A.
Introduction
S10B.
Word
formation
S10C.
Parsing
S10D.
Conventional
Mathematical
Notation
S11A.
Introduction
S11B.
Informal
proofs
Write
an
informal
proof
that
+/i.n
(the
sum
of
the
first
n
non-negative
integers)
is
equivalent
to
n*(n-1)%2
.
+/*:i.n
)
and
try
to
find
an
equivalent
expression
that
is
easier
to
calculate.
Then
write
an
informal
proof
of
the
discovered
relation.
S11C.
Formal
proofs
Make
formal
proofs
of
the
informal
proofs
of
Section
S11B.
S11D.
Inductive
proofs
Make
inductive
proofs
for
the
relations
found
in
Section
S11B.
S11E.
Recursive
definition
Enter
the
following
recursive
definitions
and
apply
the
resulting
functions
to
integer
arguments
to
learn
what
you
can
about
them:
f=:1:`(+//.@(,:~)@($:@<:))@.*
g=:1:`((],+/@(_2&{.))@$:@<:)@.*
See
page
286
of
Gullberg
for
a
discussion
of
Fibonacci
numbers.
S11F.
Guessing
games
a=: 'episcopal' p=:1 0 6 3 2 4 5 8 7 p{a !#a NB. Number of permutations of a index=: A. p index index A. a
+
for
or.
In
a
broader
domain
it
is
necessary
to
distinguish
between
the
arithmetic
and
logical
functions,
and
we
therefore
use
+ *
for
the
arithmetic
functions,
and
+. *.
for
the
logical.
Consult
the
Vocabulary
for
the
significance
of
other
arithmetic
functions
used
as
Booleans.
Also
note
that
p <: q
tests
whether
p
implies
q
.
2
or
5
.
+
and
*
were
seen
to
be
both
associative
and
commutative,
whereas
-
and
%
were
neither
associative
nor
commutative.
Try
to
find
a
function
that
is
commutative
but
not
associative.
Hint:
Consult
the
Vocabulary
for
the
functions
+:
(not-or)
and
*:
(not-and).
An
associative
function
g
defined
on
a
domain
d
is
said
to
form
a
group
if
the
table
d g/ d
has
the
following
properties:
a)
there
is
a
unit
element
e
such
that
e&g
and
g&e
are
identity
functions;
that
is,
both
e&g d
and
g&e d
yield
d
.
b)
Each
element
x
of
d
has
an
inverse
xi
in
d
such
that
(x&g)@(xi&)
is
the
identity
function.
For example:
d=:0 1 2 3 g=:4&|@+ NB. Addition modulo 4 d g table d +-+-------+ | |0 1 2 3| +-+-------+ |0|0 1 2 3| |1|1 2 3 0| |2|2 3 0 1| |3|3 0 1 2| +-+-------+In the foregoing table it is clear that
0
is
the
identity
element.
Thus:
e=:0 NB. Identity element e&g d 0 1 2 3 g&e d 0 1 2 3Moreover, a little experimentation will show that
3
is
the
inverse
of
1
,
and
that
2
is
self-inverse:
1 g d 1 2 3 0 3 g 1 g d NB. 3 is inverse of 1 0 1 2 3 2 g d 2 3 0 1 2 g 2 g d NB. 2 is self-inverse 0 1 2 3A group function on a given domain may also form a subgroup on a subset of the domain. For example:
0 2 g table 0 2 +-+---+ | |0 2| +-+---+ |0|0 2| |2|2 0| +-+---+A function on the domain of the leading integers can be easily mapped onto another domain, so as to give a more abstract appearance to a group. For example:
ad=:'ABCD' map=: ad&i."0 map ad 0 1 2 3 ad g&.map table ad +-+----+ | |ABCD| +-+----+ |A|ABCD| |B|BCDA| |C|CDAB| |D|DABC| +-+----+Define a group of order eight as follows:
d=:i.8 g=:8&|@+Then display the group table, and try to find any subgroups. Also show that the element
1
is
a
generator
of
the
group
by
entering
the
expression
1&g ^:(i.12) d
.
The
result
shows
that
the
powers
of
the
function
1&g
generate
all
rows
of
the
group
table.
dp=:+/ . *
must
include
a
space
before
the
dot,
for
otherwise
the
phrase
/.
would
be
recognized
as
the
single
entity
that
represents
the
oblique
operator
as
shown
in
the
Vocabulary.
Compare
the
results
of
applying
the
word-formation
function
;:
to
the
lists
'+/ . *'
and
'+/. *'
.
sop=:+/\
(sum
over
prefixes),
then
sopinv=: sop^:_1
is
its
inverse.Test
this
assertion
by
entering
expressions
such
as
sopinv sop x=:2 3 5 7 11
and
sop sopinv x
.
Guess
at
the
value
of
a
matrix
mi
such
that
mi & dp=:+/ . *
is
equivalent
to
the
function
sopinv
.
Compare
your
guess
with
the
result
of
applying
sopinv
to
an
identity
matrix.
NORM=:4 : 0 base=. x. list=: y. result=. i.0 carry=. 0 while. 0<#list do. next=. carry + {: list NB. carry plus last of list list=. }: list NB. Delete last from list rem=. base | next NB. Remainder on div by base result=. rem , result carry=. (next-rem) % base end. result )For example:
a=: 2 34 56 c=:10 NORM a c 5 9 6 10 #. a NB. Base 10 value of a 596 10 #. c 596However, an argument such as
23 4 5
requires
a
result
with
more
elements
than
the
argument,
and
the
function
NORM
fails
to
account
for
this.
Thus:
b=: 23 4 5 10 NORM b 3 4 5The following function produces the correct result:
norm=:4 : 0 base=. x. list=: y. result=. i.0 carry=. 0 while. -.*./0=carry,list do. NB. Not all zero next=. carry + {: list NB. carry plus last of list list=. 0,}: list NB. Delete last from list rem=. base | next NB. Remainder on div by base result=. rem , result carry=. (next-rem) % base end. result ) 10 norm b 2 3 4 5Choose a pair of rather large numbers (of eight or more digits) and multiply them by the conventional method taught in elementary school. Then multiply them by the method given in Section 16C and compare the results.
norm
of
Section
S16C
with
bases
other
than
10
.
Also
define
and
use
the
functions
n10=: 10 with norm
and
n2=:2 with norm
.
Repeat
the
exercise
suggested
in
Section
S16C,
but
using
base
8
.
and =: *. NB. 13B ant =: 0:,] % next i. on # NB. 18C anti =: d. _1 NB. 18A cos =: 2&o. NB. 19D cube =: ^ with 3 NB. 14G dec =: rat^:_1 NB. 2A der =: 1: |. ] * i. on # NB. 6B derv =: d.1 NB. 18A decay =: ^ on - NB. 8C det =: -/ . * NB. 20B diag =: /. NB. 11F dp =: +/ . * NB. 15A each =: "0 NB. 11F eachbox =: &.> NB. 11F eachrow =: "1 NB. 13D exp =: ^ NB. 6C for =: ^: NB. 1C gcd =: +. NB. 2E INV =: ^:_1 NB. 9A lcm =: *. NB. 2E load 'plot' NB. 3A mean =: +/ % # NB. 9C next =: >: NB. 1A not =: -. NB. 13B on =: @ NB. 2D or =: +. NB. 13B over =: 2 :'(u.@v.)=((u.@[)v.(u.@]))'"0 NB. 14E pa =: p. NB. 16A pc =: +//. on (*/) NB. 16B pd =: |. on [ pa ] NB. 16A PLOT =: 'line,stick'&plot NB. 3A pref =: \ NB. 11F previous =: <: NB. 1A pw =: 1 : '2 with (u.\)' NB. 3C rat =: x: NB. 2A roots =: > on {: on p. NB. 9E set =: 9!:11 NB. 2B sign =: * NB. 2D sin =: 1&o. NB. 5B sort =: /:~ NB. 12A sqr =: *: NB. 9A sqrt =: %: NB. 9A sum =: +/ NB. 11F trans =: |: NB. 12A under =: &. NB. 10D with =: & NB. 1F zero =: **| NB. 9E
1. Hogben, Lancelot, Mathematics for the Million, 1983 paperback edition, W.W. Norton. First published 1937.
2. Graham, R.L., and Knuth, D.E., Patashnik, O., Concrete Mathematics, Addison-Wesley, 1988.
3. Cajori, F., A History of Mathematical Notations, The Open Court Publishing Company, La Salle, Illinois, 1928 (Now available from Dover).
4. Cajori, F., William Oughtred: A great Seventeenth-Century Teacher of Mathematics, Open Court, 1916.
5. Staff of the Computation Laboratory, A Description of the Mark IV Calculator, Annals of the Computation Laboratory, Volume XXVIII, Harvard Press, 1952.
6. Backus, J., "The History of FORTRAN I, II, and III", ACM Sigplan Notices 13 # 7, 1978.
7. Heaviside, O., Electromagnetic Theory, Chelsea Publishing Co. Reprint 1971.
8. Falkoff, A.D., and K.E. Iverson, APL\360 User"s Manual, IBM Corp, 1966.
9. Boole, G., An investigation of the laws of thought on which are founded the mathematical theories of logic and probabilities, Dover, reprint, 1951.
10. March, H.W., and H.C. Wolf, Calculus, McGraw-Hill, New York, 1917.
11. Curry, H.B., and R. Feys, Combinatory Logic, North Holland Publishers, 1968.
12. Iverson, K.E. "A Personal View of APL", IBM Systems Journal, v30 #4, 1991.
13. Synge, J.L., and A. Schild, Tensor Calculus, Dover, reprint, 1978.
14. Pinker, S., The Language Instinct, William Morrow, 1994.
15. Deacon, T.W., The Symbolic Species, Norton, 1997.
16. Iverson, K.E. Exploring Math, Iverson Software, Toronto, 1996
17. Lakatos, Imre, Proofs and Refutations: the logic of mathematical discovery, Cambridge University Press, 1976
18. Lanczos, C., Applied Analysis, Prentice-Hall, 1956
19. Hardy, G.H., A Mathematician"s Apology, Cambridge University Press, 1940
20. Gullberg, Jan, Mathematics: From the Birth of Numbers, W.W. Norton, 1997
21. Iverson, K.E., Concrete Math Companion, Iverson Software, Toronto, 1995
22. Sawyer, W.W., Introducing Mathematics:1 Vision in Elementary Mathematics, Penguin Books, 1964