input courbescp13; input TEX; vardef flechemilieu(expr aa,bb)= save fle; picture fle; fle=image( drawarrow aa--(1/2[aa,bb]); draw (1/2[aa,bb])--bb; ); fle enddef; vardef suite(expr uu,npt)(text fonct)=%uu=u0,npt=rang maximal à placer, fonct : porte bien son nom :) save $; picture $; numeric dep;%depart dep=uu; $=image( for i:=1 upto npt: x:=dep; y@[i]:=fonct; if i=1 : draw flechemilieu(placepoint(dep,0),placepoint(dep,y@[i])); draw flechemilieu(placepoint(dep,y@[i]),placepoint(y@[i],y@[i])); fill (fullcircle scaled 1mm shifted placepoint(dep,0)) withcolor violet; fi; fill (fullcircle scaled 1mm shifted placepoint(y@[i],0)) withcolor orange; label.bot(TEX("$u_"&decimal(i)&"$"),placepoint(y@[i],0)); if i<>1: draw flechemilieu(placepoint(dep,dep),placepoint(dep,y@[i])); draw flechemilieu(placepoint(dep,y@[i]),placepoint(y@[i],y@[i])); fi; dep:=y@[i]; endfor; ); $ enddef; beginfig(1); cadre((0,0),(13,13)); origine((1,1)); unites(4,4); draw grille(0.1) withcolor gris; draw axes; graduantx.bot; graduanty.lft; draw courbe1(0,3,100,x**2) withcolor bleu; draw labelise1(btex $y=x^2$ etex,0.55); draw courbe2(0,3,2,x) withcolor rouge; draw suite(1.1,3,x**2); label.bot(btex $u_0$ etex,placepoint(1.1,0)); draw suite(0.8,4,x**2); label.bot(btex $v_0$ etex,placepoint(0.8,0)); endfig; beginfig(2); cadre((0,0),(13,13)); origine((1,1)); unites(11,11); draw grille(0.1) withcolor gris; draw axes; graduantx.bot; graduanty.lft; draw courbe1(0,2,100,-((x-0.5)**2)+1) withcolor bleu; draw labelise1(btex $y=-(x-0,5)^2+1$ etex,0.1); draw courbe2(0,3,2,x) withcolor rouge; draw suite(0.5,8,-((x-0.5)**2)+1); label.bot(btex $u_0$ etex,placepoint(0.5,0)); endfig; beginfig(3); cadre((0,0),(13,13)); origine((1,1)); unites(8,8); draw grille(0.1) withcolor gris; draw axes; graduantx.bot; graduanty.lft; draw courbe1(0,2,100,sqrt(x)) withcolor bleu; draw labelise1(btex $y=\sqrt x$ etex,0.7); draw courbe2(0,3,2,x) withcolor rouge; draw suite(0.5,3,sqrt(x)); label.bot(btex $u_0$ etex,placepoint(0.5,0)); endfig; end