Content:

Syntax

Constants

Functions

Basic functions

Trigonometric and hyperbolic functions

Non-differentiable functions

Probability functions and statistics

Special functions

Programmable functions

Iterations & fractals

Differential and integral equations

Adjust the display

Calculate single value

Load & Save

Gimmicks & Fun

Thanks to this extensive program you can draw any mathematical functions. It is possible to place as many as three functions on the graph. For the program to work, your browser must have JavaScript support enabled.

**Draw** plots the image of the graph, **Reset** sets all values back and **Standard** sets back display settings.

## Syntax

The formulas f(x), g(x) and h(x) can contain the following symbols:

**x** Function variable x

**0-9** Numbers, e.g. **123.45** Input values are hardly restricted (as long as you don't use numbers with more than 300 or so digits). The output value (result) at a non-log scale can only be up to 100000 (and -100000), this is also the maximum value for both axes.

Very large numbers can be written like**2.5E20** for 2.5*10^{20}, very small ones like **3E-10** for 3*10^{-10}. Decimal digits are exact up to a number of 12.

**. ,** Point or comma as decimal separator, e.g. **1.5** or **1,5**

**( ) [ ] { } < >** Brackets, e.g. **{[(1+x)/(2-x)+1]*3}/(2*x^2)** , are allowed in any amount. Each opened bracket must be closed again. What kind of bracket you use doesn't matter.

**#** as separator for formulas with multiple input values, e.g. **scir(x#2)**

**asy** Vertical asymptote for a given fixed value, e.g. **asy(1)** or **asy(e)**

**Q** Substitution for a self-defined formula.

#### - Basic arithmetic operations

**+** Plus, e.g. **x+1**

**-** Minus, e.g. **1-x**

***** Times, this can only be omitted, when standing between a number and a letter. E.g. you can write **2x** instead of **2*x**, but not xsin(x) or ex.

**/ :** Divided by, e.g. **1/x** or **1:x**

Up

### Constants

**e** Euler's number: 2.718281828459

**pi** π, Pi: 3.1415926535898

**pi2** π/2, Pi/2: 1.5707963267949

**sq2** Square root of 2: 1.4142135623731

**go** Relation of the golden ratio: 1.6180339887499

**d** Feigenbaum constant delta: 4.6692016091030

Up

### Functions

Nested functions like **sin(pow(x#2/3))** or polynomials like **2*x^3-4*x^2+x+1** are no problem at all.
Functions with multiple variables, like **norm**, can have the x at any one or at several positions. The standard position is shown in the examples.

Up

### - Basic functions

**^** or **pow** Power, e.g. **x^2** or **pow(x#2)** for x^{2}. Root can be written as e.g. **x^(1/2)** or **x^.5** for square root of x, an exponential function like this: **e^x** for e^{x}.

* Roots of negative values can only be shown, if the numerator of the power is 1 and the denominator of the power is odd (e.g. ***x^(1/3)** ). To calculate negative x-values for e.g. **x^(2/3)** , you have to alter this function into **(x^(1/3))^2**

**sqr** Square root, e.g. **sqr(x)** as equivalent to x^(1/2).

**exp** Exponent, e.g. **exp(x)** as equivalent to e^x.

**log** Natural logarithm , e.g. **log(x)**

**log10** Decadic logarithm, e.g. **log10(x)**

**logn** Logarithm to the base n, e.g. **logn(2#x)** for the binary (base 2) logarithm.

Up

### - Trigonometric and hyperbolic functions

**cat** Catenary, e.g. **cat(2#x)** for 2*cosh(x/2). The first value is the constant a.

**gd** Gudermannian function, e.g. **gd(x)** for arctan(sinh(x)).

**siv** Semiversus, e.g. **siv(x)** for sin2(x/2).

**sinc** Sine cardinalis, e.g. **sinc(x)** for sin(x)/x.

**tanc** Tanc function or tangent cardinalis, e.g. **tanc(x)** for tan(x)/x.

**hubb** Hubbert curve, e.g. **hubb(x)** for 1/(2+2*cosh(x)).

**L** Langevin function, e.g. **L(x)** for coth(x)-1/x.

**deg** Converts the radian number to the equivalent number in degrees, e.g. **deg(pi)**

**rad** Converts the number in degrees to the radian equivalent, e.g. **rad(180)**

Up

### - Non-differentiable functions

**abs** Absolute value, e.g. **abs(x)**

**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**

**fmod** Modulo division, floating point remainder, e.g. **fmod(x#1)** displays only the position after the decimal point of the input value.

**R** Round, e.g. **R(x#2)** rounds two decimal places, **R(x)** rounds to an integer.

**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, e.g. **prime(x)** This returns the next lower prime number (or x itself, if prime) for all x≥2 and x≤100000. At all four prime functions, non-integers are rounded.

**prime1** Prime number detecting function, e.g. **prime1(x)** Displays a number only if prime, else 0. To find all prime numbers in an interval, the span of the x-axis shouldn't be wider than the width of the image (usually 500) and you should switch off poles.

**prime2** Distinct prime factor counting function, e.g. **prime2(x)** returns the amount of different prime factors for an integer.

**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, whereas prime3(4) = 2. 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.

**dig2** Iterated (one-digit) digit sum, e.g. **dig2(x)** returns the iterated digital sum of an integer.

**adig** Alternating digit sum, e.g. **adig(x)** Non-integers are rounded, - is ignored.

**fac** Factorial, e.g. **fac(x)** Non-integers are rounded.

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

**Hm** Multivariate Heaviside step function, e.g. **Hm(x*x-1#sin(x))** 0, if at least one value ≤0, else 1. Enter as many arguments as you want.

**sig** Signum function (sign function), e.g. **sig(x)**

**haar** Haar wavelet, e.g. **haar(x)**

**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.

**lcm** Least common multiple, e.g. **lcm(8#x)** returns the least common multiple between two integers. Non-integers are rounded.

**mo** Möbius function, e.g. **mo(x)** returns for all positive integers 0, if divisible by a square>1, -1 if it has an odd number of distinct prime factors and 1 if it has an even number of distinct prime factors. Non-integers are rounded. Values are allowed up to 100000.

**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.

**odd** Find odd numbers, e.g. **odd(x)** returns numbers only when odd. Non-integers are rounded.

**even** Find even numbers, e.g. **even(x)** returns numbers only when even. Non-integers are rounded.

**bin** Binomial coefficient, e.g. **bin(4#x)** The two values are n and k. Non-integers are rounded.

**tri** Triangle curve, e.g. **tri(1#2#x)** The first value is the period, the second is the amplitude.

**rect** Rectangle curve, e.g. **rect(1#-1#2#x)** The first value is the upper limit, the second is the lower 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 value, the second is the end value and the third is the height.

**ramp2** Reverse ramp function, e.g. **ramp2(1#2#1#x)** The first value is the start value, the second is the end 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 value of the climb, the second is the end value of the climb, the third is the height, the fourth is the start value of the descent and the fifth is the end value of the descent.

**poly** Polygon or chart line, e.g. **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 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#2)** returns 0, 1 or 2 (Mersenne twister is used for generating).

**rand2** Random number between two numbers with decimal places (maximal 9), e.g. **rand2(0#1#3)** returns a number with three decimal places between 0 and 1 (Mersenne twister, too).

Up

### - Probability functions and statistics

**norm** Normal or Gaussian distribution, e.g. **norm(0#1#x)** for the standard normal 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, 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.

**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].

**sechd** Hyperbolic secant distribution, e.g. **sechd(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, e.g. **par(2#1#x)** The first value is the location parameter, the second is the shape parameter.

**pear** Pearson distribution (type III), 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 axes scale in this example is meters. Air resistance is ignored.

**pll** Parallel operator, as used, among others, for the calculation of parallel circuits and resistances, e.g. **pll(20#30#x)** Enter as many arguments as you want.

**M1** Arithmetic mean, e.g. **M1(2#3#x)** Enter as many arguments as you want.

**M2** Geometric mean, e.g. **M2(2#3#x)** Enter as many arguments as you want, only positive values are allowed.

**M3** Harmonic mean, e.g. **M3(2#3#x)** Enter as many arguments as you want, only positive values are allowed.

**M4** Root mean square, e.g. **M4(2#3#x)** Enter as many arguments as you want.

**M5** Median, e.g. **M5(2#3#x)** Enter as many arguments as you want.

**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, e.g. **lmn(1#x)** This returns a half lemniscate. For the other half, use **-lmn(1#x)**

**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, e.g. **pyth(x#1)** The formula is c=sqr(a*a+b*b).

**thr** Rule of three, e.g. **thr(x#1#2)** The formula for thr(a#b#c) is f(x)=b*c/a.

**fib** Fibonacci numbers, e.g. **fib(x)** or **fib(x#1)** If the second value is 1, a continuous graph is shown, else a discrete.

**dc** Exponential decay, e.g. **dc(5#1#x)** The first value is the initial quantity, the second is the decay constant.

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

**HY4** 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). 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)).

**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.

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

**digamma** Digamma function, e.g. **digamma(x)** for D(gamma(x))/gamma(x).

**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.

**bsc** Gaussian bell-shaped curve, e.g. **bsc(1#x)** The formula is exp(-a*a*x*x), the first value is the shape parameter a.

**gbsc** Generalized Gaussian bell-shaped curve, e.g. **gbsc(1#2#-1#x)** for 1*exp(2*x-1*x*x).

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] }**

*|| (or) can be simulated with the maximum function, e.g. ***max{ con[0#sin(x)#1] # con[0#cos(x)#1] }**

*⊕ (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] }**

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, divided by the parameter value, e.g. **step(100)** counts up to five (at 500 px width).

**mean** Iterated 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) at 500px width. 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

Derivatives within a function are written like this:

*Only one derivative of each form can be included in one function. So something like D(...)+D2(...) or D(...)+D0(...) will work, D(...)+D(...) won't, D(...)+D1(...) won't either.*

Derivative of fourth order over a whole function can be generated by using D3 together with selecting 'Derivative' in the display or by writing e.g.**D(D3(sin(x)))** (not D(D(...))). The maximum for reasonable results is seventh order, eg D(D3(D03(...))).

Integrals within a function are written like this:

**S** or **S1** First integral, e.g. **S(x*x)**

**S2** Second integral, e.g. **S2(x)**

**S3** Third integral, e.g. **S3(1)**

*Only one integral can be included in one function. So something like S(...)+S2(...) won't work.*

Integral of fourth order over a whole function can be generated by using S3 together with selecting 'Integral' in the display.

Up

# Adjust the display

Just try out, you can't break anything!

You can pick**Transp.** (transparent) at every place where you can choose a color. When selecting it for any of the three function graphs or the background, it is better to switch antialiasing off. Transparency can only be displayed in png and gif images, not in jpeg.

### Functions:

**Hull** is a function, which is laid above the three functions f(x), g(x) and h(x), using Y as a replacement for them. E.g. **sin(Y)** gives back the sine for each defined function of the three. This can also be used to easily make a similar damping for oscillations, e.g. by using **2*exp(-.5*x)*Y** as hull, sin(x) as f(x) and sin2(x) as g(x).

Next to the formula terms, the**color** of up to three graphs can be set and whether the according term should be written into the graphic. You can also choose, if the dots should be connected or not, or if the in- or outside area of the graph should be filled.

**Derivative** displays the derivated graph. In the graphic, this will be displayed as **f'(x)=[...]'**.

**Integral** you can choose to display the cumulative function in the displayed interval (integrate over ...). Thereby the function values are cumulated one after another. In the graphic, the integrated term will be displayed as **F(x)=S[...]**. You can also set a constant C, which will be added to the integral.

At**From ... to**, you can choose the domain for the function (piecewise defined function). Enter the designated x-values. If empty, the domain will cover the whole range for x. Constants like **pi** are allowed, too.

### Display properties:

At **Image type** you can choose png (compression level 1), gif (GIF87a) or jpeg (quality level 90 percent). png is recommended.

**Width** and **Height** refer to the size of the graphic and have nothing to do with the range of values (except at iterations). Minimum size is 200, maximum is 500.

**Range** defines, in which range the graphs are displayed. Maximal input and output value is 100000 (or -100000). With a logarithmic scale, the output value can raise up to about 10^{300}. Constants like **pi** are allowed, too.

**Intervals** defines the number of sectors on each axis that are labeled with dashes and numbers. Maximum is 250 or half of the width / height. The width should be divisible without remainder by the number of intervals on the x-axis, same for the height and the intervals on the y-axis. But this is no restraint.

**Reticule lines** defines the number of the drawn through lines (or grid). Maximum is 250 or half of the width / height.

**Dashes length** defines the length of the dashes at the interval borders. Maximum length is 500.

**Decimal places** defines the number of displayed decimal places in the caption and for the calculation of single values. Maximum is 12.

**Gap at origin** gives the size of the gap around the origin. When 0, this isn't shown.

**Graph thickness** determines the thickness of the function graphs. Values can be positive integers up to 200.

**Log. scale** defines, if the x- and y-axis is displayed linear or logarithmic. No means linear. As logarithmic base you can choose 2, e, 10 or 100, or enter an individual value.
*The logarithmic display doesn't show integrated or derivated graphs or iterations!*

**Quadrants** offers several buttons to change the displayed quadrants and an input field for their size. If you wish to change the size, do that before you click on one of these buttons.

The**checks**, if set, cause the display of the reticule lines, axes lines (x- and y-axis), caption (values and axes), dashes, frame and potentially occuring error messages.

At**Def. Q=** you can define a formula or a constant and then use **Q** for a substitute in the three formula terms. When inserted, the Q term will be put in parentheses, to avoid unexpected results. E.g. 1+x for Q will become (1+x).

In the next line you can define the**colors of the display** and choose **Antialiasing** (which often looks better). **Poles**, if selected, finds poles and doesn't connect them. Unfortunately, this feature is far from being perfect.

You can also decide, whether lines and caption should be drawn in the background or in the foreground or not at all.

At**Gamma**, you can make a gamma correction, enter a value larger than 0 here, 1 is standard.

At**Brightness**, enter an integer between -255 and 255, 0 doesn't change the brightness.

At**Contrast**, enter an integer between -100 and 100, 0 doesn't change anything.

At**Rotation**, enter the angle in degrees, which you wish the image to rotate.

**Emboss**, **Blur**, **Negative**, **Greyscale**, **Sketchy** and **Edges only** are special effects which, when checked, will change the look of the graph as their name implies.

**Self-defined color** lets you define three colors of your own choice, which can be chosen as **Self 1-3** in the color lists. Enter the color as a 6-digit hex code, e.g. ffffff for white.

*The displayed graph is never an exact image of the function, but an approximation as good as possible.*

Up

# Calculate single value

Enter a function with the syntax above or click on **1**, **2** or **3** to take a specified function term. Choose a numeric (no formula) input value and click **Calculate** to see its function value. The result is rounded according to the setting at **Decimal places**. Values of the function phi, derivatives, integrals and iterations can't be calculated.

Enter several values, separated by spaces (e.g. 1 2 3 4 5), to get a score table. Press**+10** to get the numbers from 1 to 10, or **-10** to get those from -1 to -10. You can also choose, if you want as output only the **Results**, a **Table** with the x-values as well or a **CSV**-type list (semicolon separated).

This tool can also be used as a pocket calculator. Simply enter an arithmetic term like**2*2** and no input value.

Up

# Load & Save

To save a setting, copy the path text in the input field and save it in a text file. You can later paste it into this field and load it again.

Up

# Gimmicks & Fun

You can as well use this plotter for doing geometrical graphic designs like for logos and such. Therefore especially the functions for filling the graph out (or in) are useful, combined with a background color. Although you are restricted to the mathematical functions above, you will be surprised what is possible to create with a little bit of effort and practice.

**Examples:**

To view the examples, copy the code in the**Load & Save** section (clear it before) and click on **Load Graph**.

### Starry Sky

Set the background to black and remove all lines and caption. Use the term rand2(-5#5#3), choose a starlike color for it (yellow, red, even blue) and draw it dotted. If you want more stars, use this term for all three graphs. If you want less, use something like rand2(-10#10#3) instead. In the following code I have also changed brightness and contrast and reduced the number of blue stars. Each time you draw this image new, you'll get a different sight.

### Kind of a Star Trek logo

Take -pow(x#2)+9 as the first and -pow(x#2)+5 as the second term. The y-axis has to run from 0 to 10. Again, remove all lines and captions and make the background black. For the first graph, choose a light color, for the second black. Set both to fill in.

### Plaid Cyclone

Just had a bit of fun with this one.

### Propeller

### Strange object

### Prime number saw

Do góry

Syntax

Constants

Functions

Basic functions

Trigonometric and hyperbolic functions

Non-differentiable functions

Probability functions and statistics

Special functions

Programmable functions

Iterations & fractals

Differential and integral equations

Adjust the display

Calculate single value

Load & Save

Gimmicks & Fun

Thanks to this extensive program you can draw any mathematical functions. It is possible to place as many as three functions on the graph. For the program to work, your browser must have JavaScript support enabled.

Very large numbers can be written like

Up

Up

Up

Up

sin Sine, sinus, e.g. sin(x)cos Cosine, cosinus, e.g. cos(x)tan Tangent, e.g. tan(x)cot Cotangent, e.g. cot(x)sin2 Sine square, e.g. sin2(x)cos2 Cosine square, e.g. cos2(x)tan2 Tangent square, e.g. tan2(x)cot2 Cotangent square, e.g. cot2(x)arcsin Arcsine, e.g. arcsin(x)arccos Arccosine, e.g. arccos(x)arctan Arctangent, e.g. arctan(x)arccot Arccotangent, e.g. arccot(x)sinh Hyperbolic Sine, e.g. sinh(x)cosh Hyperbolic Cosine, e.g. cosh(x) |
tanh Hyperbolic Tangent, e.g. tanh(x)coth Hyperbolic Cotangent, e.g. coth(x)arsinh Area Hyperbolic Sine, e.g. arsinh(x)arcosh Area Hyperbolic Cosine, e.g. arcosh(x)artanh Area Hyperbolic Tangent, e.g. artanh(x)arcoth Area Hyperbolic Cotangent, e.g. arcoth(x)sec Secant, e.g. sec(x)cosec Cosecant, e.g. cosec(x)arcsec Arcsecant, e.g. arcsec(x)arccosec Arccosecant, e.g. arccosec(x)sech Hyperbolic Secant, e.g. sech(x)cosech Hyperbolic Cosecant, e.g. cosech(x)arsech Area Hyperbolic Secant, e.g. arsech(x)arcosech Area Hyperbolic Cosecant, e.g. arcosech(x) |

Up

Up

Up

Up

Up

Up

D or D1 First derivative, e.g. D(x*x)D2 Second derivative, e.g. D2(x^3)D3 Third derivative, e.g. D3(x^4) |
D0 or D01 First derivative, alternative form, e.g. D0(x*x)D02 Second derivative, alternative form, e.g. D02(x^3)D03 Third derivative, alternative form, e.g. D03(x^4) |

Derivative of fourth order over a whole function can be generated by using D3 together with selecting 'Derivative' in the display or by writing e.g.

Integrals within a function are written like this:

Integral of fourth order over a whole function can be generated by using S3 together with selecting 'Integral' in the display.

Up

You can pick

Next to the formula terms, the

At

The

At

In the next line you can define the

You can also decide, whether lines and caption should be drawn in the background or in the foreground or not at all.

At

At

At

At

Up

Enter several values, separated by spaces (e.g. 1 2 3 4 5), to get a score table. Press

This tool can also be used as a pocket calculator. Simply enter an arithmetic term like

Up

Up

To view the examples, copy the code in the

a0=2&a1=Q&a2=Q&a3=Q*5&a4=5&a5=3&a6=0&a7=&a8=&a9=&b0=500&b1=500&b2=-5&b3=5&b4=-5&b5=5&b6=10&b7=10&b8=5&b9=5&c0=3&c1=0&c2=1&c3=1&c4=1&c5=&c6=1&c7=0&c8=0&c9=0&d0=1&d1=20&d2=20&d3=0&d4=&d5=&d6=&d7=&d8=&d9=&e0=&e1=&e2=&e3=rand2(-5#5#3)&e4=13&e5=14&e6=13&e7=12&e8=1&e9=1&f0=1&f1=1&f2=1&f3=-80&f4=-50&f5=&f6=&f7=&f8=&f9=&g0=&g1=0&g2=1&g3=0&g4=0&g5=0&g6=Y&g7=ffffff&g8=ffffff&g9=ffffff&h0=1&z

a0=2&a1=-pow(x#2)+9&a2=-pow(x#2)+5&a3=&a4=5&a5=13&a6=8&a7=&a8=&a9=1&b0=500&b1=500&b2=-5&b3=5&b4=0&b5=10&b6=10&b7=10&b8=5&b9=5&c0=3&c1=0&c2=1&c3=1&c4=1&c5=1&c6=1&c7=0&c8=0&c9=0&d0=1&d1=20&d2=20&d3=0&d4=&d5=&d6=&d7=&d8=&d9=&e0=&e1=&e2=&e3=&e4=13&e5=14&e6=13&e7=12&e8=2&e9=2&f0=0&f1=1&f2=1&f3=0&f4=0&f5=&f6=1&f7=&f8=&f9=&g0=&g1=0&g2=1&g3=0&g4=0&g5=0&g6=Y&g7=ffffff&g8=ffffff&g9=ffffff&h0=1&z

a0=2&a1=cat(2*(sqr(abs(x))-x/8)#x)&a2=6&a3=rand2(-2#0#2)&a4=1&a5=1&a6=9&a7=&a8=&a9=&b0=500&b1=500&b2=-5&b3=5&b4=-2&b5=8&b6=10&b7=10&b8=5&b9=5&c0=3&c1=50&c2=&c3=&c4=&c5=1&c6=1&c7=0&c8=0&c9=0&d0=1&d1=50&d2=50&d3=0&d4=&d5=&d6=&d7=&d8=&d9=&e0=&e1=&e2=&e3=&e4=18&e5=6&e6=13&e7=1&e8=2&e9=3&f0=0&f1=1&f2=1&f3=0&f4=0&f5=&f6=&f7=&f8=&f9=&g0=&g1=1&g2=1&g3=0&g4=0&g5=0&g6=Y&g7=ffffff&g8=ffffff&g9=ffffff&h0=1&z

a0=2&a1=x&a2=abs(x)^.9*sig(x)&a3=-(x/25)^3&a4=17&a5=37&a6=17&a7=&a8=&a9=&b0=500&b1=500&b2=-1000&b3=1000&b4=-1000&b5=1000&b6=10&b7=10&b8=5&b9=5&c0=3&c1=30&c2=&c3=&c4=&c5=&c6=&c7=0&c8=0&c9=0&d0=1&d1=10&d2=10&d3=0&d4=&d5=&d6=&d7=&d8=-120&d9=120&e0=&e1=&e2=&e3=&e4=37&e5=13&e6=13&e7=37&e8=2&e9=2&f0=2&f1=1&f2=1&f3=0&f4=0&f5=&f6=&f7=&f8=&f9=&g0=&g1=2&g2=1&g3=90&g4=0&g5=0&g6=Y&g7=ffffff&g8=ffffff&g9=ffffff&h0=1&z

a0=2&a1=2^x&a2=x^2&a3=-200*x+3000&a4=6&a5=13&a6=13&a7=&a8=&a9=&b0=400&b1=400&b2=4&b3=15&b4=20&b5=1010&b6=10&b7=10&b8=5&b9=5&c0=3&c1=0&c2=&c3=&c4=&c5=&c6=&c7=0&c8=0&c9=0&d0=1&d1=20&d2=20&d3=0&d4=&d5=&d6=&d7=&d8=&d9=&e0=&e1=&e2=&e3=&e4=13&e5=14&e6=11&e7=11&e8=2&e9=2&f0=3&f1=&f2=1&f3=0&f4=0&f5=&f6=1&f7=&f8=&f9=&g0=&g1=1&g2=1&g3=35&g4=0&g5=0&g6=Y&g7=ffffff&g8=ffffff&g9=ffffff&h0=1&z

a0=2&a1=prime(x)&a2=x-25&a3=x-300&a4=4&a5=3&a6=38&a7=&a8=&a9=&b0=500&b1=500&b2=500&b3=0&b4=0&b5=500&b6=10&b7=10&b8=5&b9=5&c0=3&c1=0&c2=1&c3=1&c4=1&c5=&c6=1&c7=0&c8=0&c9=0&d0=&d1=20&d2=20&d3=0&d4=&d5=&d6=&d7=&d8=&d9=&e0=&e1=&e2=&e3=&e4=38&e5=14&e6=21&e7=1&e8=2&e9=2&f0=2&f1=1&f2=1&f3=0&f4=0&f5=&f6=&f7=&f8=&f9=&g0=&g1=0&g2=1&g3=140&g4=0&g5=0&g6=Y&g7=ffffff&g8=ffffff&g9=ffffff&h0=1&z

Do góry