summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/pstricks_calcnotes/For_Ps_Output/NewVecFld_PS.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/pstricks_calcnotes/For_Ps_Output/NewVecFld_PS.tex')
-rw-r--r--Master/texmf-dist/doc/latex/pstricks_calcnotes/For_Ps_Output/NewVecFld_PS.tex675
1 files changed, 0 insertions, 675 deletions
diff --git a/Master/texmf-dist/doc/latex/pstricks_calcnotes/For_Ps_Output/NewVecFld_PS.tex b/Master/texmf-dist/doc/latex/pstricks_calcnotes/For_Ps_Output/NewVecFld_PS.tex
deleted file mode 100644
index ae1b6eb6f59..00000000000
--- a/Master/texmf-dist/doc/latex/pstricks_calcnotes/For_Ps_Output/NewVecFld_PS.tex
+++ /dev/null
@@ -1,675 +0,0 @@
-\documentclass[11pt,a4paper,oneside]{article}
-\usepackage{calculator}
-\usepackage{calculus}
-\usepackage{amsthm}
-\usepackage{amsmath}
-\usepackage[dvips]{geometry}
-\usepackage{pstricks}
-\usepackage{graphicx}
-\usepackage{graphics}
-\usepackage{pst-plot}
-\usepackage{pst-node}
-\usepackage{multido}
-\usepackage{pst-xkey}
-\usepackage{pst-func}
-\usepackage{pstricks-add}
-\usepackage[dvips,colorlinks,linktocpage]{hyperref}
-\def\hantt{\^e}\def\accentcircflx{\hskip-.3em\raisebox{0.32ex}{\'{}}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\RiemannSum#1#2#3#4#5#6#7#8#9{%
-\psplot[linecolor=blue]{#1}{#2}{#3}
-\pscustom[linecolor=red]{%
-\psline{-}(#1,0)(#1,0)
-\multido{\ni=#5,\ne=#6}{#4}
-{\psline(*{\ni} {#8})(*{\ne} {#9})}}
-\multido{\ne=#6,\nc=#7}{#4}
-{\psdot(*{\nc} {#3})
-\psline[linestyle=dotted,dotsep=1.5pt](\nc,0)(*{\nc} {#3})
-\psline[linecolor=red](\ne,0)(*{\ne} {#9})}
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\vecfld#1#2#3#4#5#6{%
-\multido{#2}{#4}
-{\multido{#1}{#3}
-{\parametricplot[algebraic,arrows=->,linecolor=red]{0}{1}
-{\nx+((#5)*t)*(1/sqrt(1+(#6)^2))|\ny+((#5)*t)*(1/sqrt(1+(#6)^2))*(#6)}}}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\xch{\catcode`\p=12 \catcode`\t=12}\def\ych{\catcode`\p=11 \catcode`\t=11}
-\xch \def\dec#1pt{#1}\ych \def\decimal#1{\expandafter\dec \the#1}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\vecfldnew#1#2#3#4#5#6#7#8{%
-\newcount\intg \newdimen\fx \newdimen\fy \newdimen\slope \newdimen\interm
-\def\fintg{\interm=#8 \interm=\intg\interm \ifdim\ifdim\slope<0pt-\fi\slope>\interm\advance\intg by 1\fintg\fi}
-\multido{#2}{#4}
-{\multido{#1}{#3}
-{\curvepnodes[algebraic,plotpoints=2]{0}{1}{\nx+((#5)*t)*(1/sqrt(1+(#6)^2))|\ny+((#5)*t)*(1/sqrt(1+(#6)^2))*(#6)}{P}
-#7 \slope=10\slope\fintg
-\ifnum\intg>10\psline[linecolor=red]{->}(P0)(P1)\else\ifnum\intg=0\psline[linecolor=red!5]{->}(P0)(P1)\else\multiply\intg by 10
-\psline[linecolor=red!\the\intg]{->}(P0)(P1)\fi\fi
-\intg=0\slope=0pt
-}}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\pagestyle{headings}
-\topmargin=-0.6cm
-\textwidth=16.7cm
-\textheight=23cm
-\headheight=2.5ex
-\headsep=0.6cm
-\oddsidemargin=.cm
-\evensidemargin=-.4cm
-\parskip=0.7ex plus0.5ex minus 0.5ex
-\baselineskip=17pt plus2pt minus2pt
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\catcode`@=11
-\renewcommand\section{\@startsection {section}{1}{\z@}%
- {-3.5ex \@plus -1ex \@minus -.2ex}%
- {2.3ex \@plus.2ex}%
- {\normalfont\large\bfseries}}
-\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
- {-3.25ex\@plus -1ex \@minus -.2ex}%
- {1.5ex \@plus .2ex}%
- {\normalfont\normalsize\bfseries}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\gdef\acknw{\section*{%
-{\acknwname}\markright{\protect\textsl{\acknwname}}}%
-\addcontentsline{toc}{section}{\acknwname}}
-\gdef\acknwname{Acknowledgment}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\renewcommand\sectionmark[1]{\markright{\thesection. #1}}
-\newcounter{lk}
-\newenvironment{listof}{\begin{list}{\rm(\roman{lk})}{\usecounter{lk}%
-\setlength{\topsep}{0ex plus0.1ex}%
-\setlength{\labelwidth}{1cm}%
-\setlength{\itemsep}{0ex plus0.1ex}%
-\setlength{\itemindent}{0.5cm}%
-}}{\end{list}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\title{Two applications of macros in \texttt{PSTricks}\thanks{PSTricks is the original work of Timothy Van Zandt (email address: \texttt{tvz@econ.insead.fr}).
-It is currently edited by Herbert Vo\ss\ (\texttt{hvoss@tug.org}).}\\
-{\Large\&} \\
-How to color arrows properly for a vector field}
-\author{Le Phuong Quan\\
-\small{(Cantho University, Vietnam)}\\
-\small{\texttt{lpquan@ctu.edu.vn}}}
-\begin{document}
-\maketitle
-\tableofcontents
-\section{Drawing approximations to the area under a graph by rectangles}
-\subsection{Description}
-
-We recall here an application in Calculus. Let $f(x)$ be a function, defined and bounded on
-the interval $[a,b]$. If $f$ is integrable (in Riemann sense) on $[a,b]$, then its definite integral over this interval
-is
-$$\int_a^bf(x)dx=\lim_{\|P\|\to 0}\sum_{i=1}^nf(\xi_i)\Delta x_i,$$
-where $P\colon a=x_0<x_1<\cdots<x_n=b$, $\Delta x_i=x_i-x_{i-1}$, $\xi_i\in[x_{i-1},x_i]$, $i=1,2,\ldots,n$,
-and $\|P\|=\max\{\Delta x_i\colon i=1,2,\ldots,n\}$. Hence, when $\|P\|$ is small enough, we may have an
-approximation
-\begin{equation}\label{eqn1}
-I=\int_a^bf(x)dx\approx\sum_{i=1}^nf(\xi_i)\Delta x_i.
-\end{equation}
-Because $I$ is independent to the choice of the partition $P$ and of the $\xi_i$, we may
-divide $[a,b]$ into $n$ subintervals with equal length and choose $\xi_i=(x_i+x_{i-1})/2$.
-Then, $I$ can be approximately seen as the sum of areas of the rectangles with sides
-$f(\xi_i)$ and $\Delta x_i$.
-
-We will make a drawing procedure to illustrate the approximation (\ref{eqn1}). Firstly, we establish
-commands to draw the \emph{sum\/} of rectangles, like the area under piecewise-constant functions
-(called \textsl{step shape\/}, for brevity). The choice here
-is a combination of the macros \texttt{\symbol{92}pscustom} (to \emph{join\/} horizontal segments, automatically)
-and \texttt{\symbol{92}multido}, of course. In particular, the horizontal segments are depicted within the loop
-\texttt{\symbol{92}multido} by
-$$\texttt{\symbol{92}psplot[{\it settings}]\{$x_{i-1}$\}\{$x_i$\}\{$f(\xi_i)$\}}$$
-The \texttt{\symbol{92}pscustom} will join these segments altogether with the end points
-$(a,0)$ and $(b,0)$, to make the boundary of the step shape. Then, we draw the points $(\xi_i,f(\xi_i))$, $i=1,2,\ldots,n$,
-and the dotted segments between these points and the points $(\xi_i,0)$, $i=1,2,\ldots,n$, by
-\begin{align*}
-&\texttt{\symbol{92}psdot[algebraic,\dots](*\{$\xi_i$\} \{$f(x)$\})},\\
-&\texttt{\symbol{92}psline[algebraic,linestyle=dotted,\dots]($\xi_i$,$0$)(*\{$\xi_i$\} \{$f(x)$\})},
-\end{align*}
-where we use the structure \texttt{(*\{{\it value}\} \{$f(x)$\})} to obtain the point $(\xi_i,f(\xi_i))$. Finally, we draw
-vertical segments to split the step shape into rectangular cells by
-$$\texttt{\symbol{92}psline[algebraic,\dots]($x_i$,$0$)(*\{$x_i$\} \{$f(x-\Delta x_i/2)$\})}$$
-The process of performing steps is depicted in Figure \ref{Fig1}.
-\begin{figure}[htbp]
-\centering\begin{pspicture}(-2,-2)(3,3.5)
-\psset{yunit=0.2}
-\psaxes[labelFontSize=$\footnotesize$,Dy=2,ticksize=2.2pt,labelsep=4pt]{->}(0,0)(-2.5,-10)(3.5,15.5)
-\psplot[plotpoints=500,algebraic,linecolor=red]{-2}{3}{x^3-2*x^2+6}
-\pscustom{
-\psline{-}(-2,0)(-2,0)
-\multido{\nx=-2.000+0.500,\ny=-1.750+0.500,\ni=-1.500+0.500}{10}
-{\psplot[algebraic]{\nx}{\ni}{(\ny)^3-2*(\ny)^2+6}}
-\psline{-}(3,0)}
-\end{pspicture}
-\hskip3em
-\begin{pspicture}(-2,-2)(3,3.5)
-\psset{yunit=0.2}
-\psaxes[labelFontSize=$\footnotesize$,Dy=2,ticksize=2.2pt,labelsep=4pt]{->}(0,0)(-2.5,-10)(3.5,15.5)
-\psplot[plotpoints=500,algebraic,linecolor=red]{-2}{3}{x^3-2*x^2+6}
-\pscustom{
-\psline{-}(-2,0)(-2,0)
-\multido{\nx=-2.000+0.500,\ny=-1.750+0.500,\ni=-1.500+0.500}{10}
-{\psplot[algebraic]{\nx}{\ni}{(\ny)^3-2*(\ny)^2+6}}
-\psline{-}(3,0)}
-\multido{\nx=-2.000+0.500,\ny=-1.750+0.500,\ni=-1.500+0.500}{10}
-{\psline[linestyle=dotted,dotsep=1.5pt,dotstyle=o,linecolor=gray](\ny,0)(*{\ny} {x^3-2*x^2+6})
-\psdot[dotsize=1.2pt 1,dotstyle=Bo](*{\ny} {x^3-2*x^2+6})}
-\end{pspicture}\\[3ex]
-\centering\begin{pspicture}(-2,-2)(3,3)
-\psset{yunit=0.2}
-\psaxes[labelFontSize=$\footnotesize$,Dy=2,ticksize=2.2pt,labelsep=4pt]{->}(0,0)(-2.5,-10)(3.5,15.5)
-\psplot[plotpoints=500,algebraic,linecolor=red]{-2}{3}{x^3-2*x^2+6}
-\pscustom{
-\psline{-}(-2,0)(-2,0)
-\multido{\nx=-2.000+0.500,\ny=-1.750+0.500,\ni=-1.500+0.500}{10}
-{\psplot[algebraic]{\nx}{\ni}{(\ny)^3-2*(\ny)^2+6}}
-\psline{-}(3,0)}
-\multido{\nx=-2.000+0.500,\ny=-1.750+0.500,\ni=-1.500+0.500}{10}
-{\psline[linestyle=dotted,dotsep=1.5pt,dotstyle=o,linecolor=gray](\ny,0)(*{\ny} {x^3-2*x^2+6})
-\psdot[dotsize=1.2pt 1,dotstyle=Bo](*{\ny} {x^3-2*x^2+6})}
-\multido{\nx=-2.000+0.500,\ny=-1.750+0.500,\ni=-1.500+0.500}{9}
-{\psline(\ni,0)(*{\ni} {(x-0.25)^3-2*(x-0.25)^2+6})}
-\end{pspicture}
-\caption{Steps to make the drawing procedure.}\label{Fig1}
-\end{figure}
-
-We can combine the above steps to make a procedure whose calling sequence consists of main parameters
-$a$, $b$, $f$ and $n$, and dependent parameters $x_{i-1}$, $x_i$, $\xi_i$, $f(\xi_i)$ and
-$f(x\pm\Delta x_i/2)$. For instant, let us consider the approximations to the integral of $f(x)=\sin x-\cos x$
-over $[-2,3]$ in the cases of $n=5$ and $n=20$. Those approximations are given in Figure \ref{Fig2}.
-
-\begin{figure}[htbp]
-\centering\begin{pspicture}(-2.5,-3)(3.5,3.01)
-\psset{plotpoints=500,algebraic,dotsize=1pt 2,yunit=2}
-\psaxes[labelFontSize=$\footnotesize$,Dy=1]{->}(0,0)(-2.5,-1.5)(3.5,1.5)
-\RiemannSum{-2}{3}{sin(x)-cos(x)}{5}
-{-2.0+1.0}{-1.0+1.0}{-1.5+1.0}
-{sin(x+0.5)-cos(x+0.5)}{sin(x-0.5)-cos(x-0.5)}
-\end{pspicture}
-\hskip4em
-\begin{pspicture}(-2.5,-3)(3.5,3.01)
-\psset{plotpoints=500,algebraic,dotsize=1pt 2,yunit=2}
-\psaxes[labelFontSize=$\footnotesize$,Dy=1]{->}(0,0)(-2.5,-1.5)(3.5,1.5)
-\RiemannSum{-2}{3}{sin(x)-cos(x)}{20}
-{-2.000+0.250}{-1.750+0.250}{-1.875+0.250}
-{sin(x+0.125)-cos(x+0.125)}{sin(x-0.125)-cos(x-0.125)}
-\end{pspicture}
-\caption{Approximations to the integral of $f(x)=\sin x-\cos x$ over $[-2,3]$.}\label{Fig2}
-\end{figure}
-
-In fact, we can make a procedure to illustrate the approximation (\ref{eqn1}), say \texttt{RiemannSum}, whose calling sequence has the form
-$$\texttt{\symbol{92}RiemannSum\{$a$\}\{$b$\}\{$f(x)$\}\{$n$\}\{$x_{\rm ini}$\}\{$x_{\rm end}$\}\{$x_{\rm choice}$\}\{$f(x+\Delta x_i/2)$\}\{$f(x-\Delta x_i/2)$\}},$$
-where $x_0=a$ and for each $i=1,2\ldots,n$:
-\begin{align*}
-x_i&=a+\dfrac{b-a}{n}i,\quad\Delta x_i=x_i-x_{i-1}=\dfrac{b-a}{n},\\
-x_{\rm ini}&=x_0+\Delta x_i,\quad x_{\rm end}=x_1+\Delta x_i,\quad x_{\rm choice}=\dfrac{x_{\rm ini}+x_{\rm end}}{2}=\dfrac{x_0+x_1}{2}+\Delta x_i.
-\end{align*}
-Note that $x_{\rm ini}$, $x_{\rm end}$ and $x_{\rm choice}$ are given in such forms to be
-suitable to variable declaration in \texttt{\symbol{92}multido}. They are nothing but
-$x_{i-1}$, $x_i$ and $\xi_i$, respectively, at the step $i$-th in the loop.
-
-Tentatively, in \texttt{PSTricks} language, the definition of \texttt{RiemannSum} is suggested to be
-\bigskip\hrule
-\noindent\begin{tabular}{@{}l}
-\verb!\def\RiemannSum#1#2#3#4#5#6#7#8#9{%!\\
-\verb!\psplot[linecolor=blue]{#1}{#2}{#3}!\\
-\verb!\pscustom[linecolor=red]{%!\\
-\verb!\psline{-}(#1,0)(#1,0)!\\
-\verb!\multido{\ni=#5,\ne=#6}{#4}!\\
-\verb!{\psline(*{\ni} {#8})(*{\ne} {#9})}}!\\
-\verb!\multido{\ne=#6,\nc=#7}{#4}!\\
-\verb!{\psdot(*{\nc} {#3})!\\
-\verb!\psline[linestyle=dotted,dotsep=1.5pt](\nc,0)(*{\nc} {#3})!\\
-\verb!\psline[linecolor=red](\ne,0)(*{\ne} {#9})}}!
-\end{tabular}\bigskip\hrule
-\subsection{Examples}
-We give here two more examples just to see that using the drawing procedure is very easy. In the first example, we approximate
-the area under the graph of the function $f(x)=x-(x/2)\cos x+2$ on the interval $[0,8]$. To draw the approximation, we try
-the case $n=16$; thus $x_0=0$ and for each $i=1,\ldots,16$, we have
-$x_i=0.5\,i$, $\Delta x_i=0.5$, $x_{\rm ini}=0.00+0.50$, $x_{\rm end}=0.50+0.50$ and $x_{\rm choice}=0.25+0.50$.
-\begin{figure}[htbp]
-\centering\begin{pspicture}(0,0)(5.1,6.6)
-\psset{plotpoints=500,algebraic,dotsize=1pt 2,unit=0.6}
-\RiemannSum{0}{8}{x-(x/2)*cos(x)+2}{16}{0.00+0.50}{0.50+0.50}{0.25+0.50}
-{x+0.25-((x+0.25)/2)*cos(x+0.25)+2}{x-0.25-((x-0.25)/2)*cos(x-0.25)+2}
-\psaxes[labelFontSize=$\footnotesize$,Dy=1,ticksize=2.2pt,labelsep=4pt]{->}(0,0)(8.5,11)
-\end{pspicture}
-\vskip0.5ex
-\caption{An approximation to the area under the graph of $f(x)=x-(x/2)\cos x+2$ on $[0,8]$.}\label{Fig3}
-\end{figure}
-
-To get Figure \ref{Fig3}, we have used the following \LaTeX\ code:
-\bigskip\hrule
-\noindent\begin{tabular}{@{}l}
-\verb!\begin{pspicture}(0,0)(4.125,5.5)!\\
-\verb!\psset{plotpoints=500,algebraic,dotsize=2.5pt,unit=0.5}!\\
-\verb!\RiemannSum{0}{8}{x-(x/2)*cos(x)+2}{16}{0.00+0.50}{0.50+0.50}{0.25+0.50}!\\
-\verb!{x+0.25-((x+0.25)/2)*cos(x+0.25)+2}{x-0.25-((x-0.25)/2)*cos(x-0.25)+2}!\\
-\verb!\psaxes[ticksize=2.2pt,labelsep=4pt]{->}(0,0)(8.5,11)!\\
-\verb!\end{pspicture}!
-\end{tabular}
-\smallskip\hrule\bigskip
-
-In the second example below, we will draw an approximation to the integral of $f(x)=x\sin x$ over $[1,9]$.
-Choosing $n=10$ and computing parameters needed, we get Figure \ref{Fig4}, mainly by
-the command
-\begin{align*}
-&\texttt{\symbol{92}RiemannSum\{$1$\}\{$9$\}\{$x\sin x$\}\{$10$\}\{$1.00+0.80$\}\{$1.80+0.80$\}\{$1.40+0.80$\}}\\
-&\texttt{\{$(x+0.4)\sin(x+0.4)$\}\{$(x-0.4)\sin(x-0.4)$\}}
-\end{align*}
-in the drawing procedure.
-\begin{figure}[htbp]
-\centering\begin{pspicture}(0,-2.5)(4.75,4.25)
-\psset{plotpoints=500,algebraic,dotsize=1pt 2,unit=0.5}
-\RiemannSum{1}{9}{x*sin(x)}{10}%
-{1.00+0.80}{1.80+0.80}{1.40+0.80}%
-{(x+0.4)*sin(x+0.4)}{(x-0.4)*sin(x-0.4)}
-\psaxes[labelFontSize=$\footnotesize$,Dy=1,ticksize=2.2pt,labelsep=4pt]{->}(0,0)(0,-5)(9.5,8.5)
-\end{pspicture}
-\caption{An approximation to the integral of $f(x)=x\sin x$ over $[1,9]$.}\label{Fig4}
-\end{figure}
-\section{Drawing the vector field of an ordinary differential equation of order one}
-\subsection{Description}\label{sect1}
-
-Let us consider the differential equation
-\begin{equation}\label{eqn2}
-\frac{dy}{dx}=f(x,y).
-\end{equation}
-At each point $(x_0,y_0)$ in the domain $D$ of $f$, we will put a vector $\mathbf{v}$ with slope
-$k=f(x_0,y_0)$. If $y(x_0)=y_0$, then $k$ is the slope of the tangent to the solution curve $y=y(x)$
-of (\ref{eqn2}) at $(x_0,y_0)$. The $\mathbf{v}$'s make a \textsl{vector field\/} and the picture
-of this field would give us information about the shape of solution curves of (\ref{eqn2}), even
-we have not found yet any solution of (\ref{eqn2}).
-
-The vector field of (\ref{eqn2}) will be depicted on a finite grid of points in $D$. This grid is made of
-lines, paralell to the axes $Ox$ and $Oy$. The intersectional points of those lines are called \textsl{grid points\/}
-and often indexed by $(x_i,y_j)$, $i=0,\ldots,N_x$, $j=0,\ldots,N_y$. For convenience, we will use
-polar coordinate to locate the terminal point $(x,y)$ of a field vector, with the initial point at
-the grid point $(x_i,y_j)$. Then, we can write
-\begin{align*}
-x&=x_i+r\cos\varphi,\\
-y&=y_j+r\sin\varphi.
-\end{align*}
-Because $k=f(x_i,y_j)=\tan\varphi$ is finite, we may take $-\pi/2<\varphi<\pi/2$.
-From $\sin^2\varphi+\cos^2\varphi=1$ and $\sin\varphi=k\cos\varphi$, we derive
-$$\cos\varphi=\frac{1}{\sqrt{1+k^2}},\quad\sin\varphi=\frac{k}{\sqrt{1+k^2}}.$$
-\begin{figure}[htbp]
-\centering\begin{pspicture}(0,0)(5,5)
-\psset{unit=2}
-\psaxes[labelFontSize=$\footnotesize$,Dx=0.5,Dy=0.5,labels=none,ticksize=2pt,labelsep=2pt,linewidth=0.5pt]
-{->}(0,0)(2.5,2.5)
-\psdots[dotstyle=*,dotsize=3pt](1,1)(1.5,1)(1,1.5)
-\psline[linewidth=0.3pt](1.5,0.5)(1.5,2)(1,2)(1,0.5)(2,0.5)(2,1.5)
-\psline[linewidth=0.3pt](1,1.5)(2,1.5)\psline[linewidth=0.3pt](1,1)(2,1)
-\psarc[linewidth=0.5pt,linestyle=dotted,dotsep=1.5pt](1,1){0.5}{-90}{90}
-\psarc[linewidth=0.5pt,linestyle=dotted,dotsep=1.5pt](1.5,1){0.5}{-90}{90}
-\psarc[linewidth=0.5pt,linestyle=dotted,dotsep=1.5pt](1,1.5){0.5}{-90}{90}
-\psline[linewidth=0.8pt]{->}(1,1.5)(1.27,1.92)
-\psline[linewidth=0.8pt]{->}(1,1)(1.382,1.322)
-\psline[linewidth=0.8pt]{->}(1.5,1)(1.977,1.147)
-\rput(1,-0.1){$x_i$}\rput(1.5,-0.1){$x_{i+1}$}\rput(-0.1,1){$y_j$}\rput(-0.2,1.5){$y_{j+1}$}
-\end{pspicture}
-\caption{Field vectors on a grid.}\label{Fig5}
-\end{figure}
-The field vectors should all have the same magnitude and we choose here that length to be
-$1/2$, that means $r=1/2$. Thus, vectors on the grid have their initial points and
-terminal ones as
-$$(x_i,y_j),\quad \Big(x_i+\frac{1}{2}\cos\varphi,y_j+\frac{1}{2}\sin\varphi\Big).$$
-
-Of macros in \texttt{PSTricks} to draw lines, we select \texttt{\symbol{92}parametricplot}\footnote{\footnotesize
-This macro is of ones, often added and updated in the package \texttt{pstricks-add}, the authors:
-Dominique Rodriguez (\texttt{dominique.rodriguez@waika9.com}), Herbert Vo\ss\ (\texttt{voss@pstricks.de}).}
-for its fitness. We immetiately have the simple parameterization of the vector at the grid point
-$(x_i,y_j)$ as
-\begin{align*}
-x&=x_i+\frac{t}{2}\cos\varphi=x_i+\frac{t}{2\sqrt{1+k^2}},\\
-y&=y_j+\frac{t}{2}\sin\varphi=y_j+\frac{tk}{2\sqrt{1+k^2}},
-\end{align*}
-where $t$ goes from $t=0$ to $t=1$, along the direction of the vector. The macro \texttt{\symbol{92}parametricplot}
-has the syntax as
-$$\texttt{\symbol{92}parametricplot[{\it settings}]\{$t_{\rm min}$\}\{$t_{\rm max}$\}\{$x(t)$|$y(t)$\}},$$
-where we should use the option \texttt{algebraic} to make the declaration of $x(t)$ and $y(t)$ simpler
-with \texttt{ASCII} code.
-
-From the above description of one field vector, we go to the one of the whole vector field
-on a grid belonging to the domain $R=\{(x,y)\colon a\le x\le b,\,c\le y\le d\}$. To determine the grid, we confine grid points to the range
-\begin{equation}\label{eqn3}
-a\le x_i\le b,\quad c\le y_j\le d.
-\end{equation}
-With respect to the indices $i$ and $j$, we choose initial values $x_0=a$ and
-$y_0=c$, with increments $\Delta x=\Delta y=\delta$, corresponding to the length of vectors and the distance
-between grid points as indicated in Figure \ref{Fig5}. Thus, to draw vectors at grid points
-$(x_i,y_j)$, we need two loops for $i$ and $j$, with $0\le i\le\lfloor m/\delta\rfloor$, $0\le j\le\lfloor n/\delta\rfloor$, where
-$m=b-a$, $n=d-c$. Apparently, these two loops are nested \texttt{\symbol{92}multido}s, with variable declaration
-for each loop as follows
-\begin{align*}
-\texttt{\symbol{92}nx}&=\text{initial value}+\text{increment}=x_0+\Delta x,\\
-\texttt{\symbol{92}ny}&=\text{initial value}+\text{increment}=y_0+\Delta y.
-\end{align*}
-Finally, we will replace \texttt{\symbol{92}nx}, \texttt{\symbol{92}ny} by $x_i$, $y_j$ in the
-below calling sequence for simplicity.
-
-Thus, the main procedure to draw the vector field of the equation (\ref{eqn2}) on the grid (\ref{eqn3})
-is
-\begin{align*}
-&\texttt{\symbol{92}multido\big\{$y_j=y_0+\Delta y$\big\}\big\{$\lfloor n/\delta\rfloor$\big\}}\texttt{\bigg\{\symbol{92}multido\big\{$x_i=x_0+\Delta x$\big\}\big\{$\lfloor m/\delta\rfloor$\big\}}\\
-&\quad\texttt{\Big\{\symbol{92}parametricplot[{\it settings}]\{$0$\}\{$1$\}\Big\{$x_i+\frac{t}{2\sqrt{1+\big[f(x_i,y_j)\big]^2}}$\Big|
-$y_j+\frac{tf(x_i,y_j)}{2\sqrt{1+\big[f(x_i,y_j)\big]^2}}$\Big\}\bigg\}}
-\end{align*}
-where we at least use \texttt{arrows=->} and \texttt{algebraic} for \textit{settings}.
-
-We can combine the steps mentioned above to define a drawing procedure, say \texttt{\symbol{92}vecfld},
-that consists of main parameters in the order as
-\texttt{\symbol{92}nx=}$x_0+\Delta x$, \texttt{\symbol{92}ny=}$y_0+\Delta y$, $\lfloor m/\delta\rfloor$, $\lfloor n/\delta\rfloor$, $\delta$
-and $f(\texttt{\symbol{92}nx},\texttt{\symbol{92}ny})$. We may change these values to modify
-the vector field or to avoid the vector intersection. Such a definition is suggested to be
-\bigskip\hrule
-\noindent\begin{tabular}{@{}l}
-\verb!\def\vecfld#1#2#3#4#5#6{%!\\
-\verb!\multido{#2}{#4}{\multido{#1}{#3}!\\
-\verb!{\parametricplot[algebraic,arrows=->,linecolor=red]{0}{1}!\\
-\verb!{\nx+((#5)*t)*(1/sqrt(1+(#6)^2))|\ny+((#5)*t)*(1/sqrt(1+(#6)^2))*(#6)}}}}!
-\end{tabular}\bigskip\hrule
-\subsection{Examples}
-Firstly, we consider the equation that describes an object falling in a resistive medium:
-\begin{equation}\label{eqn4}
-\frac{dv}{dt}=9.8-\frac{v}{5},
-\end{equation}
-where $v=v(t)$ is the speed of the object in time $t$. In Figure \ref{Fig6}, the vector field of (\ref{eqn4}) is given
-on the grid $R=\{(t,y)\colon 0\le t\le 9,\,46\le v\le 52\}$, together with the graph of the equilibrium solution
-$v=49$.
-\begin{figure}[htbp]
-\centering\begin{pspicture}(0,41.4)(8.55,47.25)
-\psset{xunit=0.9,yunit=0.9}
-\multido{\ny=46.25+0.50}{13}
-{\multido{\nx=0.25+0.50}{18}
-{\parametricplot[linewidth=0.5pt,algebraic,arrows=->,arrowinset=0.55,linecolor=red]{0}{1}{\nx+(t/2)*(1/sqrt(1+(9.8-0.2*(\ny))^2))|\ny+(t/2)*(1/sqrt(1+(9.8-(0.2)*(\ny))^2))*(9.8-(0.2)*(\ny))}}}
-\psplot[algebraic,linewidth=1.2pt]{0}{9.25}{49}
-\psaxes[labelFontSize=$\footnotesize$,ticksize=2.2pt,labelsep=4pt,Dy=1,Dx=1,Oy=46,linewidth=0.7pt]{->}(0,46)(0,46)(9.5,52.5)
-\rput(9.5,45.8){$t$}\rput(-0.2,52.5){$y$}
-\end{pspicture}
-\caption{The vector field of (\ref{eqn4}).}\label{Fig6}
-\end{figure}
-
-Figure \ref{Fig6} is made of the following \LaTeX\ code:
-\bigskip\hrule
-\noindent\begin{tabular}{@{}l}
-\verb!\begin{pspicture}(0,46)(9.5,52.5)!\\
-\verb!\vecfld{\nx=0.25+0.50}{\ny=46.25+0.50}{18}{12}{0.5}{9.8-0.2*\ny}!\\
-\verb!\psplot[algebraic,linewidth=1.2pt]{0}{9}{49}!\\
-\verb!\psaxes[Dy=1,Dx=1,Oy=46]{->}(0,46)(0,46)(9.5,52.5)!\\
-\verb!\rput(9.5,45.8){$t$}\rput(-0.2,52.5){$y$}!\\
-\verb!\end{pspicture}!
-\end{tabular}
-\smallskip\hrule\bigskip
-Let us next consider the problem
-\begin{equation}\label{eqn5}
-\frac{dy}{dx}=x+y,\quad y(0)=0.
-\end{equation}
-It is easy to check that $y=e^x-x-1$ is the unique solution to the problem (\ref{eqn5}). We now draw
-the vector field of (\ref{eqn5}) and the solution curve\footnote{\footnotesize
-We have used ${\rm ch}(1)+{\rm sh}(1)$ for the declaration of $e$, natural base of logarithmic function.} on the grid $R=\{(x,y)\colon 0\le x\le 3,\,0\le y\le 5\}$ in
-Figure \ref{Fig7}.
-\begin{figure}[htbp]
-\centering\begin{pspicture}(0,0)(3.25,5.5)
-\psset{unit=1}
-\multido{\ny=0.25+0.50}{10}
-{\multido{\nx=0.25+0.50}{6}
-{\parametricplot[linewidth=0.5pt,algebraic,arrows=->,arrowinset=0.55,linecolor=red]{0}{1}{\nx+(t/2)*(1/sqrt(1+(\nx+\ny)^2))|\ny+(t/2)*(1/sqrt(1+(\nx+\ny)^2))*(\nx+\ny)}}}
-\psplot[algebraic,linewidth=1.2pt]{0}{2.15}{(sh(1)+ch(1))^x-x-1}
-\psaxes[labelFontSize=$\footnotesize$,Dy=1,Dx=1,ticksize=2.2pt,labelsep=4pt,linewidth=0.7pt]{->}(0,0)(3.5,5.5)
-\rput(3.5,-0.2){$x$}\rput(-0.25,5.5){$y$}
-\end{pspicture}
-\caption{The vector field of (\ref{eqn5}).}\label{Fig7}
-\end{figure}
-
-We then go to the logistic equation, which is chosen to be a model for the dependence
-of the population size $P$ on time $t$ in Biology:
-\begin{equation}\label{eqn6}
-\frac{dP}{dt}=kP\Big(1-\frac{P}{M}\Big),
-\end{equation}
-where $k$ and $M$ are constants, respectively various to selected species and environment.
-For specification, we take, for instant, $k=0.5$ and $M=100$. The right hand side of
-(\ref{eqn6}) then becomes $f(t,P)=0.5\,P(1-0.01\,P)$. In Figure \ref{Fig8}, we draw the vector field
-of (\ref{eqn6}) on the grid $R=\{(t,P)\colon 0\le t\le 10,\,95\le P\le 100\}$ and the equilibrium
-solution curve $P=100$. Furthermore, with the initial condition $P(0)=95$, the equation (\ref{eqn6})
-has the unique solution $P=1900(e^{-0.5t}+19)^{-1}$. This solution curve is also given in Figure \ref{Fig8}.
-\begin{figure}[htbp]
-\centering\begin{pspicture}(0,76)(8.4,80.4)
-\psset{xunit=0.8,yunit=0.8}
-\multido{\ny=95.25+0.50}{10}
-{\multido{\nx=0.25+0.50}{20}
-{\parametricplot[linewidth=0.5pt,algebraic,arrows=->,arrowinset=0.55,linecolor=red]{0}{1}{\nx+(t/2)*(1/sqrt(1+((0.5)*(\ny)*(1-(0.01)*(\ny)))^2))|\ny+(t/2)*(1/sqrt(1+((0.5)*(\ny)*(1-(0.01)*(\ny)))^2))*((0.5)*(\ny)*(1-(0.01)*(\ny)))}}}
-\psplot[algebraic,linewidth=1.2pt]{0}{10.25}{100}
-\psplot[algebraic,linewidth=1.2pt]{0}{10.25}{1900/((ch(1)+sh(1))^(-0.5*x)+19)}
-\psaxes[labelFontSize=$\footnotesize$,Dy=1,Dx=1,Oy=95,ticksize=2pt,labelsep=4pt,linewidth=0.7pt]{->}(0,95)(0,95)(10.5,100.5)
-\rput(10.5,94.8){$t$}\rput(-0.25,100.5){$P$}
-\end{pspicture}
-\caption{The vector field of (\ref{eqn6}) with $k=0.5$ and $M=100$.}\label{Fig8}
-\end{figure}
-
-The previous differential equations are all of seperated variable or linear cases that
-can be solved for closed-form solutions by some simple integration formulas. We will consider one more
-equation of the non-linear case whose solution can only be approximated by numerical methods.
-The vector field of such an equation is so useful and we will use the Runge-Kutta curves (of order $4$)
-to add more information about the behaviour of solution curve. Here, those Runge-Kutta curves are depicted by the procedure
-\texttt{\symbol{92}psplotDiffEqn}, also updated from the package \texttt{pstricks-add}.
-
-The vector field of the non-linear differential equation
-\begin{equation}\label{eqn7}
-\frac{dy}{dx}=y^2-xy+1
-\end{equation}
-will be depicted on the grid $R=\{(x,y)\colon -3\le x\le 3,\,-3\le y\le 3\}$ and the solutions
-of Cauchy problems for (\ref{eqn7}), corresponding to initial conditions
-\begin{listof}
-\item $y(-3)=-1$,
-\item $y(-2)=-3$,
-\item $y(-3)=-0.4$,
-\end{listof}
-will be approximated by the method of Runge-Kutta, with the grid size $h=0.2$. It is very easy
-to recognize approximate curves, respective to (i), (ii) and (iii) in Figure \ref{Fig9} below.
-\begin{figure}[htbp]
-\centering\begin{pspicture}(-3.6,-3.6)(4.2,4.2)
-\psset{unit=1.2,dotsize=2.6pt}
-\vecfld{\nx=-3.00+0.4}{\ny=-3.00+0.4}{16}{16}{0.35}{(\ny)^2-(\nx)*(\ny)+1}
-\psplotDiffEqn[linewidth=1.2pt,algebraic,showpoints=true,plotpoints=24,method=rk4]{-3}{1.9}{-1}{(y[0])^2-x*y[0]+1}
-\psplotDiffEqn[linewidth=1.2pt,algebraic,showpoints=true,plotpoints=25,method=rk4]{-2}{3}{-3}{(y[0])^2-x*y[0]+1}
-\psplotDiffEqn[linewidth=1.2pt,algebraic,showpoints=true,plotpoints=10,method=rk4]{-3}{-0.96}{-0.4}{(y[0])^2-x*y[0]+1}
-\psaxes[labelFontSize=$\footnotesize$,Dy=1,Dx=1,ticksize=2.2pt,labelsep=4pt,linewidth=0.7pt]{->}(0,0)(-3,-3)(3.5,3.5)
-\rput(3.5,-0.2){$x$}\rput(-0.25,3.5){$y$}
-\end{pspicture}
-\caption{The vector field of (\ref{eqn7}) and the Runge-Kutta curves.}\label{Fig9}
-\end{figure}
-\section{Remarks on how to color arrows properly for a vector field}
-\subsection{Description}
-In the \verb!\vecfld! procedure, the command
-\begin{equation}\label{bosung1}
-\texttt{\symbol{92}parametricplot[{\it settings}]\{$t_{\rm min}$\}\{$t_{\rm max}$\}\{$x(t)$|$y(t)$\}}
-\end{equation}
-does the two works: drawing the whole oriented line segment and putting the endpoint right after
-the vector. This blots out the pointy head of arrows and makes field vectors less sharp when being seen closely.
-However, there is no problem with the procedure if we just want a monochrome vector field. But, in case of using arrows
-with their various color shades, we should use an independent procedure with options to draw a color arrow. For such a procedure,
-the command \texttt{\symbol{92}psline} could be the best choice. We just call it with two argument points, which are extracted from the curve
-produced by the command \texttt{\symbol{92}parametricplot}.
-
-To modify the \verb!\vecfld! procedure, from the above consideration, we might take the command \texttt{\symbol{92}curvepnodes} in the package \texttt{pst-node}\footnote{\footnotesize
-Package authors: Timothy Van Zandt (\texttt{tvz@econ.insead.fr}), Michael Sharpe (\texttt{msharpe@euclid.ucsd.edu}) and Herbert Vo\ss\ (\texttt{hvoss@tug.org}).} to
-extract points from a curve $(x(t),y(t))$ given in the algebraic form. Because we only need the two ending points of the curve,
-we can use
-\begin{equation}\label{bosung2}
-\texttt{\symbol{92}curvepnodes[algebraic,plotpoints=2]\{0\}\{1\}\{$x(t)$|$y(t)$\}\{P\}},
-\end{equation}
-where \texttt{P} is a name of the root of nodes and we just get the two nodes \texttt{P0}, \texttt{P1} when executing this command. Then, the corresponding
-vector is drawn by the command
-\begin{equation}\label{bosung3}
-\texttt{\symbol{92}psline[linecolor={\it settings}]\{->\}(P0)(P1)}
-\end{equation}
-The command (\ref{bosung1}) may be replaced by the two ones (\ref{bosung2}) and (\ref{bosung3}), and we obtain the arrows whose heads are now sharper.
-
-The remaining problem is how to appropriately make \textit{settings} in (\ref{bosung3}) to bring out a vector field. Obviously, \textit{settings} should be
-various color shades according to slope of vectors. In Subsection \ref{sect1}, we know for the equation (\ref{eqn2}) that $f(x_i,y_j)$ is right the slope of
-field vectors at grid points $(x_i,y_j)$, and we will divide these slopes into some number of scales, corresponding to the
-degree of color shades. Here, we confine our interest to a continuous function $f(x,y)$ in two independent variables on the domain
-$R=\{(x,y)\colon a\le x\le b,\,c\le y\le d\}$ and choose the scale of $10$ degrees. This number of degrees can be changed to any positive integer.
-
-According to the input data from the differential equation (\ref{eqn2}), the set $R$ and the grid points on it and the value $M=\max\{|f(x_i,y_j)|\colon
-0\le i\le\lfloor m/\Delta x\rfloor,\,0\le j\le\lfloor n/\Delta y\rfloor\}$, where $m=b-a$ and $n=d-c$,
-we can now define the degree of color shade for each arrow in our vector field. It should be an integer $n_{ij}$ such that
-$n_{ij}=\lfloor 10|f(x_i,y_j)|/M\rfloor$, that is
-\begin{equation}\label{bosung4}n_{ij}M\le 10|f(x_i,y_j)|<(n_{ij}+1)M.\end{equation}
-For finding such an integer, in \TeX\ codes, we need one \texttt{\symbol{92}newcount} for it and two \texttt{\symbol{92}newdimen} for
-$f(x_i,y_j)$ and intermediate values to be compared with $|f(x_i,y_j)|$. For more explanation, let us begin with settings
-\texttt{\symbol{92}newcount\symbol{92}intg} (referring (ref.) to ``integer''), \texttt{\symbol{92}newdimen\symbol{92}slope} (ref. to ``slope'') and \texttt{\symbol{92}newdimen\symbol{92}interm}
-(ref. to ``intermediate values''). Then, the integer $n_{ij}$ at stage $(i,j)$ within the two loops \texttt{\symbol{92}multido} can be defined by the recursive macro \texttt{\symbol{92}fintg} (ref. to ``find the integer'') as follows
-\begin{verbatim}
- \def\fintg{\interm=Mpt \interm=\intg\interm%
- \ifdim\ifdim\slope<0pt -\fi\slope>\interm \advance\intg by 1\fintg\fi}
-\end{verbatim}
-where \texttt{M} and \texttt{\symbol{92}slope} are holding the values $M$ and $f(x_i,y_j)$, respectively. Note that, before running our macro, \verb!\slope! should be multiplied
-by $10$ with the assignment \texttt{\symbol{92}slope=10\symbol{92}slope}, as defined in (\ref{bosung4}). Besides, by simulating the expression of $f(x,y)$, the calculation of $f(x_i,y_j)$
-should be declared with operations on \texttt{\symbol{92}newcount}s and \texttt{\symbol{92}newdimen}s. Then, the integer $n_{ij}$, which is found at stage $(i,j)$, should take its
-degree, say $k$, from $0$ to $10$ by its value, suitably associated to the command \texttt{\symbol{92}psline[linecolor=red!case-k]\{->\}(P0)(P1)}.
-Here, we choose \texttt{red} for the main color (it can be changed, of course), and \texttt{case-k} will be replaced with an appropriate percentage of \texttt{red}. Finally,
-making such a color scale is local and relative, so we can use one more parameter in the procedure to adjust color shades.
-The old procedure takes $6$ parameters and the new one will take two more parameters: one for a way of computing $f(x_i,y_j)$ and the other
-for adjusting color shades.
-
-Let us take some examples on how to compute $f(x_i,y_j)$ by \TeX\ codes or by the commands from the package \texttt{calculator}\footnote{\footnotesize
-Package author: Robert Fuster (\texttt{rfuster@mat.upv.es}).}. For a simple polynomial $f(x,y)$,
-computing $f(x_i,y_j)$ by \TeX\ codes might be facile. Because \verb!\nx! and \verb!\ny! are respectively holding the values of
-$x_i$ and $y_j$, we need the two corresponding dimensions \verb!\newdimen\fx! and \verb!\newdimen\fy! to take these values. By assigning \verb!\fx=\nx pt\fy=\ny pt!,
-we compute $f(\verb!\nx!,\verb!\ny!)$ and assign its value to \verb!\slope!. The declaration of calculations for some cases of $f(x,y)$ is given in the following table.
-
-\begin{table}[htbp]
-\centering\begin{tabular}{c|l}
-$f(x,y)$&\multicolumn{1}{c}{\TeX\ codes for computing $f(\texttt{\symbol{92}nx},\texttt{\symbol{92}ny})$} \\ \hline
-$x+y$&\verb!\advance\slope by \fx \advance\slope by \fy!\\ \hline
-$1-xy$&\verb!\advance\slope by -\decimal\fx\fy \advance\slope by 1pt!\\ \hline
-$y(3-y)$&\verb!\advance\slope by -\decimal\fy\fy \advance\slope by 3\fy!\\ \hline
-$y^2-xy$&\verb!\advance\slope by \decimal\fy\fy \advance\slope by -\decimal\fx\fy!\\ \hline
-\end{tabular}
-\end{table}
-In the table, the command \verb!\decimal!, which is quotative from \cite{five} for producing decimal numbers from dimensions, is put in the preamble using a definition as
-\begin{verbatim}
- \def\xch{\catcode`\p=12 \catcode`\t=12}\def\ych{\catcode`\p=11 \catcode`\t=11}
- \xch \def\dec#1pt{#1}\ych \def\decimal#1{\expandafter\dec \the#1}
-\end{verbatim}
-
-For a transcendental or rational function $f(x,y)$, we should use the package \texttt{calculator} for
-computing $f(x_i,y_j)$. The following table shows how to perform the calculations.
-\begin{table}[htbp]
-\centering\begin{tabular}{c|l}
-$f(x,y)$&\multicolumn{1}{c}{The commands from the package \texttt{calculator} for computing $f(\texttt{\symbol{92}nx},\texttt{\symbol{92}ny})$} \\ \hline
-$\sin(y-x)$&\verb!\SUBTRACT{\ny}{\nx}{\sola}\SIN{\sola}{\solb}\slope=\solb pt!\\ \hline
-\raisebox{-2ex}[0pt][0pt]{$2xy/(1+y^2)$}&\verb!\SUMfunction{\ONEfunction}{\SQUAREfunction}{\Fncty}!\\
-&\verb!\Fncty{\ny}{\soly}{\Dsoly}\DIVIDE{\Dsoly}{\soly}{\tempa}!\\
-&\verb!\MULTIPLY{\nx}{\tempa}{\tempb}\slope=\tempb pt!\\ \hline
-\end{tabular}
-\end{table}
-
-From the old macro \verb!\vecfld!, we will construct the new one \verb!\vecfldnew! by adding up to the former the two parameters as described above. According to
-the description of new parameters and of known ones, the calling sequence of \verb!\vecfldnew! may have the form of
-$$\texttt{\symbol{92}vecfldnew\{\symbol{92}nx$=x_0+\Delta x$\}\{\symbol{92}ny$=y_0+\Delta y$\}\{$n_x$\}\{$n_y$\}\{$\ell$\}\{$f(\texttt{\symbol{92}nx},\texttt{\symbol{92}ny})$\}\{{\rm\TeX\ codes}\}\{$n_a$\}}$$
-where $n_a$ is an estimate value for $M$ and can be adjusted to be greater or less than $M$. This flexible mechanism might be to increase or decrease the degree of
-color shades. Finally, \verb!\intg! and \verb!\slope! should be reset to
-zero at the end of each stage. Now, all materials to make the new macro are ready, and a definition for it is suggested to be
-\bigskip\hrule
-\noindent\begin{tabular}{@{}l}
-\verb!\def\vecfldnew#1#2#3#4#5#6#7#8{%!\\
-\verb!\newcount\intg \newdimen\slope \newdimen\interm \newdimen\fx \newdimen\fy!\\
-\verb!\def\fintg{\interm=#8 \interm=\intg\interm%!\\
-\verb! \ifdim\ifdim\slope<0pt -\fi\slope>\interm \advance\intg by 1\fintg\fi}!\\
-\verb!\multido{#2}{#4}!\\
-\verb!{\multido{#1}{#3}!\\
-\verb!{\curvepnodes[algebraic,plotpoints=2]{0}{1}!\\
-\verb!{\nx+((#5)*t)*(1/sqrt(1+(#6)^2))|\ny+((#5)*t)*(1/sqrt(1+(#6)^2))*(#6)}{P}!\\
-\verb!#7\slope=10\slope \fintg \ifnum\intg>10\psline[linecolor=red]{->}(P0)(P1)!\\
-\verb+\else\ifnum\intg=0\psline[linecolor=red!5]{->}(P0)(P1)+\\
-\verb+\else\multiply\intg by 10\psline[linecolor=red!\the\intg]{->}(P0)(P1)\fi\fi+\\
-\verb+\intg=0\slope=0pt+\\
-\verb+}}}+
-\end{tabular}
-\smallskip\hrule\smallskip
-
-If we predefine some scale of degrees, instead of the code $\verb!\ifnum\intg>10!\ldots\verb!\fi\fi!$, the structure \verb!\ifcase! can be used as
-$$\begin{array}{c}
-\verb!\ifcase\intg!\\
-\verb+\psline[linecolor=red!5]{->}(P0)(P1)\or+\\
-\verb+\psline[linecolor=red!10]{->}(P0)(P1)\or+\\
-\vdots\\
-\verb!\psline[linecolor=red]{->}(P0)(P1)\fi!
-\end{array}$$
-\subsection{Examples}
-The first example is given with the two $n_a$s to see how different the color shades are between the two cases. The left vector field in Figure \ref{figure1}
-is made of the calling sequence
-\begin{verbatim}
-\vecfldnew{\nx=-2.00+0.3}{\ny=-2.00+0.3}{14}{14}{0.3}{(\nx)-2*(\ny)}
-{\fy=\ny pt \fx=\nx pt \advance\slope by -2\fy \advance\slope by \fx}{9pt}
-\end{verbatim}
-\begin{figure}[htbp]
-\centering\includegraphics[width=4.6cm]{vec5}
-\hskip1cm\includegraphics[width=4.6cm]{vec6}
-\caption{The vector fields of the equation $y'=x-2y$ with $n_a=\texttt{9pt}$ (the left) and $n_a=\texttt{5pt}$ (the right)}\label{figure1}
-\end{figure}
-
-In Figure \ref{figure2}, the vector fields of the equations $y'=y-x$ and $y'=x(2-y)$ are respectively drawn by the calling sequences
-\begin{verbatim}
-\vecfldnew{\nx=-3.00+0.4}{\ny=-3.00+0.4}{15}{15}{0.35}{(\ny)-(\nx)}
-{\fy=\ny pt \fx=\nx pt \advance\slope by -\fx \advance\slope by \fy}{5pt}
-\end{verbatim}
-and
-\begin{verbatim}
-\vecfldnew{\nx=-3.00+0.4}{\ny=-3.00+0.4}{15}{15}{0.35}{(\nx)*(2-(\ny))}
-{\fy=\ny pt \fx=\nx pt \advance\slope by -\decimal\fx\fy
-\advance\slope by 2\fx}{6pt}
-\end{verbatim}
-\begin{figure}[htbp]
-\centering\includegraphics[width=6.2cm]{vec3}
-\hskip1cm\includegraphics[width=6.2cm]{vec4}
-\caption{The vector fields of the equation $y'=y-x$ (the left) and $y'=x(2-y)$ (the right).}\label{figure2}
-\end{figure}
-
-Finally, we consider two more examples on vector fields of differential equations $y'=f(x,y)$ containing trigonometric or rational functions on the right side. The calling sequences
-\begin{verbatim}
-\vecfldnew{\nx=-3.00+0.4}{\ny=-3.00+0.4}{15}{15}{0.35}{sin(\nx)*cos(\ny)}
-{\SIN{\nx}{\tmpa}\COS{\ny}{\tmpb}\MULTIPLY{\tmpa}{\tmpb}{\tmpc}
-\slope=\tmpc pt}{0.6pt}
-\end{verbatim}
-and
-\begin{verbatim}
-\vecfldnew{\nx=-3.00+0.3}{\ny=-3.00+0.3}{20}{20}{0.3}{2*(\nx)*(\ny)/(1+(\ny)^2)}
-{\SUMfunction{\ONEfunction}{\SQUAREfunction}{\Fncty}\Fncty{\ny}{\soly}{\Dsoly}
-\DIVIDE{\Dsoly}{\soly}{\tempa}\MULTIPLY{\nx}{\tempa}{\tempb}
-\slope=\tempb pt}{2.5pt}
-\end{verbatim}
-respectively result in the vector field on the left and on the right in Figure \ref{figure3}.
-
-\begin{figure}[htbp]
-\centering\includegraphics[width=6.2cm]{vec1}
-\hskip1cm\includegraphics[width=6.2cm]{vec2}
-\caption{The vector fields of the equation $y'=\sin(x)\cos(y)$ (the left) and $y'=2xy/(1+y^2)$ (the right).}\label{figure3}
-\end{figure}
-
-\acknw
-I am very grateful to
-\begin{itemize}
-\item Timothy Van Zandt, Herbert Vo\ss, Dominique Rodriguez and Michael Sharpe for helping me with
-their great works on \texttt{PSTricks}.
-\item H\`an Th\hantt\rlap\accentcircflx\ Th\`anh for helping me with his pdf\hskip.03em\LaTeX\ program.
-\item Robert Fuster for his very useful package \texttt{calculator}.
-\end{itemize}
-\begin{thebibliography}{10}
-\bibitem{one} Dominique Rodriguez, Michael Sharpe \&\ Herbert Vo\ss. \textsl{\texttt{pstricks-add}: Additional Macros for PSTricks\/}.
-Version 3.60, \url{http://ctan.org/tex-archive/graphics/pstricks/contrib}, 2013
-\bibitem{two} Timothy Van Zandt, Michael Sharpe \&\ Herbert Vo\ss. \textsl{\texttt{pst-node}: Nodes and node connections}.
-Version 1.29, \url{http://ctan.org/tex-archive/graphics/pstricks/contrib}, 2013
-\bibitem{three} Helmut Kopka \&\ Patrick W. Daly. \textsl{Guide to \LaTeX \/}.
-Addison-Wesley, Fourth Edition, 2004, ISBN 0321173856
-\bibitem{four} Timothy Van Zandt. \textsl{User's Guide\/}. Version 1.5,\\
-\url{http://ctan.org/tex-archive/graphics/pstricks/base}, 2007
-\bibitem{five}Eitan M. Gurari. \textsl{Writing With \TeX \/}, McGraw-Hill, Inc., 1994, ISBN 0-07-025207-6
-\bibitem{six} Robert Fuster. \textsl{\texttt{calculator-calculus}: Scientific Calculations With \LaTeX \/}. Version 1.0a,
-\url{http://ctan.org/tex-archive/macros/latex/contrib/calculator}, 2012
-\end{thebibliography}
-\end{document}