summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-09-03 16:33:26 +0000
committerKarl Berry <karl@freefriends.org>2007-09-03 16:33:26 +0000
commit8e1addeb313836534d067bb5f1818d0b9a5c1dd7 (patch)
treea2027db9392e9fe75d7b32c0fdc77aab18a34b22
parentf1a51e596292491bcc441288a51aaec8af7dab1e (diff)
pst-func 0.50
git-svn-id: svn://tug.org/texlive/trunk@4854 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/generic/pst-func/Changes15
-rw-r--r--Master/texmf-dist/doc/generic/pst-func/README7
-rw-r--r--Master/texmf-dist/doc/generic/pst-func/pst-func-doc.bib18
-rw-r--r--Master/texmf-dist/doc/generic/pst-func/pst-func-doc.pdfbin2207705 -> 2335134 bytes
-rw-r--r--Master/texmf-dist/doc/generic/pst-func/pst-func-doc.tex418
-rw-r--r--Master/texmf-dist/dvips/pst-func/pst-func.pro17
-rw-r--r--Master/texmf-dist/tex/generic/pst-func/pst-func.tex171
7 files changed, 529 insertions, 117 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-func/Changes b/Master/texmf-dist/doc/generic/pst-func/Changes
index d6e6663678e..2b1979de2d7 100644
--- a/Master/texmf-dist/doc/generic/pst-func/Changes
+++ b/Master/texmf-dist/doc/generic/pst-func/Changes
@@ -1,5 +1,17 @@
..... pst-func.tex
-0.49 2007-07-23 - add psVolume, rotating a function around the x-axis
+0.50 2007-08-30 - modified \psPoisson{m,N}{Lambda} (Gerry Coombes)
+ - modified \psPolynomial{m,n,N}{Lambda} (Gerry Coombes)
+ - fixed bug in \psPoisson with markZeros
+ - fixed bug in \psBinomial with markZeros
+ - fixed bug in psPlotImp with \psyunit
+ - added new distribution functions
+ \psFDist for F-distribution
+ \psGammaDist
+ \psChiIIDist
+ \psTDist for Student's t-distribution
+ \psBetaDist for Beta distribution
+ - use pat-math.pro for GAMMALN function
+0.49 2007-06-23 - add psVolume, rotating a function around the x-axis
0.48 2007-03-17 - add another distribution function: psPoisson
0.47 2007-02-01 - add support of arrows for psPolynomial
0.46 2006-09-06 - using the bool key from xkeyval
@@ -36,6 +48,7 @@
..... pst-func.pro
+0.07 2007-08-30 new subroutine LogGamma
0.06 2006-04-16 new subroutine MoverN (binomial coefficient)
0.05 2005-12-19 new subroutine Si and si for the integral sin
new subroutine for the integral cosin
diff --git a/Master/texmf-dist/doc/generic/pst-func/README b/Master/texmf-dist/doc/generic/pst-func/README
index eb7f599e47c..c1b86678790 100644
--- a/Master/texmf-dist/doc/generic/pst-func/README
+++ b/Master/texmf-dist/doc/generic/pst-func/README
@@ -12,6 +12,11 @@ pst-func: plotting special mathematical functions:
-- psPoisson
-- psBinomial
-- psBinomialN
+-- psFDist for F-distribution
+-- psGammaDist
+-- psChiIIDist
+-- psTDist for Student's t-distribution
+-- psBetaDist for Beta distribution
-- psLame (Lam\`e\ Curve -- a superellipse)
-- psplotImp (plotting implicit defined functions)
-- psVolume (rotating f(x) around the x-axis)
@@ -31,4 +36,4 @@ be part of your local TeX installation, otherwise get it from a
CTAN server, f.ex. ftp://ftp.ctan.org
PSTricks is PostScript Tricks, the documentation cannot be run
-with pdftex, use the sequence latex->dvips->ps2pdf. \ No newline at end of file
+with pdftex, use the sequence latex->dvips->ps2pdf.
diff --git a/Master/texmf-dist/doc/generic/pst-func/pst-func-doc.bib b/Master/texmf-dist/doc/generic/pst-func/pst-func-doc.bib
index b69387bdb29..03605872ec3 100644
--- a/Master/texmf-dist/doc/generic/pst-func/pst-func-doc.bib
+++ b/Master/texmf-dist/doc/generic/pst-func/pst-func-doc.bib
@@ -57,16 +57,16 @@
gezeigt. }
}
-@Book{companion,
- author = {Michel Goosens and Frank Mittelbach and Alexander
- Samarin},
+@Book{tlgc2,
+ author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Denis Roegel and Herbert Vo{\ss}},
title = {The {\LaTeX} {G}raphics {C}ompanion},
publisher = {{Addison-Wesley Publishing Company}},
- year = {2004},
- edition = {2.},
+ edition = second,
+ year = {2007},
address = {Reading, Mass.}
}
+
@Book{voss:chaos,
author = {Herbert Vo{\ss}},
title = {Chaos und {F}raktale selbst programmieren: von {M}andelbrotmengen
@@ -148,3 +148,11 @@
year = {2006},
address = {Poing}
}
+
+@Manual{wolfram,
+ author = {Eric Weisstein},
+ title = {Wolfram MathWorld},
+ publisher = {{Wolfram}},
+ year = {2007},
+ address = {\url{http://mathworld.wolfram.com}}
+}
diff --git a/Master/texmf-dist/doc/generic/pst-func/pst-func-doc.pdf b/Master/texmf-dist/doc/generic/pst-func/pst-func-doc.pdf
index e4a9995332f..4f55989f8ed 100644
--- a/Master/texmf-dist/doc/generic/pst-func/pst-func-doc.pdf
+++ b/Master/texmf-dist/doc/generic/pst-func/pst-func-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/pst-func/pst-func-doc.tex b/Master/texmf-dist/doc/generic/pst-func/pst-func-doc.tex
index a1be51a8928..30846a8a4ba 100644
--- a/Master/texmf-dist/doc/generic/pst-func/pst-func-doc.tex
+++ b/Master/texmf-dist/doc/generic/pst-func/pst-func-doc.tex
@@ -1,19 +1,25 @@
-\documentclass[a4paper,11pt]{article}
+\documentclass[dvips,a4paper,11pt,english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
-%\usepackage{pamathx}
-\usepackage{mathpazo}
+\usepackage{pamathx}% use this if you have the palatino math font
+%\usepackage{mathpazo}% use this if you do not have the palatino math font
\usepackage{url}
\usepackage{amsmath}
\usepackage{tabularx}
\usepackage{longtable}
+%\usepackage{fancyhdr}
+%\pagestyle{fancy}
\usepackage{pstricks}
\usepackage{pst-func}
\let\pstFuncFV\fileversion
\usepackage{pst-math}
\usepackage{pstricks-add}% for the alg parser
+\usepackage{babel}
\usepackage{showexpl}
-\lstset{pos=t,wide=true}
+\lstset{pos=t,wide=true,language=PSTricks,
+ morekeywords={psGammaDist,psChiIIDist,psTDist,psFDist,psBetaDist,psPlotImpl}}
+\lstdefinestyle{syntax}{backgroundcolor=\color{blue!20},numbers=none,xleftmargin=0pt,xrightmargin=0pt,
+ frame=single}
%
\usepackage{xspace}
\def\PS{PostScript\xspace}
@@ -25,21 +31,36 @@
\usepackage[colorlinks,linktocpage]{hyperref}
%
\begin{document}
-\title{\texttt{pst-func}\\plotting special mathematical functions\\
- \small v.\pstFuncFV}
+\title{\texttt{pst-func}\\[1cm]
+plotting special mathematical functions\\[5mm]
+ {\small v.\pstFuncFV}}
%\thanks{%
% This document was written with \texttt{Kile: 1.6a (Qt: 3.1.1; KDE: 3.1.1;}
% \protect\url{http://sourceforge.net/projects/kile/}) and the PDF output
% was build with VTeX/Free (\protect\url{http://www.micropress-inc.com/linux})}\\
\author{Herbert Vo\ss\thanks{%
-%%JF
-%Thanks to: Attila Gati and to John Frampton.
-Thanks to: Attila Gati, John Frampton and Lars Kotthoff, Jose-Emilio Vila-Forcen.
+Thanks to:
+ \mbox{Martin Chicoine},
+ \mbox{Gerry Coombes},
+ \mbox{John Frampton},
+ \mbox{Attila Gati},
+ \mbox{Lars Kotthoff},
+ and \mbox{Jose-Emilio Vila-Forcen}.
}}
\date{\today}
\maketitle
+\vfill
+\begin{center}
+\fbox{\parbox{0.8\textwidth}{%
+\texttt{pst-func} loads by default the following packages: \texttt{pst-plot},
+\texttt{pstricks-add}, \texttt{pst-math}, \texttt{pst-xkey}, and, of course \texttt{pstricks}.
+All should be already part of your local \TeX\ installation. If not, or in case
+of having older versions, go to \url{http://www.CTAN.org/} and load the newest version.}}
+\end{center}
+\vfill
+\clearpage
\tableofcontents
\clearpage
@@ -54,9 +75,10 @@ f^{\prime\prime}(x) &= 2a_2 + 6a_3x + \ldots +(n-1)(n-2)a_{n-1}x^{n-3} + n(n-1)a
\noindent so \verb+pst-func+ needs only the coefficients of the
polynomial to calculate the function. The syntax is
-\begin{verbatim}
+
+\begin{lstlisting}[style=syntax]
\psPolynomial[<options>]{xStart}{xEnd}
-\end{verbatim}
+\end{lstlisting}
With the option \verb+xShift+ one can do a horizontal shift to the graph of the function. With another
than the predefined value the macro replaces $x$ by $x-x\mathrm{Shift}$; \verb+xShift=1+
@@ -236,9 +258,10 @@ s(x) = \frac{a_0}{2} & + a_1\cos{\omega x} + a_2\cos{2\omega x} +
\noindent The macro \verb+psFourier+ plots Fourier sums. The
syntax is similiar to \verb+psPolynomial+, except that there are
two kinds of coefficients:
-\begin{verbatim}
+
+\begin{lstlisting}[style=syntax]
\psPolynomial[cosCoeff=a0 a1 a2 ..., sinCoeff=b1 b2 ...]{xStart}{xEnd}
-\end{verbatim}
+\end{lstlisting}
The coefficients must have the orders $a_0\ a_1\ a_2\ \ldots$
and $b_1\ b_2\ b_3\ \ldots$ and be separated by
\textbf{spaces}. The default is \verb+cosCoeff=0,sinCoeff=1+,
@@ -288,19 +311,20 @@ J_n(x) &=\frac{1}{\pi}\int_0^\pi\cos(x\sin t-nt)\dt\\
\end{align}
\noindent The syntax of the macro is
-\begin{verbatim}
+
+\begin{lstlisting}[style=syntax]
\psBessel[options]{order}{xStart}{xEnd}
-\end{verbatim}
+\end{lstlisting}
There are two special parameters for the Bessel function, and also the
settings of many \verb+pst-plot+ or \verb+pstricks+ parameters
affect the plot.
-\begin{verbatim}
+\begin{lstlisting}[style=syntax]
\def\psset@constI#1{\edef\psk@constI{#1}}
\def\psset@constII#1{\edef\psk@constII{#1}}
\psset{constI=1,constII=0}
-\end{verbatim}
+\end{lstlisting}
These two "'constants"` have the following meaning:
\[
@@ -309,9 +333,10 @@ f(t) = constI \cdot J_n + constII
\noindent
where $constI$ and $constII$ must be real PostScript expressions, e.g.:
-\begin{verbatim}
+
+\begin{lstlisting}[style=syntax]
\psset{constI=2.3,constII=t k sin 1.2 mul 0.37 add}
-\end{verbatim}
+\end{lstlisting}
The Bessel function is plotted with the parametricplot macro, this is the
reason why the variable is named \verb+t+. The internal procedure \verb+k+
@@ -370,11 +395,12 @@ The integral sin and cosin are defined as
\end{align}
%
\noindent The syntax of the macros is
-\begin{verbatim}
+
+\begin{lstlisting}[style=syntax]
\psSi[options]{xStart}{xEnd}
\pssi[options]{xStart}{xEnd}
\psCi[options]{xStart}{xEnd}
-\end{verbatim}
+\end{lstlisting}
\begin{LTXexample}[pos=t]
@@ -427,11 +453,12 @@ value of $x$ in the plot. The third one uses the \CMD{psIntegral} macro to perfo
to the convolution, where the integration is performed from $a$ to $b$.
The syntax of these macros is:
-\begin{verbatim}
+
+\begin{lstlisting}[style=syntax]
\psIntegral[<options>]{xStart}{xEnd}(a,b){ function }
\psCumIngegral[<options>]{xStart}{xEnd}{ function }
\psConv[<options>]{xStart}{xEnd}(a,b){ function f }{ function g }
-\end{verbatim}
+\end{lstlisting}
In the first macro, the function should be created such that it accepts two values: \verb|<x t function>|
should be a value. For the second and the third functions, they only need to accept one
@@ -475,7 +502,24 @@ The result (in red) is a trapezoid function.
\clearpage
\section{Distributions}
-\subsection{Normal Distribution (Gauss)}
+All distributions which use the $\Gamma$- or $\ln\Gamma$-function need the \verb+pst-math+ package,
+it defines the PostScript functions \verb+GAMMA+ and \verb+GAMMALN+. \verb+\pst-func+ reads by default the PostScript
+file \verb+pst-math.pro+. It is part of any \TeX\ distribution and should also be on
+your system, otherwise install or update it from \textsc{CTAN}. It must the latest version.
+
+\begin{LTXexample}[pos=l,width=7cm]
+\begin{pspicture*}(-0.5,-0.5)(6.2,5.2)
+ \psaxes{->}(0,0)(6,5)
+ \psset{plotpoints=100,linewidth=1pt}
+ \psplot[linecolor=red]{0.01}{4}{ x GAMMA }
+ \psplot[linecolor=blue]{0.01}{5}{ x GAMMALN }
+\end{pspicture*}
+\end{LTXexample}
+
+
+
+
+\subsection{Normal distribution (Gauss)}
The Gauss function is defined as
%
\begin{align}
@@ -483,18 +527,12 @@ f(x) &= \dfrac{1}{\sigma\sqrt{2\pi}}\,e^{-\dfrac{\left(x-\mu\right)^2}{2\sigma{}
\end{align}
%
\noindent The syntax of the macros is
-\begin{verbatim}
+
+\begin{lstlisting}[style=syntax]
\psGauss[options]{xStart}{xEnd}
\psGaussI[options]{xStart}{xEnd}
-\end{verbatim}
+\end{lstlisting}
-%%JF
-%% comment, the angle brackets below, around "value", make sense
-%% as a convention, so I left them in
-%
-%\noindent where the only new parameter is \verb+sigma=<value>+, with
-%the default of \verb+0.5+ and can also be set in the usual way with
-%\verb+\psset+. It is only valid for the \verb+psGauss+-macro.
\noindent where the only new parameter are \verb+sigma=<value>+ and \verb+mue=<value>+ for the
horizontal shift,
which can also be set in the usual way with \verb+\psset+. It is
@@ -503,7 +541,8 @@ significant only for the \verb+psGauss+- and \verb+\psGaussI+-macro. The default
and has one special option, called \verb+Simpson+, which defines the number of intervalls per step
and is predefined with 5.
-\bgroup
+
+\begin{LTXexample}[pos=t,preset=\centering,wide=true]
\psset{yunit=4cm,xunit=3}
\begin{pspicture}(-2,-0.2)(2,1.4)
% \psgrid[griddots=10,gridlabels=0pt, subgriddiv=0]
@@ -517,27 +556,10 @@ and is predefined with 5.
\psGauss[linecolor=cyan, mue=0.5, linewidth=2pt]{-1.75}{1.75}%
\psGauss[sigma=1, linecolor=blue, linewidth=2pt]{-1.75}{1.75}
\end{pspicture}
-\egroup
-
-
-\begin{lstlisting}[xrightmargin=-2cm]
-\psset{yunit=4cm,xunit=3}
-\begin{pspicture}(-2,-0.5)(2,1.25)
-% \psgrid[griddots=10,gridlabels=0pt, subgriddiv=0]
- \psaxes[Dy=0.25]{->}(0,0)(-2,0)(2,1.25)
- \uput[-90](6,0){x}\uput[0](0,1){y}
- \rput[lb](1,0.75){\textcolor{red}{$\sigma =0.5$}}
- \rput[lb](1,0.5){\textcolor{blue}{$\sigma =1$}}
- \rput[lb](-2,0.5){$f(x)=\dfrac{1}{\sigma\sqrt{2\pi}}\,e^{-\dfrac{(x-x_0)^2}{2\sigma{}^2}}$}
- \psGauss[linecolor=red, linewidth=2pt]{-1.75}{1.75}%
- \psGaussI[linewidth=1pt,yunit=0.75cm]{-2}{2}%
- \psGauss[linecolor=cyan, mue=0.5, linewidth=2pt]{-1.75}{1.75}%
- \psGauss[sigma=1, linecolor=blue, linewidth=2pt]{-1.75}{1.75}
-\end{pspicture}
-\end{lstlisting}
+\end{LTXexample}
-\subsection{Binomial Distribution}\label{sec:bindistri}
+\subsection{Binomial distribution}\label{sec:bindistri}
These two macros plot binomial distribution, \CMD{psBinomialN} the normalized one. It is always
done in the $x$-Intervall $[0;1]$.
@@ -556,10 +578,21 @@ P_p(n|N) &= \binom{N}{n}p^nq^{N-n} \\
where $(N; n)$ is a binomial coefficient and $P$ the probability.
The syntax is quite easy:
-\begin{verbatim}
+
+\begin{lstlisting}[style=syntax]
\psBinomial[<options>]{N}{probability p}
+\psBinomial[<options>]{m,N}{probability p}
+\psBinomial[<options>]{m,n,N}{probability p}
\psBinomialN[<options>]{N}{probability p}
-\end{verbatim}
+\end{lstlisting}
+
+\begin{itemize}
+\item with one argument $N$ the sequence $0\ldots N$ is calculated and plotted
+\item with two arguments $m,N$ the sequence $0\ldots N$ is calculated and
+ the sequence $m\ldots N$ is plotted
+\item with three arguments $m,n,N$ the sequence $0\ldots N$ is calculated and
+ the sequence $m\ldots n$ is plotted
+\end{itemize}
There is a restriction in using the value for N. It depends to the probability, but in general
one should expect problems with $N>100$. PostScript cannot handle such small values and there will
@@ -583,7 +616,7 @@ the macro \CMD{psBinomial} and not for the normalized one!
\begin{LTXexample}[pos=t,preset=\centering]
\psset{xunit=1cm,yunit=10cm}%
-\begin{pspicture}(-1,-0.1)(8,0.6)%
+\begin{pspicture}(-1,-0.05)(8,0.6)%
\psaxes[Dy=0.2,dy=0.2\psyunit]{->}(0,0)(-1,0)(8,0.5)
\uput[-90](8,0){$k$} \uput[90](0,0.5){$P(X=k)$}
\psBinomial[linecolor=red,markZeros,printValue,fillstyle=solid,
@@ -593,16 +626,26 @@ the macro \CMD{psBinomial} and not for the normalized one!
\begin{LTXexample}[pos=t,preset=\centering]
+\psset{xunit=1cm,yunit=10cm}%
+\begin{pspicture}(-1,-0.05)(8,0.6)%
+\psaxes[Dy=0.2,dy=0.2\psyunit]{->}(0,0)(-1,0)(8,0.5)
+\uput[-90](8,0){$k$} \uput[90](0,0.5){$P(X=k)$}
+\psBinomial[linecolor=black!30]{0,7}{0.6}
+\psBinomial[linecolor=blue,markZeros,printValue,fillstyle=solid,
+ fillcolor=blue,barwidth=0.4]{2,5,7}{0.6}
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[pos=t,preset=\centering]
\psset{xunit=0.25cm,yunit=10cm}
-\begin{pspicture*}(-1,-0.1)(61,0.52)
+\begin{pspicture*}(-1,-0.05)(61,0.52)
\psaxes[Dx=5,dx=5\psxunit,Dy=0.2,dy=0.2\psyunit]{->}(60,0.5)
\uput[-90](60,0){$k$} \uput[0](0,0.5){$P(X=k)$}
\psBinomial[markZeros,linecolor=red]{4}{.5}
\psset{linewidth=1pt}
-\psBinomial[linecolor=green]{5}{.5}
-\psBinomial[linecolor=blue]{10}{.5}
-\psBinomial[linecolor=red]{20}{.5}
-\psBinomial[linecolor=magenta]{50}{.5}
+\psBinomial[linecolor=green]{5}{.5} \psBinomial[linecolor=blue]{10}{.5}
+\psBinomial[linecolor=red]{20}{.5} \psBinomial[linecolor=magenta]{50}{.5}
\psBinomial[linecolor=cyan]{75}{.5}
\end{pspicture*}
\end{LTXexample}
@@ -674,8 +717,10 @@ valid vor \CMD{psBinomialN}. The option \verb+showpoints+ is valid if \verb+curv
\end{LTXexample}
-\subsection{Poisson Distribution}
-Given a Poisson process\footnote{\url{http://mathworld.wolfram.com/PoissonProcess.html}}, the probability of obtaining exactly $n$ successes in $N$ trials is given by the limit of a binomial distribution (see Section~\ref{sec:bindistri})
+\subsection{Poisson distribution}
+Given a Poisson process\footnote{\url{http://mathworld.wolfram.com/PoissonProcess.html}},
+the probability of obtaining exactly $n$ successes in $N$ trials is given by the
+limit of a binomial distribution (see Section~\ref{sec:bindistri})
%
\begin{align}
P_p(n|N) &= \frac{N!}{n!(N-n)!}\cdot p^n(1-p)^{N-n}\label{eq:normaldistri}
@@ -688,7 +733,7 @@ Viewing the distribution as a function of the expected number of successes
\end{align}
%
instead of the sample size $N$ for fixed $p$, equation (2) then becomes
-eq.~\ref{normaldistri}
+eq.~\ref{eq:normaldistri}
%
\begin{align}\label{eq:nuN}
P_{\frac{\lambda}{n}}(n|N) &= \frac{N!}{n!(N-n)!}{\frac{\lambda}{N}}^n {\frac{1-\lambda}{N}}^{N-n}
@@ -698,7 +743,8 @@ Viewing the distribution as a function of the expected number of successes
%
\[ P_\lambda(X=k)=\frac{\lambda^k}{k!}\,e^{-\lambda} \]
%
-Letting the sample size become large ($N\to\infty$), the distribution then approaches (with $p=\frac{\lambda}{n}$)
+Letting the sample size become large ($N\to\infty$), the distribution then
+approaches (with $p=\frac{\lambda}{n}$)
%
\begin{align}
\lim_{n\to\infty} P(X=k) &= \lim_{n\to\infty}\frac{n!}{(n-k)!\,k!}
@@ -716,9 +762,13 @@ Letting the sample size become large ($N\to\infty$), the distribution then appr
%
which is known as the Poisson distribution and has the follwing syntax:
-{\ttfamily
-\textbackslash psPoisson[settings]\{N\}\{$\lambda$\}
-}
+
+\begin{lstlisting}[style=syntax]
+\psPoisson[settings]{N}{lambda}
+\psPoisson[settings]{M,N}{lambda}
+\end{lstlisting}
+
+in which \texttt{M} is an optional argument with a default of 0.
\begin{LTXexample}[pos=t,preset=\centering]
@@ -731,6 +781,214 @@ which is known as the Poisson distribution and has the follwing syntax:
\end{pspicture}
\end{LTXexample}
+\begin{LTXexample}[pos=t,preset=\centering]
+\psset{xunit=1cm,yunit=20cm}%
+\begin{pspicture}(-1,-0.05)(14,0.25)%
+\uput[-90](14,0){$k$} \uput[90](0,0.2){$P(X=k)$}
+\psPoisson[printValue,valuewidth=20]{2,11}{6} % M,N lambda
+\psaxes[Dy=0.1,dy=0.1\psyunit]{->}(0,0)(-1,0)(14,0.2)
+\end{pspicture}
+\end{LTXexample}
+
+
+\clearpage
+\subsection{Gamma distribution}
+A gamma distribution is a general type of statistical distribution that is related
+to the beta distribution and arises naturally in processes for which the waiting
+times between Poisson distributed events are relevant. Gamma distributions have
+two free parameters, labeled alpha and beta.
+The gamma distribution with parameters $\alpha$, $\beta$ is defined as
+\[
+f(x)=\frac{\beta(\beta x)^{\alpha-1}e^{-\beta x}}{\Gamma(\alpha)} \qquad
+\text{for $x>0$ and $\alpha$, $\beta>0$}\]
+%
+and has the syntax
+
+\begin{lstlisting}[style=syntax]
+\psGammaDist[options]{x0}{x1}
+\end{lstlisting}
+
+\begin{LTXexample}[pos=t,preset=\centering]
+\psset{xunit=1.2cm,yunit=10cm,plotpoints=200}
+\begin{pspicture*}(-0.75,-0.05)(9.5,0.6)
+ \psGammaDist[linewidth=1pt,linecolor=red]{0.01}{9}
+ \psGammaDist[linewidth=1pt,linecolor=blue,alpha=0.3,beta=0.7]{0.01}{9}
+ \psaxes[Dy=0.1]{->}(0,0)(9.5,.6)
+\end{pspicture*}
+\end{LTXexample}
+
+
+\clearpage
+\subsection{$\chi^2$-distribution}
+The $\chi^2$-distribution is a continuous probability distribution. It
+usually arises when a k-dimensional vector's orthogonal components are
+independent and each follow a standard normal distribution.
+The length of the vector will then have a $\chi^2$-distribution.
+
+\iffalse
+If Y_i have normal independent distributions with mean 0 and variance 1, then
+chi^2=sum_(i==1)^rY_i^2
+(1)
+
+is distributed as chi^2 with r degrees of freedom. This makes a chi^2 distribution
+a gamma distribution with theta=2 and alpha=r/2, where r is the number of degrees of freedom.
+
+More generally, if chi_i^2 are independently distributed according to a chi^2
+distribution with r_1, r_2, ..., r_k degrees of freedom, then
+sum_(j==1)^kchi_j^2
+
+is distributed according to chi^2 with r=sum_(j==1)^(k)r_j degrees of freedom.
+\fi
+
+The $\chi^2$ with parameter $\nu$ is the same as a Gamma distribution
+ with $\alpha=\nu/2$ and $\beta=1/2$ and the syntax
+
+\begin{lstlisting}[style=syntax]
+\psChiIIDist[options]{x0}{x1}
+\end{lstlisting}
+
+\begin{LTXexample}[pos=t,preset=\centering]
+\psset{xunit=1.2cm,yunit=10cm,plotpoints=200}
+\begin{pspicture*}(-0.75,-0.05)(9.5,.65)
+ \multido{\rnue=0.5+0.5,\iblue=0+10}{10}{%
+ \psChiIIDist[linewidth=1pt,linecolor=blue!\iblue,nue=\rnue]{0.01}{9}}
+ \psaxes[Dy=0.1]{->}(0,0)(9.5,.6)
+\end{pspicture*}
+\end{LTXexample}
+
+\iffalse
+The cumulative distribution function is
+\begin{align*}
+D_r(\chi^2) &= int_0^{\chi^2}\frac{t^{r/2-1}e^{-t/2}\mathrm{d}t}{\Gamma(1/2r)2^{r/2}} \\
+
+ &= 1-\frac{\Gamma(1/2r,1/2\chi^2)}{\Gamma(1/2r)}
+\end{align*}
+\fi
+
+
+
+%The $\chi^2_\nu$-distribution has mode $\nu-2$ for $\nu\geq2$.
+
+\clearpage
+\subsection{Student's $t$-distribution}
+
+A statistical distribution published by William Gosset in 1908 under his %. His employer, Guinness Breweries,
+%required him to publish under a
+pseudonym %, so he chosed
+"`Student"'.
+%Given N independent measurements x_i, let
+%t=(x^_-mu)/(s/sqrt(N)),
+The $t$-distribution with parameter $\nu$ has the density function
+\[
+f(x)=\frac1{\sqrt{\nu\pi}}\cdot
+ \frac{\Gamma[(\nu+1)/2]}{\Gamma(\nu/2)}\cdot\frac1{[1+(x^2/\nu)]^{(\nu+1)/2}} \qquad
+\text{for $-\infty<x<\infty$ and $\nu>0$}\]
+%
+and the following syntax
+
+\begin{lstlisting}[style=syntax]
+\psTDist[options]{x0}{x1}
+\end{lstlisting}
+
+
+\begin{LTXexample}[pos=t,preset=\centering]
+\psset{xunit=1.25cm,yunit=10cm}
+\begin{pspicture}(-6,-0.1)(6,.5)
+ \psaxes[Dy=0.1]{->}(0,0)(-4.5,0)(5.5,0.5)
+ \psset{linewidth=1pt,plotpoints=100}
+ \psGauss[mue=0,sigma=1]{-4.5}{4.5}
+ \psTDist[linecolor=blue]{-4}{4}
+ \psTDist[linecolor=red,nue=4]{-4}{4}
+\end{pspicture}
+\end{LTXexample}
+
+
+%The $t_\nu$-distribution has mode 0.
+
+\clearpage
+\subsection{$F$-distribution}
+A continuous statistical distribution which arises in the testing of
+whether two observed samples have the same variance.
+
+The F-distribution with parameters $\mu$ and $\nu$ has the probability function
+\[
+f_{n,m}(x)=\frac{\Gamma[(\mu+\nu)/2]}{\Gamma(\mu/2)\Gamma(\nu/2)}\cdot
+ \left(\mu/\nu\right)^{\mu/2}\frac{x^{(\mu/2)-1}}{[1+(\mu x/\nu)]^{(\mu+\nu)/2}}\quad
+\text{ for $x>0$ and $\mu$, $\nu>0$}\]
+%
+and the syntax
+
+\begin{lstlisting}[style=syntax]
+\psFDist[options]{x0}{x1}
+\end{lstlisting}
+%
+The default settings are $\mu=1$ and $\nu=1$.
+
+\begin{LTXexample}[pos=t,preset=\centering]
+\psset{xunit=2cm,yunit=10cm,plotpoints=100}
+\begin{pspicture*}(-0.5,-0.07)(5.5,0.8)
+ \psline[linestyle=dashed](0.5,0)(0.5,0.75)
+ \psline[linestyle=dashed](! 2 7 div 0)(! 2 7 div 0.75)
+ \psset{linewidth=1pt}
+ \psFDist{0.1}{5}
+ \psFDist[linecolor=red,nue=3,mue=12]{0.01}{5}
+ \psFDist[linecolor=blue,nue=12,mue=3]{0.01}{5}
+ \psaxes[Dy=0.1]{->}(0,0)(5,0.75)
+\end{pspicture*}
+\end{LTXexample}
+
+
+\clearpage
+\subsection{Beta distribution}
+
+A general type of statistical distribution which is related to the gamma distribution.
+Beta distributions have two free parameters, which are labeled according to one of two
+notational conventions. The usual definition calls these $\alpha$ and $\beta$, and the other
+uses $\beta^\prime=\beta-1$ and $\alpha^\prime=\alpha-1$. The beta distribution is
+used as a prior distribution for binomial proportions in Bayesian analysis.
+%
+%The plots are for various values of ($\alpha,\beta$) with $\alpha=1$ and $\beta$ ranging from 0.25 to 3.00.
+%
+The domain is [0,1], and the probability function P(x) is given by
+%
+\[
+P(x) = \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)}(1-x)^{\beta-1}x^{\alpha-1}
+\quad\text{ $\alpha,\beta>0$}
+\]
+%
+and has the syntax (with a default setting of $\alpha=1$ and $\beta=1$):
+
+\begin{lstlisting}[style=syntax]
+\psBetaDist[options]{x0}{x1}
+\end{lstlisting}
+%
+
+
+\begin{LTXexample}[pos=t,preset=\centering]
+\psset{xunit=10cm,yunit=5cm}
+\begin{pspicture*}(-0.1,-0.1)(1.1,2.05)
+ \psset{linewidth=1pt}
+ \multido{\rbeta=0.25+0.25,\ired=0+5,\iblue=50.0+-2.5}{20}{%
+ \psBetaDist[beta=\rbeta,linecolor=red!\ired!blue!\iblue]{0.01}{0.99}}
+ \psaxes[Dy=0.2,Dx=0.1]{->}(0,0)(1,2.01)
+\end{pspicture*}
+\end{LTXexample}
+
+
+\iffalse
+\clearpage
+\subsection{Bose-Einstein distribution}
+A distribution which arises in the study of integer spin particles in physics,
+\[
+P(x)=\frac{x^s}{e^{x-mu}-1}\qquad\text{with $s\in\mathbb{Z}$ and $\mu\in\mathbb{R}}
+\]
+%
+and has the syntax (with a default setting of $s=1$ and $\mu=1$):
+
+\begin{lstlisting}[style=syntax]
+\psBoseEInsteinDist[options]{x0}{x1}
+\end{lstlisting}
+\fi
\clearpage
@@ -777,9 +1035,9 @@ If $r$ is a rational, then a superellipse is algebraic. However, for irrational
it is transcendental. For even integers $r=n$, the curve becomes closer to a
rectangle as $n$ increases. The syntax of the \verb+\psLame+ macro is:
-\begin{verbatim}
+\begin{lstlisting}[style=syntax]
\psLame[settings]{r}
-\end{verbatim}
+\end{lstlisting}
It is internally ploted as a parametric plot with $0\le\alpha\le360$. Available keywords
are \verb+radiusA+ and \verb+radiusB+, both are preset to 1, but can have any valid value
@@ -811,9 +1069,9 @@ pixel needs $120$ thousand calculations of the function value. The user still de
this area in his own coordinates, the translation into pixel (pt) is done internally by the
macro.
-\begin{verbatim}
+\begin{lstlisting}[style=syntax]
\psplotImp[<options>](xMin,yMin)(xMax,yMax){<function f(x,y)>}
-\end{verbatim}
+\end{lstlisting}
The function must be of $f(x,y)=0$ and described in PostScript code, or alternatively with
the option \verb+algebraic+ (\verb+pstricks-add+) in an algebraic form. No other value names than $x$ and $y$
@@ -901,9 +1159,9 @@ for polar plots are also possible (see next example).
This macro shows the behaviour of a rotated function around the x-axis.
-\begin{verbatim}
+\begin{lstlisting}[style=syntax]
\psVolume[<options>](xMin,xMax){<steps>}{<function f(x)>}
-\end{verbatim}
+\end{lstlisting}
$f(x)$ has to be described as usual for the macro psplot.
@@ -1023,9 +1281,10 @@ $f(x)$ has to be described as usual for the macro psplot.
\section{\CMD{psPrintValue}}\label{sec:printValue}
This new macro allows to print single values of a math function. It has the syntax
-\begin{verbatim}
+
+\begin{lstlisting}[style=syntax]
\psPrintValue[<options>]{<PostScript code>}
-\end{verbatim}
+\end{lstlisting}
Important is the fact, that \CMD{psPrintValue} works on \PS\ side. For \TeX\ it is only a box of
zero dimension. This is the reason why you have to put it into a box, which reserves horizontal
@@ -1074,13 +1333,14 @@ valuewidth & <number> & 10 & the width of the string for the converted
\section{Credits}
-Denis Girou | Manuel Luque | Timothy Van Zandt
-
+Gerry Coombes | Denis Girou | Christophe Jorssen | Manuel Luque | Timothy Van Zandt
+\bgroup
+\raggedright
\nocite{*}
\bibliographystyle{plain}
\bibliography{pst-func-doc}
-
+\egroup
\end{document}
diff --git a/Master/texmf-dist/dvips/pst-func/pst-func.pro b/Master/texmf-dist/dvips/pst-func/pst-func.pro
index 56b43d8c605..df17f4578d6 100644
--- a/Master/texmf-dist/dvips/pst-func/pst-func.pro
+++ b/Master/texmf-dist/dvips/pst-func/pst-func.pro
@@ -15,7 +15,7 @@
%% `pst-func' is a PSTricks package to plot special math functions
%%
%%
-%% version 0.06 / 2006-04-16 Herbert Voss <voss _at_ pstricks.de>
+%% version 0.07 / 2007-08-30 Herbert Voss <voss _at_ pstricks.de>
%
/tx@FuncDict 100 dict def
tx@FuncDict begin
@@ -188,6 +188,20 @@ tx@FuncDict begin
} for
/I a SFunc b SFunc add s1 4 mul add s2 2 mul add 3 div h mul def
} def
+%
+/LogGamma { 5 dict begin % z on stack
+ /z ED
+ /sum 0 def
+ /k 1 def
+ {
+ z k div dup 1 add ln sub dup
+ abs eps8 lt { pop exit } if
+ sum add /sum exch def
+ /k k 1 add def
+ } loop
+ sum z ln sub CEuler z mul sub
+ end
+} def
%
% subroutines for complex numbers, given as an array [a b]
@@ -325,4 +339,5 @@ tx@FuncDict begin
/cxconv { % theta
RadtoDeg dup sin exch cos cxmake2
} def
+%
end
diff --git a/Master/texmf-dist/tex/generic/pst-func/pst-func.tex b/Master/texmf-dist/tex/generic/pst-func/pst-func.tex
index ab399eb9ec9..2d0dcae366e 100644
--- a/Master/texmf-dist/tex/generic/pst-func/pst-func.tex
+++ b/Master/texmf-dist/tex/generic/pst-func/pst-func.tex
@@ -28,11 +28,12 @@
% interface to the `xkeyval' package
\pst@addfams{pst-func}
-\def\fileversion{0.49}
-\def\filedate{2007/12/23}
+\def\fileversion{0.50}
+\def\filedate{2007/08/27}
\message{`PST-func' v\fileversion, \filedate\space (hv)}
%
\pstheader{pst-func.pro}
+\pstheader{pst-math.pro}% for GAMMALN
%
\define@key[psset]{pst-func}{xShift}{\def\psk@xShift{#1}}
\psset[pst-func]{xShift=0}
@@ -195,7 +196,8 @@
%
\define@key[psset]{pst-func}{sigma}{\def\psk@sigma{#1 }}
\define@key[psset]{pst-func}{mue}{\def\psk@mue{#1 }}
-\psset[pst-func]{sigma=0.5,mue=0}
+\define@key[psset]{pst-func}{nue}{\def\psk@nue{#1 }}
+\psset[pst-func]{sigma=0.5,mue=0,nue=1}
%
\def\psGauss{\@ifnextchar[{\psGauss@i}{\psGauss@i[]}}
\def\psGauss@i[#1]#2#3{{%
@@ -386,26 +388,44 @@
\psset[pst-func]{printValue=false,barwidth=1}
%
\def\psBinomial{\pst@object{psBinomial}}
-\def\psBinomial@i#1#2{%
+\def\psBinomial@i#1#2{\psBinomial@ii#1,,,\@nil{#2}}%
+\def\psBinomial@ii#1,#2,#3,#4\@nil#5{%
+ \def\pst@tempA{#2}%
+ \ifx\pst@tempA\@empty
+ \psBinomial@iii{0}{#1}{#1}{#5}%
+ \else
+ \def\pst@tempA{#3}%
+ \ifx\pst@tempA\@empty\psBinomial@iii{#1}{#2}{#2}{#5}%
+ \else\psBinomial@iii{#1}{#2}{#3}{#5}\fi
+ \fi}%
+\def\psBinomial@iii#1#2#3#4{%
\begin@SpecialObj%
\addto@pscode{
/scx { \pst@number\psxunit mul } def
/scy { \pst@number\psyunit mul } def
- /N #1 def
- /p #2 def
+ /m #1 def
+ /n #2 def
+ /N #3 def
+ /p #4 def
/dx \psFunc@barwidth 2 div def
/q 1 p sub def
- /kOld dx neg def
+ /kOld dx neg m add def
kOld scx 0 moveto % starting point
-% /Y 1 def % start value
- 0 1 N { % N times
+ 0 1 m 1 sub {
+ /k exch def % save loop variable
+ k 0 eq
+ { /Y q N exp def }
+ { /Y Y N k sub 1 add mul k div p mul q div def }
+ ifelse
+ } for
+ m 1 n { % n-m+1 times
/k exch def % save loop variable
k 0 eq
{ /Y q N exp def }
{ /Y Y N k sub 1 add mul k div p mul q div def }
ifelse % recursive definition
- kOld scx 0 L kOld scx Y scy L k dx add scx Y scy L
- \ifPst@markZeros k dx add scx 0 L \fi
+ kOld scx Y scy L k dx add scx Y scy L
+ \ifPst@markZeros k dx add scx 0 L kOld 1 add scx 0 L \fi
\ifPst@printValue
gsave \psk@PSfont findfont \psk@fontscale scalefont setfont
Y \psk@valuewidth string cvs
@@ -417,11 +437,10 @@
} for
\ifPst@markZeros\else k dx add scx 0 L \fi % last line down to x-axis
}%
- \psk@fillstyle
- \pst@stroke
+ \psk@fillstyle%
+ \pst@stroke%
\end@SpecialObj%
-}
-%
+}%
\def\psBinomialN{\pst@object{psBinomialN}}
\def\psBinomialN@i#1#2{%
\pst@killglue
@@ -476,24 +495,33 @@
\ignorespaces%
}
%
-\def\psPoisson{\pst@object{psPoisson}}
-\def\psPoisson@i#1#2{%
+\def\psPoisson{\pst@object{psPoisson}}% with contributions from Gerry Coombes
+\def\psPoisson@i#1#2{\psPoisson@ii#1,,\@nil{#2}}%
+\def\psPoisson@ii#1,#2,#3\@nil#4{%
+ \def\pst@tempA{#2}%
+ \ifx\pst@tempA\@empty\psPoisson@iii{0}{#1}{#4}\else
+ \psPoisson@iii{#1}{#2}{#4}\fi}%
+\def\psPoisson@iii#1#2#3{% M N lambda
\begin@SpecialObj%
\addto@pscode{
/scx { \pst@number\psxunit mul } def
/scy { \pst@number\psyunit mul } def
- /N #1 def
- /lambda #2 def
- /elambda Euler #2 neg exp def % e^-lambda
+ /M #1 def
+ /N #2 def
+ /lambda #3 def
+ /elambda Euler #3 neg exp def % e^-lambda
/dx \psFunc@barwidth 2 div def
- /kOld dx neg def
- kOld scx 0 moveto % starting point
- /Y elambda def % start value
- 0 1 N { % N times
- /k exch def % save loop variable
- k 0 eq { /kFaculty 1 def }{ /kFaculty kFaculty k mul def } ifelse
- /Y lambda k exp kFaculty div elambda mul def
- kOld scx 0 L kOld scx Y scy L k dx add scx Y scy L
+ /kOld dx neg M add def % addition of M here
+ kOld scx 0 moveto % starting point
+ /Y elambda def % start value
+ 0 1 M 1 sub { % skip over first M-1 rectangles
+ /k exch def % whilst recursing probabilities
+ k 0 eq { /Y elambda def }{ /Y Y lambda mul k div def } ifelse
+ } for % nothing happens if M=0
+ M 1 N { % N-M+1 times
+ /k exch def % save loop variable
+ k 0 eq { /Y elambda def }{ /Y Y lambda mul k div def } ifelse
+ kOld scx Y scy L k dx add scx Y scy L
\ifPst@markZeros k dx add scx 0 L \fi
\ifPst@printValue
gsave \psk@PSfont findfont \psk@fontscale scalefont setfont
@@ -511,6 +539,86 @@
\end@SpecialObj%
}
%
+\define@key[psset]{pst-func}{alpha}{\pst@checknum{#1}\psk@alpha } % gamma
+\define@key[psset]{pst-func}{beta}{\pst@checknum{#1}\psk@beta } % gamma
+\psset[pst-func]{alpha=0.5,beta=0.5}
+%
+\def\psGammaDist{\pst@object{psGammaDist}}
+\def\psGammaDist@i#1#2{%
+ \ifdim#1pt<\z@ \psframebox*{\color{red}!!!\#1 must be greater than 0!!!}
+ \else
+ \addbefore@par{plotpoints=500,alpha=0.5,beta=0.5}%
+ \begin@SpecialObj
+ \psplot{#1}{#2}{
+ \psk@beta x mul \psk@alpha exp x div Euler \psk@beta neg x mul \psk@alpha GAMMALN sub exp mul}
+ \end@SpecialObj%
+ \ignorespaces%
+ \fi%
+}
+%
+\def\psBetaDist{\pst@object{psBetaDist}}
+\def\psBetaDist@i#1#2{%
+ \ifdim#1pt<\z@ \psframebox*{\color{red}!!!\#1 must be greater than 0!!!}
+ \else
+ \addbefore@par{plotpoints=200,alpha=1,beta=1}%
+ \begin@SpecialObj
+ \psplot{#1}{#2}{
+ \psk@beta \psk@alpha add GAMMA
+ \psk@beta GAMMA \psk@alpha GAMMA mul div
+ 1 x sub \psk@beta 1.0 sub exp mul
+ x \psk@alpha 1.0 sub exp mul }
+ \end@SpecialObj%
+ \ignorespaces%
+ \fi%
+}
+%
+\def\psChiIIDist{\pst@object{psChiIIDist}}
+\def\psChiIIDist@i#1#2{%
+ \addbefore@par{plotpoints=500,nue=1}%
+ \begin@SpecialObj
+% \ifdim\psk@nue pt<\z@ \psframebox*{\color{red}!!!nue must be greater than 0!!!}
+% \else
+ \psplot{#1}{#2}{%
+ x 2 div \psk@nue 2 div exp x div Euler -0.5 x mul \psk@nue 2 div GAMMALN sub exp mul }%
+% \fi%
+ \end@SpecialObj%
+ \ignorespaces%
+}
+%
+\def\psTDist{\pst@object{psTDist}}
+\def\psTDist@i#1#2{%
+ \addbefore@par{plotpoints=500}%
+ \begin@SpecialObj
+ \ifdim\psk@nue pt<\z@ \psframebox*{\color{red}!!!nue must be greater than 0!!!}
+ \else
+ \psplot{#1}{#2}{
+ 1 x 2 exp \psk@nue div 1 add \psk@nue 1 add 2 div exp div
+ \psk@nue Pi mul sqrt div
+ Euler \psk@nue 1 add 2 div GAMMALN \psk@nue 2 div GAMMALN sub exp mul
+ }%
+ \fi%
+ \end@SpecialObj%
+ \ignorespaces%
+}
+%
+\def\psFDist{\pst@object{psFDist}}
+\def\psFDist@i#1#2{%
+ \ifdim#1pt<\z@ \psframebox*{\color{red}!!!\#1 must be greater than 0!!!}
+ \else
+ \addbefore@par{plotpoints=500,mue=1}%
+ \begin@SpecialObj
+ \psplot{#1}{#2}{
+ x \psk@mue mul \psk@nue div dup \psk@mue 2 div exp x div
+ exch 1 add \psk@mue \psk@nue add 2 div exp div
+ Euler \psk@mue \psk@nue add 2 div GAMMALN
+ \psk@mue 2 div GAMMALN sub \psk@nue 2 div GAMMALN sub exp mul
+ }%
+ \end@SpecialObj%
+ \fi%
+ \ignorespaces%
+}
+
+%
% Superellipese / Lamefunction
\define@key[psset]{pst-func}{radiusA}{\pst@getlength{#1}\pst@radiusA}
\define@key[psset]{pst-func}{radiusB}{\pst@getlength{#1}\pst@radiusB}
@@ -554,10 +662,13 @@
/Func \ifPst@algebraic (#5) tx@addDict begin AlgParser end cvx \else { #5 } \fi def
\fi
/xPixel xMax xMin sub \pst@number\psxunit mul round cvi def
- /yPixel yMax yMin sub \pst@number\psxunit mul round cvi def
+ /yPixel yMax yMin sub \pst@number\psyunit mul round cvi def
/dx xMax xMin sub xPixel div def
/dy yMax yMin sub yPixel div def
- /setpixel { dy div exch dx div exch \pst@number\pslinewidth 2 div 0 360 arc fill } bind def
+ /setpixel {
+ dy div exch
+ dx div exch
+ \pst@number\pslinewidth 2 div 0 360 arc fill } bind def
%
/VZ true def % suppose that F(x,y)>=0
/x xMin def /y yMin def Func 0.0 lt { /VZ false def } if % erster Wert