% Etude du majorant exact d'une dérivée quatrième
% A DEFINIR AVANT : affiche=1 pour affichage et =0 pour export matex
try 
    if affiche
    end
catch
   affiche=1; 
end
syms x;
g0=exp(-x.^2);
gfact=4;
g=simplify(diff(g0,4))/gfact;
if affiche
    disp('On étudie le majorant exact de la dérivée quatrième de g donnée à un facteur près sur [0,1] par ');
    disp(g);
    disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
    disp('1)');
    disp('On peut le déterminer de façon automatique et on obtient :');
end
if annee_version>=2019
    gf=matlabFunction(g);
else
    eval(['gf=@(x)',vectorize(char(g)),';']);
end
[Msdeb,Mddeb,Mddeb]=maxabsfun(0,1,gf,[],1);
if affiche
    disp(Msdeb);
    pause;
else
    print -depsc2 dessins/corrige_majoration_fderivee4fig;
end
p=simplify(g/exp(-x.^2));
if annee_version>=2019
    pf=matlabFunction(p);
else
    eval(['pf=@(x)',vectorize(char(p)),';']);
end
[Msfin,Mfin,Mdfin]=maxabsfun(0,1,pf,[],1);
if ~affiche
    print -depsc2 dessins/corrige_majoration_fderivee4figb;
end
if affiche
    pause;
    disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
    disp('2)');
    disp('On étudie le polynôme seul donné par');
    disp(p);
    disp('On obtient :');
    disp(Mdfin);
    pause;
end
gd=simplify(diff(g)/exp(-x^2));
h=simplify(gd/(2*x));
hb=simplify(subs(h,x,sqrt(x)));
S=[sym(0);solve(h)];
Sb=solve(hb);
ind=find((double(S)>0)&(double(S)<1));
indb=find((double(Sb)>0)&(double(Sb)<1));
Sc=S(ind);
Sbc=Sb(indb);
u=simplify(feval(gf,[sym(0),sym(1),Sc]));
ub=simplify(feval(gf,[sym(0),sym(1),sqrt(Sbc)]));
[oubli,loc]=max(double(abs(u)));
absgmax=u(loc);
[oubli,locb]=max(double(abs(ub)));
absgmaxb=u(locb);
if affiche
    disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
    disp('3)');
    disp('La dérivée de g vaut : ');
    disp(['2x(',char(h),')']);
    disp('dont les 5 racines sont');
    disp(S);
    disp('de valeurs');
    disp(double(S));   
    disp('et dont les racines dans ]0,1[ sont');
    disp(Sc);
    disp('de valeurs');
    disp(double(Sc));   
    disp('les valeurs prises par g en ces points et les bords 0 et 1 sont')
    disp(u);
    disp('et la plus grande en valeur absolue est ');
    disp(absgmax);
    pause;
    disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%');
    disp('4)');
    disp('Plus précisément, le polynôme qui intervient dans l''expression de la dérivée de g est un polynôme bicarré :');
    disp(hb);
    disp('dont les racines sont : ');
    disp(Sb);
    disp('de valeurs');
    disp(double(Sb));   
    disp('et dont les racines dans ]0,1[ sont');
    disp(Sbc);
    disp('de valeurs');
    disp(double(Sbc));   
    disp('en reprendant les racines positives de ces racines, on conclue comme précédement !');
end
if u~=ub
    error('NON, c''est FAUX !!!!');
end
if absgmax~=absgmaxb
    error('NON, c''est FAUX !!!!');
end
if ~affiche
   close all; 
end
