Exemples de la distribution

En cliquant sur une imagette, vous accéderez au source et à l'image. En cliquant sur cette dernière, vous ouvrirez le fichier PDF associé.

calculus.xpclipping.xpcontour.xpcropplot.xpdenom.xpgeomsum.xpkoch.xplevelset.xplissajous.xp
newton.xp [ source ] [ fermer ]
newton.xp
/* -*-ePiX-*- */
#include "epix.h"
using namespace ePiX;

double f(double t) { return t*t*t-3*t+1; }
double df(double t) { return 3*t*t - 3; }

int main() 
{
  bounding_box(P(1.5,0),P(2,3));
  unitlength("1in");
  picture(2.5,2.5);
  offset(1.5,-0.25);

  begin();
  h_axis(2);

  double x0 = 2;
  label(P(x0,0), P(0,-4), "$x_i$", b);

  for (int i=0; i < 3; ++i)
    {
      dashed();     line(P(x0,0), P(x0,f(x0)));
      solid();      line(P(x0,f(x0)), P(x0-f(x0)/df(x0),0));

      x0 -= f(x0)/df(x0); // Newton's method
    }

  bold();    plot(f, x_min, x_max+0.05, 60);

  double x1 = 2-f(2)/df(2);

  label(P(1.75, f(1.75)), P(-2,2), "$y=f(x)$", tl);
  label(P(x1,0), P(0,-4), "$x_{i+1}$", b);
  label(P(1.75, df(2)*(1.75-x1)), P(0,-4), "Slope $= f'(x_i)$", br);

  end();
}
oscillator.xpparabola.xppascal.xppolar.xppole.xpshadeplot.xpslopefield.xpsphere.xpsqrt.xptorus.xpuppersum.xpweierstrass.xpwheel.xp