function [ordre,correlation]=regression_longueur_approchee_courbe(a,b,x,y,xp,yp,gra,chometh,Nmin,Nmax,Ntot)

% regression sur le calcul de la longueur exacte et approchée d'une courbe
%
% *********************************************************
% [ordre,correlation]=regression_longueur_approchee_courbe(a,b,x,y,xp,yp,gra,chometh,Nmin,Nmax,Ntot)
% * Variables d'entrées :
%    * a,b,x,y : voir longueur_approchee_courbe
% * Variables d'entrées optionnelles :
%    * xp,yp,gra,chometh,Nmin,Nmax,Ntot : voir dans la fonction
% * Variables de sortie : 
%    * ordre,correlation
%
%
% ************ Fonctions auxiliaires utilisées ************
%
%  longueur_approchee_courbe
%
% *********************************************************
%
% 2025 by          Jérôme BASTIEN
%                  Université Claude Bernard Lyon I, Polytech, Laboratoire LIBM, Villeurbanne
%                  E-Mail : jerome.bastien@univ-lyon1.fr
%
%
% exemple
%   close all;tic;[ordre,correlation]=regression_longueur_approchee_courbe(0,1,@(t) t,@(t) t.^2/2,@(t) 1,@(t) t,1,0,1,5,50);toc;ordre,correlation
%   close all;tic;[ordre,correlation]=regression_longueur_approchee_courbe(0,1,@(t) t,@(t) t.^2/2,@(t) 1,@(t) t,1,1,1,5,50);toc;ordre,correlation
% L'un est beaucoup plus rapide que l'autre, mais curieusement, les ordres
% sont un peu différents ?!!

if nargin<=4||isempty(xp)
    syms t;
    xp=inline(vectorize((diff(x(t)))));
    yp=inline(vectorize((diff(y(t)))));
end
if nargin<=6||isempty(gra)
    gra=1;
end
if nargin<=7||isempty(chometh)
    chometh=1;
end
if nargin<=8||isempty(Nmin)
    Nmax=6;
end
if nargin<=9||isempty(Nmax)
    Nmin=1;
end
if nargin<=10||isempty(Ntot)
    Ntot=100;
end
N=fix(logspace(Nmax,Nmin,Ntot));
er=zeros(1,Ntot);
h=(b-a)./N;
for i=1:Ntot
    if i==1
        grag=1;
    else
        grag=0;
    end
    if i==1
        [Lappr,Lexa]=longueur_approchee_courbe(N(i),a,b,x,y,xp,yp,grag,chometh);
    else
        Lappr=longueur_approchee_courbe(N(i),a,b,x,y,xp,yp,grag,chometh);
    end
    er(i)=abs(double(Lexa)-Lappr);
    disp([num2str(((i)/Ntot)*100),' % du calcul terminé']);
end
if gra
    figure;
    loglog(h,er);
end
[ordre,b,correlation]=regression_lineaire(log10(h),log10(er));
