# Derive utilities 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)=x3/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  Author the expression tangent( sin x, x, 0).  Simplify 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 ax2 + 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 Author CURVEFIT( x, [[0,1], [1,2], [2,8]]).  After simplifying the result will be 2x2.  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.  Simplify 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 ax2 + 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 Author 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.

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: