#include "optim.h"

double J(PVecteurRn px) {
	double a,b,c;

	a = px->pvecteur[0];
	b = px->pvecteur[1];
	return (a-1.0)* (a-1.0) +  (b-2.0) * (b-2.0);
}

PVecteurRn gradientJ(PVecteurRn px) {
	PVecteurRn pgradient;
	double x1, x2;

	pgradient = allouerVecteurRn(px->dimension);
	x1 = px->pvecteur[0];
	x2 = px->pvecteur[1];
	pgradient->pvecteur[0] = 2.0 * (x1-1.0);
	pgradient->pvecteur[1] = 2.0 * (x2-2.0);
	return pgradient;
}