In the manual several functions are defined such TL(a) which computes the tangent line
of a predefined function *f(x)* at the point *x = a*. In Chapter 5 and later there will be many more such
functions which will approximates roots, integrals and solutions to differential
equations. To make it easier to compute with these function we have added a utility
file add-util.mth with all the functions defined. The
way this utility file works is that you simply use the __F__ile/__L__oad/__U__tility
menu and select the file add-util.mth. DfW then loads
the file "quietly" meaning that just the definitions are entered and nothing is
displayed. The file just takes a second or two to load in quiet mode. To make
this process easier we suggest having every lab file start out with the add-head.mth at the top and then add your name and lab number in
double quotes. See the sample session below where the first four lines are obtained
by loading the add-head.mth file, then the file is renamed
using the __F__ile/Save __A__s menu as LAB3.MTH.

We have changed the names and the way these function work by eliminating the need to
predefine a function *f(x)*. For example, if you
want to compute a tangent line for say *f(x)=x ^{3}/3*
at x=1 you would Author and Simplify:

TANGENT(x^3/3, x, 1)

The result will be *y = x - 2/3. *.
We describe the variables for this and the other functions typically as

TANGENT( u, x, a)

where the u refers to any expression in the variable x and a is a parameter in the function.

**Example 1**. Suppose
that you want to find the tangent line to the function *sin
x* at the point (0,0) on its graph. Assuming that you have loaded the utility file add-util.mth
as above then just __A__uthor
the expression tangent( sin x, x, 0). __S__implify
and
then plot
the resulting expression along with the plot of the function to make sure the
computation is graphically correct.

**Example 2**. Suppose
that you want to find the quadratic polynomial *ax ^{2} +
bx + c* that passes through the three points: (0,0), (1,2) and (2,8). You
load the utility file add-util.mth and then

__A__uthor CURVEFIT( x, [[0,1], [1,2], [2,8]]). After simplifying the result will be 2x

^{2}. Probably the best way to do this is to start by defining the

*3x2*matrix of points using the matrix button and then plotting the 3 points on a graph. Next you Author the CURVEFIT( x, part and then right click and insert the matrix of data points.

__S__implify and plot to make sure the answer function does indeed pass through the 3 data points. The CURVEFIT function will find the appropriate degree polynomial through the data regardless of the number of points.

**Example 3**. Suppose
that you want to find the quadratic polynomial *ax ^{2} +
bx + c* that passes through the two points: (0,0) and (1,2). In addition,
you want the derivative to be 1 when

*x=*0. You load the utility file add-util.mth and then

__A__uthor CURVEFIT( x, [[0,1], [1,2]], [[0,1]]). In other words, you enter one matrix for the points satisfied by the function and another matrix for the points satisfied by the derivative. The degree of the answer polynomial is always one less than the total number of equations for both the function and its derivative.

## Partial List of Utility Functions:

SUBST(u,x,a) |
Substitutes x=a in the expression u. |

SECANT(u,x,a,h) |
Secant line of u(x) through x = a and x = a + h. |

TANGENT(u,x,a) |
Tangent line of u(x) at x = a. |

CURVEFIT(x,data,ddata) |
Fits a polynomial in the variable x, though the points data:=[[x0,y0],[x1,y1],...] provided ddata is either omitted or []. Otherwise, the graph of the derivative must pass through the ddata points. |

NEWT(u,x,x0) |
Newton algorithm for root of u(x)=0 with initial guess x0. If the optional k argument is used then a vector of k iterates is returned. |

DRAW_COMPLEX(v) |
Converts the vector of complex numbers [x0+iy0, x1+iy1,...] into a matrix of points [[x0,y0], [x1,y1],...] which can then be plotted in a 2D-plot window. |

LEFT(u,x,n,a,b) |
Numerical approximation to the integral of u(x) over [a,b] using the left-endpoint method with n rectangles. |

MID(u,x,n,a,b) |
Numerical approximation to the integral of u(x) over [a,b] using the midpoint method with n rectangles. |

RIGHT(u,x,n,a,b) |
Numerical approximation to the integral of u(x) over [a,b] using the right-endpoint method with n rectangles. |

TRAP(u,x,n,a,b) |
Numerical approximation to the integral of u(x) over [a,b] using the trapezoid method with n trapezoids. |

SIMP(u,x,n,a,b) |
Numerical approximation to the integral of u(x) over [a,b] using Simpson's method with n subdivisions. |

DRAW_LEFT(u,x,n,a,b) |
Draws graphic demonstration of the left-endpoint method for numerically integrating u(x) over the interval [a,b] using n rectangles. |

DRAW_RIGHT(u,x,n,a,b) |
Same as above except for the right-endpoint method. |

DRAW_TRAP(u,x,n,a,b) |
Draws graphic demonstration of the trapezoid method for numerically integrating u(x) over the interval [a,b] using n trapezoids. |

### Need to Download add-util.mth?

**Version 6**

The files add-head.dfw (note the new file extension) and add-util.mth are in the folder G:\DfW5\M242L and is a small text file that can be copied onto a floppy disk. Otherwise just click below:

add-head.dfw (1KB)

add-util.mth (6KB)

**Note:** In the lab we set the *start
in* directory on the *Derive 6 desktop icon*
to be H:\ so that whenever you start Derive this is where it looks for the file DFW.INI
which contains your default settings such as the number of precision digits. We
place the add-head and add-util
files in the subfolder M242L in the DFW install folder. If you do things
differently at home then you will need to modify the LOAD command in your add-head
file so that both the lab and home locations will work. We suggest having two
load commands as follows:

#2: LOAD("G:\Dfw5\M242L\add-util.mth")

#3: LOAD("C:\Dfw5\M242L\add-util.mth")

Here, in line 3 above just use the path on your system where the file add-head.mth is is located.