function [P,Psym]=developpement_limite(a,n,fun,ec,ng,yylim) % calcul en symbolique d'un développement limité à l'ordre n et éventuel tracé % % ********************************************************* % [P,Psym]=developpement_limite(a,n,fun,ec,ng,yylim) : % % * Variables d'entrées % * a : réel où est calculé le DL % * n : entier % * fun : chaine de carctère sous la forme 'f(x)' % * Variables d'entrées optionnelle % * ec: écart (si nul ou inexistant, pas de tracé, sinon tracé sur [a-ec,a+ec]) % * ng : nombre de points pour le graphique (par défaut : 1000) % * yylim : limites du graphique en y % * Variables de sortie : % * P : polynôme de la partie principal % * Variables de sortie optionnelle % * Psym : comme P mais en symbolique. % % EXEMPLE : % [P,Psym]=developpement_limite(pi/3,2,'sin(x)',1) % % % ************ Fonctions auxiliaires utilisées ************ % % aucune % % ********************************************************* % % 2013 by Jérôme BASTIEN % Université Claude Bernard Lyon I, UFRSTAPS, Laboratoire CRIS, Villeurbanne % E-Mail : jerome.bastien@univ-lyon1.fr nout=nargout; syms x; g=eval(fun); P=sym(zeros(1,n+1)); d=sym(1); if nout>=2 xx=sym(1); end for i=0:n if i>=2 d=d*sym(i); end if i>=1 g=diff(g,x); end dfa=subs(g,x,sym(a)); auss=dfa/d; P(n+1-i)=auss; if nout>=2 if i==0 Psym=auss; else xx=xx*x; Psym=auss*xx+Psym; end end end if nargin<=3|isempty(ec) ec=0; end if nargin<=4|isempty(ng) ng=1000; end if ec>0 xg=linspace(a-ec,a+ec,ng); clf; x=xg; Y=eval(fun); plot(xg,Y,xg,polyval(double(P),xg-a),'-.'); xlim([a-ec,a+ec]); if nargin>=6 ylim(yylim); end legend('fonction',['DL à l''ordre ',int2str(n),0]); end