summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-11-06 21:58:19 +0000
committerKarl Berry <karl@freefriends.org>2017-11-06 21:58:19 +0000
commit5949a9aee0bb29a10f1ec50a6cb8dd50a1c7de81 (patch)
treea2c10f60c3b3ee9b61acd1109ee21adc20d9cc72
parent9b3715d6ade58a41883a912d6c01e1e502645323 (diff)
repere (6nov17)
git-svn-id: svn://tug.org/texlive/trunk@45708 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/metapost/repere/README.md2
-rw-r--r--Master/texmf-dist/doc/metapost/repere/repere-doc.pdfbin665712 -> 428827 bytes
-rw-r--r--Master/texmf-dist/doc/metapost/repere/repere-doc.tex59
-rw-r--r--Master/texmf-dist/metapost/repere/repere.mp100
4 files changed, 157 insertions, 4 deletions
diff --git a/Master/texmf-dist/doc/metapost/repere/README.md b/Master/texmf-dist/doc/metapost/repere/README.md
index 8eb44b1f8de..4af59b21bfb 100644
--- a/Master/texmf-dist/doc/metapost/repere/README.md
+++ b/Master/texmf-dist/doc/metapost/repere/README.md
@@ -1,4 +1,4 @@
-Package repere - Version 17.05 - May 10, 2017
+Package repere - Version 17.11 - November 6, 2017
This package provides MetaPost macros for drawing sec­ondary school math­e­mat­ics figures in a coordinate system :
- axis, grids
diff --git a/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf b/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf
index 66fa7f67149..bd1df01be57 100644
--- a/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf
+++ b/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/metapost/repere/repere-doc.tex b/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
index c4599fd5912..84248a2c5d5 100644
--- a/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
+++ b/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
@@ -245,7 +245,7 @@ input repere;
\section{Utilisation du fichier}
-Les macros du fichier \verb+repere.mp+ ont pour but de simplifier la création de figures dans un repère du plan avec \MP{}. L'idée de départ est de coller le plus possibles aux besoins de l'enseignement secondaire de mathématiques.
+Les macros du fichier \verb+repere.mp+ ont pour but de simplifier la création de figures dans un repère du plan avec \MP{}. L'idée de départ est de coller le plus possible aux besoins de l'enseignement secondaire de mathématiques.
Il est possible d'utiliser \verb+repere+ et \verb+geometriesyr+ (les macros de Christophe \textsc{Poulain} pour la géométrie disponibles à l'adresse \url{http://melusine.eu.org/syracuse/poulecl/macros/}) dans une même figure comme le montre l'exemple page \pageref{exgeom}.
@@ -851,7 +851,64 @@ draw tangente(p,2.5);
fin;
\end{exemple}
+\subsection{Interpolation}
+\MP{} propose les commandes suivantes (qui peuvent être combinées dans une même courbe) :
+
+\begin{description}
+\item[A-{}-B-{}-C-{}-] Ligne brisée passant par les points $A$, $B$, $C$...
+\item[A..B..C..] Courbe de Bézier passant par les points $A$, $B$, $C$...
+\end{description}
+
+\verb|repere.mp| propose aussi les commandes suivantes :
+
+\begin{description}
+\item[lagrange(A,B,C,...)] Courbe passant par $A$, $B$, $C$... représentant le polynôme de degré maximal $n-1$ tel que $P(x_A)=y_A$, $P(x_B)=y_B$...
+\item[lagrange(x1,y1,x2,y2,x3,y3...)] Courbe passant par les points $(x_1;y_1)$, $(x_2;y_2)$, $(x_3;y_3)$... représentant le polynôme de degré maximal $n-1$ tel que $P(x_i)=y_i$.
+\end{description}
+
+\begin{exemple}[0.55]
+repere.orth(-1,10,7cm,-1,10);
+pair A[],B[];
+A[1]=(1,1);A[2]=(3,5);A[3]=(5,8);
+A[4]=(7,2);A[5]=(9,4);
+B[1]=(1,6);B[2]=(3,7);B[3]=(6,4);B[4]=(8,9);
+path L;L=lagrange(A[1],A[2],A[3],A[4],A[5]);
+path C;C=lagrange(1,6,3,7,6,4,8,9);
+draw quadrillage(1,1);
+draw axes(1,1);
+draw L epaisseur 1 couleur rouge;
+draw C epaisseur 1 couleur bleu;
+for i=1 upto 5: nomme.llft(A[i]) couleur rouge;
+endfor
+for i=1 upto 4: nomme.llft(B[i]) couleur bleu;
+endfor
+fin;
+\end{exemple}
+
+
+\begin{description}
+\item[hermite((x1,y1,y'1),(x2,y2,y'2)...)] Courbe passant par les points $(x_1;y_1)$, $(x_2;y_2)$, $(x_3;y_3)$... représentant le polynôme de degré maximal $2n-1$ tel que $P(x_i)=y_i$ et $P'(x_i)=y'_i$.
+\item[hermite(A,y'A,B,y'B,C,y'C...)] Courbe passant par les points $A$, $B$, $C$... représentant le polynôme de degré maximal $2n-1$ tel que $P(x_A)=y_A$ et $P'(x_A)=y'_A$...
+\end{description}
+
+\begin{exemple}[0.55]
+repere.orth(-1,10,7cm,-1,10);
+draw quadrillage(1,1);
+draw axes(1,1);
+path H;H=hermite((1,2,0.5),(4,8,0),(8,2,2));
+draw H epaisseur 1 couleur bleu;
+draw tangente.double(H,1) couleur bleu;
+draw tangente.double(H,4) couleur bleu;
+draw tangente.double(H,8) couleur bleu;
+pair A,B,C; A:=(1,8);B:=(4,4);C:=(7,6);
+path I;I=hermite(A,-1,B,0.5,C,2);
+draw I epaisseur 1 couleur rouge;
+draw tangente.double(I,1) couleur rouge;
+draw tangente.double(I,4) couleur rouge;
+draw tangente.double(I,7) couleur rouge;
+fin;
+\end{exemple}
\section{Suites}
\begin{description}
diff --git a/Master/texmf-dist/metapost/repere/repere.mp b/Master/texmf-dist/metapost/repere/repere.mp
index a9094e3e10c..f12b866c56e 100644
--- a/Master/texmf-dist/metapost/repere/repere.mp
+++ b/Master/texmf-dist/metapost/repere/repere.mp
@@ -2,7 +2,7 @@
%% repere.mp %%
%% Macros pour la construction de figures dans un repère %%
%% o.peault@posteo.net %%
-%% Version 17.05 (Mai 2017) %%
+%% Version 17.11 (Novembre 2017) %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% This work may be distributed and/or modified under the conditions of
@@ -1409,6 +1409,102 @@ vardef antecedents(suffix P)(expr y,p)=
for i=1 upto 10: P[i]:=xpart (PP[i]); endfor
enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% INTERPOLATION %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%Novembre 2017
+vardef polynomelagrangept(text t)(expr x)=
+ 0
+ for i=t:
+ + ypart i
+ for j=t:
+ if i<>j: *((x-xpart j)/(xpart i - xpart j)) fi
+ endfor
+ endfor
+enddef;
+
+%Novembre 2017
+vardef polynomelagrangeval(text t)(expr x)=
+save tmp,k,j,ab,or;
+pair tmp[];numeric k,j,ab,or;
+k:=0;j:=0;
+for i=t:
+ if j=0: ab:=i else: or:=i; k:=k+1; tmp[k]=(ab,or) fi;
+ j:=1-j;
+endfor
+polynomelagrangept(tmp[1] for ii=2 upto k: ,tmp[ii] endfor)(x)
+enddef;
+
+%Novembre 2017
+vardef polynomelagrange(text t)(expr x)=
+ for i=t:
+ if pair i: polynomelagrangept(t)(x)
+ else: polynomelagrangeval(t)(x)
+ fi
+ exitif true
+ endfor
+enddef;
+
+
+%Novembre 2017
+vardef lagrange(text t)=
+ vardef _tmp_poly_lag(expr x)= polynomelagrange(t)(x) enddef;
+ courbefonc(_tmp_poly_lag)()
+enddef;
+
+
+%Novembre 2017
+vardef polynomehermitetriplet(text t)(expr x)=
+%t=(x1,y1,z1),(x2,y2,z2)...
+%H(X)=Σqi(X)Pi(X) avec qi(X)=Li(X)² et Pi(X)=yi+(X-xi)(zi-qi'(xi)yi)
+%qi'(xi)=Σ2/(xi-xj)
+0
+for i=t:
+ +
+ (greenpart i+(x-redpart i)*(bluepart i -
+ (0
+ for j=t: %qi'(xi)
+ if i<>j: + 2/(redpart i - redpart j) fi
+ endfor
+ )
+ *greenpart i))
+ for j=t: % qi(X)
+ if i<>j: *(((x-redpart j)/(redpart i - redpart j))**2) fi
+ endfor
+endfor
+enddef;
+
+%Novembre 2017
+vardef polynomehermiteptder(text t)(expr x)=
+save tmp,k,j,re,gr,bl;
+color tmp[];numeric k,j,re,gr,bl;
+k:=0;j:=0;
+for i=t:
+ if pair i: re:= xpart i; gr:= ypart i else: bl:=i; k:=k+1; tmp[k]=(re,gr,bl) fi;
+endfor
+polynomehermite(tmp[1] for ii=2 upto k: ,tmp[ii] endfor)(x)
+enddef;
+
+%Novembre 2017
+vardef polynomehermite(text t)(expr x)=
+ for i=t:
+ if color i: polynomehermitetriplet(t)(x)
+ else: polynomehermiteptder(t)(x)
+ fi
+ exitif true
+ endfor
+enddef;
+
+
+%Novembre 2017
+vardef hermite(text t)=
+ vardef _tmp_poly_her(expr x)= polynomehermite(t)(x) enddef;
+ courbefonc(_tmp_poly_her)()
+enddef;
+
+
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% TANGENTES %%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1864,7 +1960,7 @@ vardef projboitemoustache@#(text t)=
_lab_[4]:="$Q_3$";
_lab_[5]:="$X_{max}$";
elseif n=1:
- if t=0: for i=1 upto 5: _lab_[i]:=nullpicture; endfor
+ if t=0: for i=1 upto 5: _lab_[i]:=""; endfor
else:
tmp:=floor(t);
for i=1 upto 5: