# Instructions PART II: Function Tracer and Graphing Calculator

## Content PART II:

### - Non-differentiable functions

**min** Minimum of several values, e.g. **min(1#x#x^(1/3))** as minimum of 1, x and third root of x.

**max** Maximum of several values, e.g. **max(abs(x)#x*x)** as maximum of the absolute value of x and x^{2}.

**%** Modulo division, whole-numbered remainder, e.g. **10%x**. Example 1: enter 10%3 in the field *Function* of the Scientific Calculator. You will get 1 as a result because the integer division of 10 by 3 is 3 with a remainder of 1. Example 2: plot the graph of 10 modulo x by entering **10%x** in the field *First Graph* of the Graph Plotter. You will get a stair graph. Be carefull, if you enter decimal numbers in this formula, those will be rounded down.

**fmod** Modulo division, floating point remainder, e.g. **fmod(x#1)** displays only the position after the decimal point of the input value. Example 1: if you enter **fmod(3.6#1.4)** in the field *Function* of the Scientific Calculator, you will get 0.8 as a result because the division of 3.6 by 1.4 is 2 with a remainder of 0.8. Example 2: enter **fmod(x#2.4)** in the field *First Graph* of the Graph Plotter to plot the graph of the remainder of the division of the variable *x* by 2.4.

**R** Round, e.g. **R(x#2)** rounds two decimal places, **R(x)** rounds to an integer. Example 1: **R(3,5681#2)** rounds to the second decimal and the result is 3.57.

**R0** Floor (rounding down), e.g. **R0(x)**

**R1** Ceil (rounding up), e.g. **R1(x)**

**dist** Distance function, e.g. **dist(x)** gives the distance to the nearest integer.

**prime** Prime number function. A prime number is a number that can be divided only by 1 and by itself. e.g. **prime(x)** This returns the next lower prime number (or x itself, if prime) for all x≥2 and x≤100000. Non-integers are rounded.

**prime1** Prime number detecting function, e.g. **prime1(x)** Displays a number only if prime, else 0.

**prime2** Distinct prime factor counting function, e.g. **prime2(x)** returns the amount of different prime factors for an integer. Example 1: **prime2(15)** returns 2 as a result because 15 can be divided only by two prime numbers, 3 and 5.

**prime3** Prime factor counting function, e.g. **prime3(x)** returns the amount of prime factors for an integer, including multiples. E.g. prime2(4) = 1 because 4 can be divided by 2, whereas prime3(4) = 2 because 4 can be divided by 2 and by 4 (4=2x2). If prime3(x) = 1, then x is prime.

**div** Divisor function, e.g. **div(x)** returns the number of divisors of an integer. Non-integers are rounded.

**dig** Digit sum, e.g. **dig(x)** returns the digital sum of an integer. Non-integers are rounded, - is ignored. Example 1: **dig(289)** returns 19 as a result because 2+8+9=19.

**dig2** Iterated (one-digit) digit sum, e.g. **dig2(x)** returns the iterated digital sum of an integer. Example 1: **dig2(59)** returns 5 as a result because 5+9=14 and 1+4=5.

**H** Heaviside step function, e.g. **H(x)** returns 0 if x≤0, else 1.

**Hm** Multivariate Heaviside step function, e.g. We have two function of x, x^{2}-1 and sin(x), then **Hm(x*x-1#sin(x))** will return 0 if at least one value ≤0, else 1. We advise you to trace the following three function on the same picture to understand better: Hm(x*x-1#sin(x)) on *First Graph*, x^{2}-1 on *Second Graph* and sin(x) on the *Third Graph*

**sig** Signum function (sign function), this function identifies the sign of a number. Example 1: **sig(-58)** returns -1 as a result because de sign of -58 is negative. Example 2: the graph of **sig(x)** is a step function whose value is -1 for x≤0 and +1 if x is positive.

**gcf** Greatest common factor (or greatest common divisor, gcd), e.g. **gcf(8#x)** returns the greatest common factor between two integers. Non-integers are rounded. Example 2: **gcf(18#27)** returns 9 as a result.

**lcm** Least common multiple, e.g. **lcm(8#x)** returns the least common multiple between two integers. Non-integers are rounded. Example 2: lcm(3#2) returns 6 as a result.

**toti** Euler's totient function, e.g. **toti(x)** counts all positive integers less than x that are comprime to x. Non-integers are rounded. Example 1: **toti(15)** returns 7 because there are 7 prime numbers smaller than 15 (1, 2, 3, 5, 7, 11 et 13).

**odd** Find odd numbers, e.g. **odd(x)** returns numbers only when odd. Non-integers are rounded. Trace the graph of odd(x) and you will see that only odd numbers are displayed.

**even** Find even numbers, e.g. **even(x)** returns numbers only when even. Non-integers are rounded. Plot the graph of even(x) and you will see that only even numbers are displayed.

**bin** Binomial coefficient, Example 1: bin(5#3) those two values are n = 5 et k = 3. The result is 10. The formula used by **bin** is n!/[k!(n-k)!]. Example 2: trace the graph of **bin(5#x)**. Non-integers are rounded.

**tri** Triangle curve, e.g. **tri(2#3#x)** The first value is the period, the second is the amplitude. This formula used with the graph plotter will trace triangles with a base of 2 (width) and a height of 3.

**rect** Rectangle curve, e.g. **rect(1#-1#2#x)** The first value is the upper limit (on y-axis), the second is the lower (x-axis) and the third is the period.

**saw** Sawtooth wave, e.g. **saw(2#1#x)** The first value is the period, the second is the amplitude.

**saw2** Reverse sawtooth wave, e.g. **saw2(2#1#x)** The first value is the period, the second is the amplitude.

**ramp** Ramp function, e.g. **ramp(1#2#1#x)** The first value is the start x-value, the second is the end x-value and the third is the height of the ramp.

**ramp2** Reverse ramp function, e.g. **ramp2(1#2#1#x)** The first value is the start x-value, the second is the end x-value and the third is the height.

**trap** Trapezium (trapezoid) function, e.g. **trap(-4#-1#3#2#3#x)** The first value is the start x-value of the climb, the second is the end x-value of the climb, the third is the trapezoid's height, the fourth is the start x-value of the descent and the fifth is the end x-value of the descent.

**poly** Polygon or chart line or Chart-curve, this function is useful, for instance, to trace the graph of the measured temperature by a meteorological station as a function of the time, with connections between experimental dots. Example 1: **poly(-4#2#-3#4#-2#1#-1#0#0#3#1#2#2#-1#3#3#4#1#x)** gives a chart, respectively a half polygon. Here, (-4,2) is connected to (-3,4), this to (-2,1) and so on. The first value of each pair is the x-value, the second one is the y-value. The x-values must increase with each step. To get a full polygon, enter a second term (in the field *Second Graph*) with the same start and end points, like **poly(-4#2#0.5#-4#4#1#x)**

**rand** Integer random number between two integers, e.g. **rand(0#3)** returns 0, 1, 2 or 3 in the *Scientific Calculator* (Mersenne twister is used for generating - Developed by Makoto Matsumoto and Takuji Nishimura in 1997).

**rand2** Random number between two numbers with decimal places (maximal 9), e.g. Enter **rand2(0#10#3)** in the *Scientific Graphing Calculator* and this will return a number with three decimal places between 0 and 10 (Mersenne twister is used for generating - Developed by Makoto Matsumoto and Takuji Nishimura in 1997).

Up

### - Probability functions and statistics

**norm** Normal or Gaussian distribution (bell curve), e.g. **norm(0#1#x)** for the uniform distribution. The first value is the expected value, the second is the standard deviation.

**phi** Φ, Cumulative Gaussian distribution function, e.g. **phi(0#1#x)** This is an approximation based on the displayed interval. It delivers reasonable values, if the normal distribution in the chosen interval starts at very low values near 0. A common display of both functions is advisable.

**chi2** Chi-square distribution, e.g. **chi2(3#x)** The first value is the number of the degrees of freedom.

**ichi2** Inverse-chi-square distribution, e.g. **ichi2(3#x)** The first value is the number of the degrees of freedom.

**sichi2** Scale-inverse-chi-square distribution, e.g. **sichi2(3#1#x)** The first value is the number of the degrees of freedom, the second is the scale parameter, both must be >0.

**chi** Chi distribution, e.g. **chi(3#x)** The first value is the number of the degrees of freedom.

**stud** Student's t-distribution, e.g. **stud(2#x)** The first value is the number of the degrees of freedom.

**F** F-distribution (Fisher-Snedecor), e.g. **F(5#2#x)** The first two values are the numbers of the degrees of freedom.

**Fz** Fisher's z-distribution, e.g. **Fz(5#2#x)** The first two values are the numbers of the degrees of freedom.

**lnorm** Log-normal distribution, e.g. **lnorm(0#1#x)** The first value is the mean, the second is the standard deviation.

**cau** Cauchy distribution or Lorentz distribution, e.g. **cau(0#1#x)** for the standard Cauchy distribution. The first value is the location parameter, the second is the scale parameter.

**lapc** Laplace distribution, e.g. **lapc(0#1#x)** The first value is the location parameter, the second is the scale parameter. The second parameter must be >0.

**logd** Logistic distribution, e.g. **logd(1#2#x)** The first value is the location parameter, the second is the scale parameter.

**hlogd** Half-logistic distribution, e.g. **hlogd(x)**

**rlng** Erlang distribution (developed by Agner Krarup Erlang), e.g. **rlng(5#1#x)** The first value is the shape parameter, the second is the rate parameter. The first parameter must be a natural number (1, 2, 3, 4, 5,...).

**pon** Exponential distribution, e.g. **pon(1#x)** The first value is the rate parameter.

**cosd** Raised cosine distribution, e.g. **cosd(0#1#x)** The first value is the location parameter, the second is the scale parameter. cosd is defined in the interval [location-scale;location+scale].

**scahd(x)** Hyperbolic secant distribution, e.g. **scahd(x)**

**kum** Kumaraswamy distribution, e.g. **kum(2#3#x)** The first two values are the shape parameters a and b.

**levy** Lévy distribution, e.g. **levy(1#x)** The first value is the scale parameter.

**rlgh** Rayleigh distribution, e.g. **rlgh(1#x)** The first value is the scale parameter.

**wb** Weibull distribution, e.g. **wb(2#1#x)** The first value is the shape parameter, the second is the scale parameter.

**wig** Wigner semicircle distribution, e.g. **wig(1#x)** The first value gives the radius.

**gammad** Gamma distribution, e.g. **gammad(2#3#x)** The first value is the shape parameter, the second is the scale parameter.

**igammad** Inverse-gamma distribution, e.g. **igammad(2#1#x)** The first value is the shape parameter, the second is the scale parameter.

**igauss** Inverse Gaussian distribution, e.g. **igauss(1#0.25#x)** The first value is the shape parameter, the second is the scale parameter.

**betad** Beta distribution, e.g. **betad(2#3#x)** The first two values are the shape parameters, these must be ≥0. betad is defined for x in [0;1].

**betap** Beta prime distribution, e.g. **betap(2#3#x)** The first two values are the shape parameters, these must be >0.

**par** Pareto distribution or Pareto's law or 80 20 rule (Vilfredo Pareto, Italian economist: 1848-1923), e.g. **par(2#1#x)** The first value is the location parameter, the second is the shape parameter.

**pear** Pearson distribution - type III (Karl Pearson), e.g. **pear(1#1#2#x)** The first value is the location parameter, the second is the scale parameter and the third is the shape parameter.

**nak** Nakagami distribution, e.g. **nak(4#1#x)** The first value is the shape parameter, the second is the spread parameter.

**shg** Shifted Gompertz distribution, e.g. **shg(0.5#1#x)** The first value is the scale parameter, the second is the shape parameter, both must be >0.

**brw** Relativistic Breit-Wigner distribution, e.g. **brw(1#2#x)** The first value is the mass of the resonance, the second is the resonance's width and the third is the energy.

**gen** Generalized extreme value distribution, e.g. **gen(0#1#0.2#x)** The first value is the location parameter, the second is the scale parameter and the third is the shape parameter.

**Ft** Fisher-Tippett distribution, e.g. **Ft(1#2#x)** The first value is the location parameter, the second is the scale parameter. The second parameter must be >0.

**rossi** Rossi distribution, or mixed extreme value distribution, e.g. **rossi(0#3#1#4#x)** The first four values are c1, c2, d1 and d2.

**gum1** Gumbel distribution type 1, e.g. **gum1(2#1#x)** The first two values are the parameters a and b.

**gum2** Gumbel distribution type 2, e.g. **gum2(2#1#x)** The first two values are the parameters a and b.

**trid** Triangular distribution, e.g. **trid(1#2#4#x)** The first value is the lower limit, the second is the most probable and the third is the upper limit.

#### - Discrete distributions

**bind** Binomial distribution, e.g. **bind(5#0.4#x)** The first value is the number of trials, the second is the success probability.

**nbin** Negative binomial distribution, e.g. **nbin(3#0.4#x)** The first value is a paremater >0, the second is a probability.

**poi** Poisson distribution, e.g. **poi(3#x)** The first value is λ, the second is the expected value.

**skel** Skellam distribution, e.g. **skel(1#2#x)** The first two values are the means of two different Poisson distributions.

**gk** Gauss-Kuzmin distribution, e.g. **gk(x)**

**geo** Geometric distribution (variant A), e.g. **geo(0.8#x)** The first value is a probability.

**hgeo** Hypergeometric distribution, e.g. **hgeo(8#3#2#x)** The first value is the total number of objects, the second is the total number of defective objects, the third is is the number of sample objects and the fourth the number of defective objects in the sample.

**yule** Yule-Simon distribution, e.g. **yule(2#x)** The first value is the shape parameter.

**logs** Logarithmic series distribution, e.g. **logs(0.1#x)** The first value is a probability.

**zipf** Zipf or zeta distribution, e.g. **zipf(3#x)** The first value is a parameter >0.

**zm** Zipf-Mandelbrot law or Pareto-Zipf law, e.g. **zm(100#1#2#x)** The first three values are N, q and s. Maximum for N is 100.

**uni** Uniform distribution, e.g. **uni(1#2#x)** The first value is the lower limit, the second is the upper limit.

Up

### - Special functions

**traj** Trajectory parabola, path of a thrown object, e.g. **traj(45#20#9.81#x)** The first value is the angle, the second is the speed (e.g. in meters per second). The third value is the gravitational acceleration (e.g. in m/s²), the normal value on earth for this is g = 9.81 m/s². The value of g on the moon is g = 1.63 m/s² (which is one sixth of the value of g on earth). The axes scale in this example is meters. Air resistance is ignored.

**scir** Semicircle curve, e.g. **scir(x#1)** for a semicircle with the radius 1. The formula is sqr(r*r-x*x), r gives the radius.

**ell** Semielliptic curve, e.g. **ell(2#1#x)** for a semiellipse with the horizontal radius 2 and the vertical radius 1. The formula is sqr((1-x*x/(a*a))*b*b).

**ell2** Semi-superellipse or semi-hyperellipse, e.g. **ell2(2#3#4#x)** for a semiellipse with the horizontal radius 2, the vertical radius 3 and n=4.

**lmn** Lemniscate of Bernoulli (Jacques Bernoulli, Swiss mathematician, 1654-1705. This is Daniel Bernoulli's uncle. Daniel Bernoulli is famous for his work in the basic properties of fluid flow, pressure, density and velocity, and gave the *Bernoulli principle*), e.g. enter **lmn(1#x)** in the field *First Graph*, this returns a half lemniscate. For the other half, use **-lmn(1#x)** in the field *Second Graph* of the Graphing Calculator.

**lmn2** Lemniscate of Gerono, e.g. **lmn2(x)** This returns a half lemniscate. For the other half, use **-lmn2(x)**

**lmn3** Lemniscate of Booth, e.g. **lmn3(1#x)** This returns a half lemniscate. For the other half, use **-lmn3(1#x)**

**pyth** Pythagorean theorem (USA) or Pythagoras' theorem (UK), e.g. **pyth(4#3)** computes de value of the hypotenuse *c* of a right triangle with its sides *a=4* and *b=3*, try it with the Scientific Calculator. Example 1: enter **pyth(4#x)** in the Graphing Calculator to trace de curve that gives the value of the hypotenuse of a right triangle with its sides *a=4* and *b=x*. The formula is c=sqr(a*a+b*b).

**thr** Rule of three. Example 1: if you have to pay 0,85 euros to buy 5 apples, how much will you have to pay to buy 3 apples ? Look at the proportionality we are observing here: 5 apples/0,85 eur = 3 apples/x eur. We can say that x = price of 3 apples = (3 apples * 0,85eur) / (5 apples). The formula **thr(5#3#0,85)** works out this calculation: 3*0,85/5, which gives as a result the price of 3 apples knowing that 5 apples cost 0,85 euros. The answer is 0,51 euros. Example 2: **thr(5#x#0,85)** enables you to trace the graph that gives the price *y* of *x* apples knowing that 5 apples cost 0,85 euros.

**fib** Fibonacci numbers (the Fibonacci mathematical series was discovered in 1209 by Leonardo of Pisa, known as Fibonacci). The Fibonacci numbers describe the growth of a rabbit population as follow: "Initially we have only one pair of rabbits, then how many pairs will we have in 12 months if each pair produces a new baby pair every months ? We assume that each baby rabbit starts producing offsprings when he is 2 months old.". The rabbits never die, thus we have here a strictly increasing sequence. Initially, at month 0, we have no rabbits. At month 1 there is one pair of rabbits. At month 2 we still have one pair of rabbits. At month 3, there are 2 pairs because the first pair just produced a new pair. And so on. To know the number of pairs at month 9, enter **fib(9)** in the Scientific Calculator. You will get 233 as a result. At month 9, there are 233 pairs of rabbits.
If you enter **fib(x)** in the Function Tracer, you will draw a curve with the month number on the x-axis and the rabbit number on the y-axis.

**dc** Exponential Decay. Example: **dc(5#1#x)** The first value is the initial value, for instance the initial number of Uranium 238 nucleus in a sample. The second value is the decay constant. We are considering the radioactive decay of the isotope Uranium 238. The formula used is *N=N*_{0}e^{-λx} where x is the time and λ is the decay constant. N is the number of nucleus of Uranium 238 that are still intact (those who have not decayed yet), and N_{0} is the initial number of Uranium 238. At the moment x=0, thus at the initial instant, N=N_{0}. Then in **dc(5#1#x)** N_{0} = 5 and λ = 1.

**erf** Gaussian error function, e.g. **erf(x)** For the computation its Taylor series is used.

**HY4** Hyper 4 or Hyper-4 or Hyper4, also known as tetration or super-exponentiation, e.g. **HY4(x#3)** for x to the power of (x to the power of x) x^{xx}. Here the maximum value can be excessed very quickly!

**lambda** Lambda function, e.g. **lambda(x#3)** for x to the power of (x to the power of (3-1)) x^{x(3-1)}.

**sgm** Sigmoid function, e.g. **sgm(x)** for 1/(1+e^(-x)).

**gom** Gompertz curve, e.g. **gom(2#-5#-3#x)** The first value is the upper asymptote, the second is the parameter b and the third is the growth rate. Second and third value must be negative.

**zeta** Riemann zeta function for values >1, e.g. **zeta(x)**

**eta** Dirichlet eta function, e.g. **eta(x)**

**stir** Stirling's approximation for large factorials, e.g. **stir(x)** The formula is (2*pi*x)^(1/2)*(x/e)^x.

**gamma** Gamma function (Euler and Weierstrass definition, approximation), e.g. **gamma(x)** as extension of the factorial function and for many statistical distributions. It gives a good approximation for the factorial of a large number. For numbers greater than 10, we use the Stirling function, stir(x-1), which saves computing time.

**beta** Euler beta function, e.g. **beta(2#x)**

**digamma** Digamma function, e.g. **digamma(x)** for D(gamma(x))/gamma(x). **D()** is a function that computes the derivative.

**omega** Lambert-W function or Omega function or product log (approximation), e.g. **omega(x)**

**theta** Ramanujan theta function, e.g. **theta(x#0.3)** The two values are a and b. abs(a*b) must be <1.

**bump** Bump function psi, ψ, e.g. **bump(x)** for exp(-1/(1-x*x)) between -1 and 1, else 0.

**srp** Serpentine curve, e.g. **srp(2#1#x)** The formula is a*a*x/(x*x+a*b). The first two values are a and b.

Up

### - Programmable functions

**bool** characteristic boolean function, e.g. **bool(1/x)** Returns nothing, if the input value is not defined, 0, if 0, else 1.

**bool0** defined boolean function, e.g. **bool0(x)** Returns 0, if the input value is 0 or not defined, else 1.

**bool1** undefined boolean function, e.g. **bool1(prime1(x))** Returns nothing, if the input value is 0 or not defined, else 1.

**con** Condition function, e.g. **con(0#sin(x)#1)** The first value is the lower limit, the third is the upper limit. If the second value is between these two, the result is 1, else 0.

**rcon** Reverse condition function, e.g. **rcon(0#sin(x)#1)** The first value is the lower limit, the third is the upper limit. If the second value is between these two, the result is 0, else 1.

**wcon** Weighted condition function, e.g. **wcon(0#sin(x)#1)** Only returns the second value, if this lies between the first and the third value.

**rwcon** Reverse weighted condition function, e.g. **rwcon(0#sin(x)#1)** Only returns the second value, if this doesn't lie between the first and the third value.

&& (AND) can be simulated with the minimum function, e.g. **min{ con[0#sin(x)#1] # con[0#cos(x)#1] }**, if sin(x) *AND* cos(x) (*AND* means both at the same time) are within the interval [0;1] then the result displayed will be 1. Else 0.

|| (OR) can be simulated with the maximum function, e.g. **max{ con[0#sin(x)#1] # con[0#cos(x)#1] }**, if sin(x) *OR* cos(x) (*OR* means one of them or both at the same time) are within the interval [0;1] then the result displayed will be 1. Else 0

⊕ (XOR) can be simulated with the maximum minus the minimum function, e.g.

**max{ con[0#sin(x)#1] # con[0#cos(x)#1] } - min{ con[0#sin(x)#1] # con[0#cos(x)#1] }**, the result will be 1 *if the sin(x) OR cos(x) BUT NOT both at the same time* belong to the interval [0;1]. Else the result is 0.

Up

### - Iterations (iterative functions)

**y** Previous function value, e.g. for **y(0)+0.01** is 0 the initial value for y, the next value is the last result of the input value x and so on.

**y2** Pre-previous function value, e.g. **y2(1)+0.001**

**step** Number of the iteration steps done (always 500), divided by the parameter value, e.g. **step(100)** counts up to five (500/100=5).

**mean** Arithmetic mean, e.g. **mean(sin(x))** gives the arithmetic mean of the y-values returned to the so far reached x-values.

**man** Mandelbrot function, e.g. **man(0#-1.9)** for y(0)*y(0)-1.9.

*Attention: derivative and integral with the iteration don't lead to very reasonable results. As well a logarithmic scale won't work here.*

#### - Fractals

**rsf** Random singular function (a kind of devil's staircase), e.g. **rsf(0#2)** for y(a)+0.008*rand(0#1)*rand(0#1)*(b-a), from a (first value) to b (second value). The first value is the start point on the y-axis, the second is the average end value.

**wf** Weierstrass function, e.g. **wf(x#0.5#17#10)** The second value is a parameter between 0 and 1, the third value is a positive, odd integer. The second multiplied with the third must be larger than 1+3/2*pi. The fourth value is the number of steps done. In theory this is infinite, but here the maximum is 100.

**blanc** Blancmange curve, e.g. **blanc(x#10)** The second value is the number of steps done, maximum is 1000.

**tak** Takagi-Landsberg curve, e.g. **tak(x#0.7#10)** The second value is a parameter, which should be between 0 and 1. The third is the number of steps done, maximum is 1000.

Up

### Differential and integral equations

The Function Tracer and its Scientific Calculator enable you to compute and to trace the derivative and the integral of a function. The first derivative and the integral of a function must be written as follow:

**D** Derivative. Example: **D(x*x)** or **D(x^2)**. The following expression is not allowed: ~~D(D(...))~~

**S** Integral. Example: **S(x*x)** or **S(x^2)**. The following expression is not allowed: ~~S(S(...))~~

The second derivative can be drawed with the Free Graphing Calculator by checking the box *Derivative* and using at the same time the function **D()**.

Up