Plotter - manual

Plotter is oettinger-physics.de's empirical plotting utility, a tool to draw function graphs or calculate function values at certain points. Plotter can be used to produce images showing up to three curves of given functions and ten points of interest in a simple cartesian system.

Quick-n-dirty usage: enter one ore more functions (mathematical expressions) into the fields on the right and gently press the button labeled 'Draw' to see the corresponding curves in an image on the left side.

The functions f(x), g(x), h(x) to plot and some specials can be declared in text inputs on the right hand side, a color (in hex notation) and some options can be set: a function term can be printed out in the plot, points calculated to draw the curve can be shown as dots or interconnected and the inside or outside of each curve can be filled with the selected color.


The special options settable on the right are

hull is the outer function in a function composition. The results of the inner functions f(x), g(x) and h(x) will pointwise be used as a variable Y for the outer (hull) function H(Y) or in math notation (H ∘ f)(x), (H ∘ g)(x) and (H ∘ g)(x).
This is similar to a substitution, e.g. sin(Y) defined as hull function will plot the sine of each defined function. Consider using 2*exp(-.5*Y) as hull, x as f(x) and x^2 as g(x) - you will get this plot of 2*exp(-.5*x) and 2*exp(-.5*x^2).
QSubstitution mechanism. An expression can be defined and used as a substitute for the special variable Q in function terms. A function value will be calculated after calculation of Q, so f(x) = 2 - Q with Q = 1+x really means f(x) = 2 - (1+x).
df/dx (derivative) shows the derivated graph. In the legend, this will be displayed as f'(x)=[...]'.
∫f(x)dx (integral) shows the cumulative function in the plotted interval (integrate over ...). Calculated function values are cumulated one after another and the constant value C is added (if set). The integrated term will be named F(x)=S[...].

Syntax

For all functions and numbers, you can use mathematical expressions which may contain function names, constant names and combinations of the following symbols:


x is treated as variable name in functions f(x)
0-9Numbers like 123.45, input values are hardly restricted (as long as you don't plan to use more than some hundred digits). The output value (result) at a non-log scale is restricted to +/-100000 which is also the maximum value for both axes.
Large or small numbers may be written in scientific Notation (the standard index form like 2.5E20 for 2.5·1020), decimal digits are exact up to a number of 12.
. ,point or comma as decimal separators: 1.5 is the same as 1,5
+-*/basic arithmetic operations
(when multiplying numbers and variable names, the operator '*' can be omitted, i.e. 2x = 2*x)
( ) [ ] { } < >brackets, e.g. {[(1+x)/(2-x)+1]*3}/(2*x^2). As common in mathematics, the type of brackets used does not matter.
# is used as separator for functions accepting multiple input values, e.g. scir(x#2)
asyshow a vertical asymptote at a fixed value x, e.g. asy(1) or asy(e)
top

Constants

Plotter is aware of some common constants that can be used in formulas, expressions and all numerical input. So e^x is the same as exp(x) and a plot can easily be drawn from to π by setting the plotting range from -pi to pi.

eEuler's number: 2.718281828459
piπ, Pi: 3.1415926535898
pi2π/2, Pi/2: 1.5707963267949
sq2square root of 2: 1.4142135623731
gorelation of the golden ratio: 1.6180339887499
dFeigenbaum constant delta: 4.6692016091030
top

predefined Functions

Plotter knows many interesting functions, nested ones like sin(pow(x#2/3)) or polynomials like 2*x^3-4*x^2+x+1 should work without problems. The order of arguments in functions with multiple variables (e.g. norm) does not matter, the standard position is shown in the examples.

top

- Basic functions

^ or pow power function, e.g. x^2 or pow(x#2) for x2. A root can be written as power of a fraction, e.g. x^(1/2) or x^.5 for square root of x, an exponential function like this: e^x for ex.   Roots of negative values can only be shown, if the numerator 1 and the denominator 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 exponential function, Euler-function, e.g. exp(x) as equivalent to e^x.
log natural logarithm (logarithm to base e) , e.g. log(x)
log10 decadic logarithm, e.g. log10(x)
logn logarithm to base n, e.g. logn(2#x) for the binary (base 2) logarithm.
top

- Trigonometric and hyperbolic functions

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)

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 a radian number to the equivalent number in degrees, e.g. deg(pi)
rad converts a number in degrees to the radian equivalent, e.g. rad(180)
top

- 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 x2.
% 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). This is equivalent to Gaussian brackets [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 the number x only if x is prime, 0 otherwise. 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.
HHeaviside step function, e.g. H(x) 0, if x≤0, else 1.
Hmmultivariate 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)
haarHaar wavelet, e.g. haar(x)
gcfgreatest common factor (or greatest common divisor, gcd), e.g. gcf(8#x) returns the greatest common factor between two integers. Non-integers are rounded.
lcmleast common multiple, e.g. lcm(8#x) returns the least common multiple between two integers. Non-integers are rounded.
moMö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.
totiEuler's totient function, e.g. toti(x) counts all positive integers less than x that are comprime to x. Non-integers are rounded.
oddfind odd numbers, e.g. odd(x) returns numbers only when odd. Non-integers are rounded.
evenfind even numbers, e.g. even(x) returns numbers only when even. Non-integers are rounded.
binbinomial coefficient, e.g. bin(4#x) The two values are n and k. Non-integers are rounded.
tritriangle curve, e.g. tri(1#2#x) The first value is the period, the second is the amplitude.
rectrectangle 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.
sawsawtooth wave, e.g. saw(2#1#x) The first value is the period, the second is the amplitude.
saw2reverse sawtooth wave, e.g. saw2(2#1#x) The first value is the period, the second is the amplitude.
rampramp 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.
ramp2reverse 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.
traptrapezium (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.
polypolygon 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)
randinteger random number between two integers, e.g. rand(0#2) returns 0, 1 or 2 (Mersenne twister is used for generating).
rand2random 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).
top

- Probability functions and statistics

normnormal or Gaussian distribution, e.g. norm(2#1#x) for the standard normal Distribution shifted two Units to the right. 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.
chi2chi-square distribution, e.g. chi2(3#x) The first value is the number of the degrees of freedom.
ichi2inverse-chi-square distribution, e.g. ichi2(3#x) The first value is the number of the degrees of freedom.
sichi2scale-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.
chichi distribution, e.g. chi(3#x) The first value is the number of the degrees of freedom.
stud Student's t-distribution (also known as 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.
top

- 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).
top

- Logic 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] }
top

- Iterations (iterative functions)

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

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 function values calculated from the leftmost up to the current value in x.
man Mandelbrot function, e.g. man(0#-1.9) for y(0)*y(0)-1.9.

- Fractals

rsfRandom 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.
top

Differential and integral equations

Derivatives of a function within a function can be calculated if declared as:
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)
Only one derivative of each form can be used in one function. So something like D(...)+D2(...) or D(...)+D0(...) will work, but D(...)+D(...) or D(...)+D1(...) will not.
The derivative of fourth order over a function can be generated by using D3(...) and selecting derivative display option in the plot or by a combination like D(D3(...)) (not D(D(...))). The maximum for reasonable results is an order of seven, eg D(D3(D03(...))).

Integrals within a function can be expressed as:
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(...) will not work.
An integral of fourth order over a function can be generated by using S3(...) with an integral Display option.

top

Adjust the display

Display options:

The appearance of drawn plots can be changed using one of the options in a dialog. If applicable, the resulting image can further be treated with image filters (the list of filters depends on the GD version used).
image type:plotter knows three image formats: png (compression level 1), gif (GIF87a) or jpeg (90 percent quality level). The jpeg image format does not Support transparency.
width / height set the size of the image in pixels. For practical reasons, minimum size is 200, maximum is 500.
range defines the interval the curves are displayed in. Maximal input and output value is 100000 (or -100000). With a logarithmic scale, the output value can raise up to about 10300. Constants like pi are allowed, too.
intervals number of sectors on each axis labeled with dashes and numbers. Maximum is 250 or half of the width / height.
grid lines the number of the drawn lines in the grid. Maximum is half of the width or height.
dashes length length of the dashes at interval borders. Maximum length is 500.
decimal places defines the number of decimal places displayed. This is used for calculation of values, too. Maximum is 12.
gap at origin sets the size of an optional gap around the origin. If set to 0, no gap is shown.
graph thickness line thickness of function graphs. Values can be positive integers up to 200 (which looks quite funny...).
log. scale select linear or logarithmic scale on one or both axes. If no logarithm is selected, an axis will be drawn using a linear scale. You can choose 2, e, 10 or 100 as logarithmic base or enter an individual value. Caution: logarithmic display will not work in combination with integrals, derivates or iterations.
quadrantsoffers buttons to change the displayed quadrants and an input field for their size. If you wish to change the size, do so before clicking one of these buttons.
The checkboxes can be used to switch grid and axes lines (x- and y-axis), caption (values and axes), dashes, frame and potentially occuring error messages.

Below, some display colors and antialiasing (which often looks better) can be chosen. poles, if selected, tries to find poles and doesn't connect them (unfortunately, this feature is far from being perfect).
Lines and captions can be drawn in the back- or foreground or switched off.
rotation sets an angle in degrees, by which the image will be rotated.
emboss, blur, negative, greyscale, sketchy and edges only are effects which, when checked, will change the look of the graph as their name implies.
The displayed graph is never an exact image of the function, but an approximation as good as possible.

top

calculate function values

To calculate values, you need a function in the syntax used for plotter input already (see above). There are three buttons that will copy the function definitions in the plotting part (named f(x), g(x) and h(x)).

Variable values used to calculate distinct points on the curve can be given in text form (a line of numbers separated by spaces), the buttons +10/-10 will enter whole numbers from 1 to 10 rsp -1 to -10.

Once calculated, the values will be displayed in the Format selected by the radio buttons - a line of numbers, table, in csv-notation (semicolon-separated) or as a snippet of Latex code.


top

load & save

Each time a plot is created, all selected values and options are concatenated into a (long!) query string to pass the relevant data to the graphing part and get the actual image. The plot can be redrawn anytime by passing this data to graph.php (which will return an image in the previously selected format). All the required information is stored in the query string - so the URL displayed in the text field can be used to create a predefined plot on the fly, there's no need to save the image into a file. Of course, the URL can be saved as text to create a plot later on.


Direct linking to a function plot is a nice feature, but the URL with plotter's options is really ugly. That's why there's a short link (tinyurl-a-like) in the upper field. This one can be used if you do not need a direct link to the image (if a redirection is acceptable).

By appending " .qr " to the end of the short link, you'll get a QRCode (as a png image) of the short link which in turn will redirect to the image of the created plot - simple, huh?


top

Licensing

All images created by the plotter located at plot.oettinger-physics.de are covered by a WTFPL-License or in other words, they are released into public domain. Please do not use the plotter if you don't feel comfortable with this.

top