text \def\titleblock { Tutor for Natural Math version 0.5\\ last modified July 21, 2001\\ Copyright 1999 Stephen J Montgomery-Smith. All rights reserved. } % This package is free software; you can redistribute it and/or modify % it under the terms of either: % % a) the GNU General Public License as published by the Free % Software Foundation; either version 2, or (at your option) any % later version, or % % b) "Stephen's Artistic License" which comes with this Kit. % % This package is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either % the GNU General Public License or Stephen's Artistic License for more % details. % % You should have received a copy of Stephen's Artistic License with this % package, in the file named "Stephens-Artistic.txt". If not, I'll be glad % to provide one. % % You should also have received a copy of the GNU General Public License % along with this program; if not, write to the Free Software % Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. text \begin{center} \Large \bf The Natural Math Program \end{center} \begin{center} \large \bf Stephen Montgomery-Smith \end{center} \begin{center}\small\titleblock\end{center} text \section{Introduction} text \indent Here we describe the Natural Math program. It is easy to use. Start with a file whose extension is {\tt .nat}, for example, {\tt test.nat}. This tutorial was created by the file {\tt tutor.nat}. text \indent Each line of your file {\tt xxx.nat} is written in what we call ``natural math,'' that is, math written as you might naturally express it if you only had a simple typewriter. You will use numbers, letters, and symbols, although anything that can be expressed in symbols can also almost always be expressed in letters. text \indent What the program will do is to convert the natural math file into a La\TeX\ file. You run it like this: \begin{center} {\tt naturalmath xxx.nat} \end{center} This will create a file {\tt xxx.tex}. %Indeed, as it stands right now, %it will also run La\TeX, creating the file {\tt xxx.dvi}, and then go on %to run {\tt dvips} to create the postscript file {\tt xxx.ps}. text \indent Here is an example of lines of input, followed by the output that would be created. debug integral from 0 to infinity of e ^ (-x^2/2) dx = sqrt (pi over 2) text Each formula is created by a sequence of such lines, terminated by a a blank line. Let us first give an example, where we attempt to solve a homework problem. First we give the input, then the output. newpage text \section{Example} \label{example} text \begin{verbatim}# Start the question \end{verbatim} text \begin{verbatim} text Chapter 8.6 Question 25 \end{verbatim} text \begin{verbatim} text Evaluate the following sum \end{verbatim} text \begin{verbatim} sum from n = 2 to infinity of 1 over (n^2 - 1) \end{verbatim} text \begin{verbatim} text Answer: use partial fractions \end{verbatim} text \begin{verbatim} n^2 - 1 = (n-1)(n+1) \end{verbatim} text \begin{verbatim} 1 over (n^2 - 1) = A over (n-1) + B over (n + 1) \end{verbatim} text \begin{verbatim} = (A(n+1) + B (n-1)) over ((n-1)(n+1)) \end{verbatim} text \begin{verbatim} 1 = A n + A + B n - B \end{verbatim} text \begin{verbatim} text Equate coefficients \end{verbatim} text \begin{verbatim} 0 = A - B \end{verbatim} text \begin{verbatim} 1 = A + B \end{verbatim} text \begin{verbatim} text add equations \end{verbatim} text \begin{verbatim} 1 = 2A \end{verbatim} text \begin{verbatim} A = 1 over 2 \end{verbatim} text \begin{verbatim} B = - 1 over 2 \end{verbatim} text \begin{verbatim} 1 over (n squared - 1) = 1 over (2(n-1)) - 1 over (2(n+1)) \end{verbatim} text \begin{verbatim} S _ N = sum from n = 2 to N of 1 over (n^2 - 1) \end{verbatim} text \begin{verbatim} = (1 over 2 - 1 over 6) + (1 over 4 - 1 over 8) + (1 over 6 - 1 over 10) + (1 over 8 - 1 over 12) + ... + \end{verbatim} text \begin{verbatim} + (1 over (2(N-3)) - 1 over (2(N-1)) ) + (1 over (2(N-2)) - 1 over (2N) ) \end{verbatim} text \begin{verbatim} + (1 over (2(N-1)) - 1 over (2(N+1)) ) \end{verbatim} text \begin{verbatim} = 1 over 2 + 1 over 4 - 1 over (2N) - 1 over (2(N+1)) \end{verbatim} text \begin{verbatim} limit as N to infinity of S_N = 3 over 4 \end{verbatim} newpage # Start the question text Chapter 8.6 Question 25 text Evaluate the following sum sum from n = 2 to infinity of 1 over (n^2 - 1) text Answer: use partial fractions n^2 - 1 = (n-1)(n+1) 1 over (n^2 - 1) = A over (n-1) + B over (n + 1) = (A(n+1) + B (n-1)) over ((n-1)(n+1)) 1 = A n + A + B n - B text Equate coefficients 0 = A - B 1 = A + B text add equations 1 = 2A A = 1 over 2 B = - 1 over 2 1 over (n squared - 1) = 1 over (2(n-1)) - 1 over (2(n+1)) S _ N = sum from n = 2 to N of 1 over (n^2 - 1) = (1 over 2 - 1 over 6) + (1 over 4 - 1 over 8) + (1 over 6 - 1 over 10) + (1 over 8 - 1 over 12) + ... + + (1 over (2(N-3)) - 1 over (2(N-1)) ) + (1 over (2(N-2)) - 1 over (2N) ) + (1 over (2(N-1)) - 1 over (2(N+1)) ) = 1 over 2 + 1 over 4 - 1 over (2N) - 1 over (2(N+1)) limit as N to infinity of S_N = 3 over 4 newpage text \section{The basic commands} text \subsection{Numbers and Variables} text \indent Natural Math allows numbers and one letter variables written in the usual way. There is also the complete collection of greek letters, both lower and upper case, and infinity. There are also the dots. debug 30.45 , x , pi, Pi, Phi, phi, infinity, ...,dots text \subsection{Operations} Natural Math supports a large set of operations from mathematics. The arithmetic operators: debug a + b, a plus b, a - b, a minus b, debug a * b, a times b, a / b, a divide b, debug a ^ b, a power b, a . b, a dot b text The fraction operator, and the implicit multiplication operator: (in the case of the implicit multiplication operator, the space between the two quantities can be crucual if they are both letter variables or numbers): debug a over b, a b text The relational operators: debug a = b, a eq b, a <= b, a le b, a >= b, a > b, debug a <> b, a ne b, a < b, a lt b, a > b, a gt b text Other operators (the last one tells you that the comma is considered as an operator): debug a _ b, a sub b, a subst b, a -> b, a to b, a tendsto b, a , b, a comma b text The plus and minus can also appear at the beginning of some expressions: debug a * (-b) , a^+b text Operations can appear right at the beginning of the formula, like comma, the relational operators, and plus/minus. debug = a + b text Also, an operation can be left `dangling' at the end of input: debug a+ text The value of these last two allowable activities is to let long formulae range over several lines. This is illustrated in the long example given is Section~\ref{example}. text \indent Finally, the operations plus and minus may be used in a contex where they are treated as quantities. This allows expressions like debug a to 4^+ , b = 3_- text \subsection{Order of Operations and Brackets} text \indent Natural Math does a careful analysis, pulling apart the expressions so as to figure out what comes first. So in the following example, the division is done before the addition. debug a + b over c text You can change the order of operations: in this example the addition is done before the division. debug (a + b) over c text Here is another example. debug (a+b) times c text In this last example, the brackets appeared when typeset. Usually, brackets written in will appear as you wrote them: debug (a b)c text In a few cases, brackets are needed to change the natural order of doing operations, but it would not be right to typeset them. This happens with fractions (as above), and also with powers and subscripts. (It also happens with the square root and absolute value, and with limits of integration, and with the substitution operator --- see below.) However, you can always force the brackets to appear in this situation by adding an extra pair of unneccesary brackets: debug a^(b+c), a_(b+c) debug ((x+y)) over ((x^2 - y^2)) , f^((2))(x) text There are also square brackets: debug [ x over y ] text What is the order in which natural math would evaluate the operations without brackets? First powers and subscripts. Then fractions. Then multiplication and division. Then addition and subtraction. Then the `tends to'. Then the `comma'. Finally the relational operators. Otherwise the operations are performed left to right, except that the power and subscript operators are performed from right to left. debug a^b^c^d , a_b_c_d text Here is an example with the substitution operator. Notice that in this case, a rather large number of brackets is needed. Natural Math has its limitations! debug ((df^-1(x)) over dx) subst (x=f(a)) = 1 over (((df(x)) over dx) subst (x = a)) text \subsection{Functions} text \indent Natural Math supports a range of functions debug sqrt a, abs a, |a|, a squared, a !, a factorial text and the trig and hyperbolic functions: debug sin, cos, tan, sec, csc, cot, arcsin, arccos, arctan, sinh, cosh, tanh, coth text and functions that you can create yourself, either by using quotes, or by using the ``textsymb'' command: debug "sech"(x) = textsym sech(x) = 2 over (e^x + e^-x) text Some of these functions interact with brackets in interesting ways: debug sqrt(a+b) , sqrt((a+b)) , abs(a+b) , abs((a+b)) text \def\abs{\hbox{abs}} The absolute value construction is even more interesting, and there is a potential for ambiguity: does $|a|b|c|$ represent $\abs(a\,\abs(b)\,c)$, or $\abs(a)\,b\,\abs(c)$? Natural Math will use the second interpretation, but this can be changed using brackets: debug |x over y| 5 |x over y|, |(x over y| 5 |x over y)| text Finally, the trig functions can be raised to powers: debug sin^2 x + cos^2 x = 1, sin^-1 (sqrt3 over 2) = pi over 3 text \subsection{Integrals, Sums and Limits} text \indent Here is the integral symbol debug integral text Here is the integral sign used: note the optional use of `of'. Also `dx' is a single symbol. It can be expressed as two separate symbols, but the use of the single symbol slightly improves the typesetting. debug integral x^3 dx, integral of x^3 dx, integral of x^3 d x text Definite integrals are a little trickier, because Natural Math has to figure out what should be in the limits. It will make an intelligent guess, but sometimes it needs help. This can be provided, either with brackets, or with `of'. debug integral from 1 to a + b x^3 dx, integral from 1 to a b x^3 dx, integral from 1 to (a b) x^3 dx, integral from 1 to a b of x^3 dx text Sums are exactly the same. The following example shows that you don't need to use both of the `from' and `to' quantifiers. debug sum from n <= 20 of a_n text Limits are similar: we have the `as' quanitifier: debug rho = lim as n to infinity | a_(n+1) over a_n | , rho = lim as n to infinity of | a_(n+1) over a_n | , text `From' and `to' may also be used with brackets (both round and square), although instead of `of' you can use `end'. debug [ x^3 ] from 0 to 6 / a end , [ x^3 ] from 0 to 6 / a , [ x^3 ] from 0 to (6 / a) text More examples: debug integral u dv over dx dx = u v - integral v du over dx dx debug integral from 0 to 10 of theta^3 dtheta = [x^4 over 4] from 0 to 10 = 10^4 over 4 - 0^4 over 4 = 1000 over 4 debug integral from -1 to 1 1 over x^(2/3) dx = limit as a to 0^- of integral from -1 to a 1 over x^(2/3) dx + limit as b to 0^+ of integral from b to 1 1 over x^(2/3) dx debug = limit as a to 0^- of [3 x^(1/3) ] from -1 to a + limit as b to 0^+ of [3 x^(1/3) ] from b to 1 text Note that in the last example, the use of the `of's is rather crucial. See what happens if we don't use them: debug = limit as a to 0^- [3 x^(1/3) ] from -1 to a + limit as b to 0^+ [3 x^(1/3) ] from b to 1 text \subsection{Inserting Text} text To put a paragraph of text in your output, start the line with the word {\tt text}. The text following, and the following non-blank lines will be inserted directly into the La\TeX\ file. Indeed, if you know La\TeX, you can even use La\TeX\ commands. (We won't illustrate that here, but that is how this document was created.) text \begin{verbatim} text Here are some lines of text. How do they look? \end{verbatim} text Here are some lines of text. How do they look? text \ text You can also insert single words into formulae as follows: debug 1 over x to 0 text as x to infinity text or several words debug x over (x^2 + 1) text (grows at the same rate as) 1 over x text You can also do this using quotes (note the spaces between the quotes and the words --- it will look different if they are not there): debug x over (x^2 + 1) " grows at the same rate as " 1 over x text These commands are very fussy - they must have {\em only\/} letter based text in them. Otherwise you get an error message, which brings us to the next topic. text \subsection{Error Messages} text \indent If Natural Math finds an error, it will spit out the part of the lines it was able to process, and then follow it with a kind of descriptive error message, including a rough idea of which line number it was in the {\tt .nat} file where the error happened. This same error will also be written on the command line at which you ran naturalmath. text \indent Here are examples: debug These errors were inserted deliberately. debug 16 * x - 1 + 2 over (x + yy) - 11.2235 + 24 / 13 debug (1+2 text \subsection{Debug and Newpage and Comments} text \indent Finally, if you want to see how you wrote the command along with the typeset version, put the word {\tt debug} at the beginning of your math. That is how this tutorial was created. text \begin{verbatim} debug x + y \end{verbatim} text will produce debug x + y text To put comments in the {\tt .nat} file, note that any line beginning with {\tt \#} will not be processed by Natural Math. text \indent To start a new page, issue the one line command (followed by a blank line) text \begin{verbatim} newpage \end{verbatim} newpage text \section{Want More Features? Bugs to report?} text \indent Obviously, if you want to make really complicated math formulae, or have more control over how it looks, you should learn the \TeX, AMS\TeX\ or La\TeX\ programs. text \indent Otherwise email Stephen Montgomery-Smith at \par \begin{center}{\tt stephen@math.missouri.edu}.\end{center} Same if you have bug reports. Also, if you solve bugs, or made improvements, please, please tell me about it.