Polynômes
Courbes polynomiales, dérivées, intégrales.
%----------------------------------------------------- % tracé de courbes polynomiales % de dérivées et d'intégrales. % utilisant les fonctions spéciales polynômes % (c) JPaul Molina %----------------------------------------------------- clear all; echo on; % domaine ? echo off; vmin=input('valeur inférieure ? : '); vmax=-9e6; while (vmax<=vmin) vmax=input('valeur supérieure ? : '); end; dx=0.001; % pas trés fin pour l'intégration x=vmin:dx:vmax; % le domaine de tracé echo on; %------------------------------------------------------------------------------- %tracé de courbes polynomiales,dérivées,intégrales. % 2ème degré : entrer 2 % 3ème degré : entrer 3 % 4ème degré : entrer 4 % 5ème degré : entrer 5 echo off; index=input('Choix? : '); switch (index) case 2, a2=input('Entrer coefficient a2 : '); a1=input('Entrer coefficient a1 : '); a0=input('Entrer coefficient a0 : '); p=[a2 a1 a0]; % polynome str=sprintf('y=(%d*x^2)+(%d*x)+(%d)',a2,a1,a0); case 3, a3=input('Entrer coefficient a3 : '); a2=input('Entrer coefficient a2 : '); a1=input('Entrer coefficient a1 : '); a0=input('Entrer coefficient a0 : '); p=[a3 a2 a1 a0]; % polynome str=sprintf('y=(%d*x^3)+(%d*x^2)+(%d*x)+(%d)',a3,a2,a1,a0); case 4, a4=input('Entrer coefficient a4 : '); a3=input('Entrer coefficient a3 : '); a2=input('Entrer coefficient a2 : '); a1=input('Entrer coefficient a1 : '); a0=input('Entrer coefficient a0 : '); p=[a4 a3 a2 a1 a0]; % polynome str=sprintf('y=(%d*x^4)+(%d*x^3)+(%d*x^2)+(%d*x)+(%d)',a4,a3,a2,a1,a0); case 5, a5=input('Entrer coefficient a5 : ') a4=input('Entrer coefficient a4 : '); a3=input('Entrer coefficient a3 : '); a2=input('Entrer coefficient a2 : '); a1=input('Entrer coefficient a1 : '); a0=input('Entrer coefficient a0 : '); p=[a5 a4 a3 a2 a1 a0]; % polynome str=sprintf('y=(%d*x^5)+(%d*x^4)+(%d*x^3)+(%d*x^2)+(%d*x)+(%d)',a5,a4,a3,a2,a1,a0); otherwise error('Non prévu !'); end; clf; f=polyval(p,x); % évalue le polynôme plot(x,f,'r'); %tracé de f(x) en rouge %axis( [vmin vmax vmin vmax] ); hold on; %maintient les propriétés pour un autre tracé deriv_p = polyder(p); % calcul de la dérivée du polynôme df_dx=polyval(deriv_p,x); % dérivée sur l'ensemble du domaine plot( x,df_dx,'b'); % trace la fonction dérivée en bleu %le calcul de la primitive est simpliste : il s'agit de la somme des aires %des rectangles élémentaires ( il y a évidemment plus performant!) integr_f=cumsum(f.*dx); %ici on représente la 'somme' de vmin à 'x' limitée à vmax pour le tracé plot( x,integr_f,'g'); % trace la fonction primitive en vert xlabel('x'); ylabel('y'); title(str); posX=round(length(x)/2 ); if (posX==vmax) posX=vmax-1; end; text(x(posX),f(posX),'y=f(x)'); text(x(posX),df_dx(posX),'y'' = df/dx'); text(x(posX),integr_f(posX),'Sf(x)'); grid;
Dernière Modification : Lun 19 Mars 2007 13:28
Copyright © 1999-2010 Jean-Paul Molina Tous droits réservés.