Bonjour,
J'essaye de développer un petit programme d'approximation de fonctions par fractions rationnelles , voici mon programme

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
function [f,g]=frac(n,m,x,y)
%x vecteur d'echantillonage
%y vecteur d'echantillonage
%if size(x) size(y) test à faire sur la taille de x , y
if size(x)~=size(y)
    error('les tailles des vecteurs x et y sont différentes');
end
a=ones(1,n+1);
b=ones(1,m+1);
%maintenant on cree une fonction handle fraction rationnelle
F=@(g)polyval(g(1:n+1),x)./(polyval([g(n+2:n+m+1) 1],x).*y)-1;
%et on utilise cette fonction handle dans fminimax
z=fminimax(F,ones(1,n+m+1));
a(1:n+1)=z(1:n+1); 
% on regroupe les coefficents du numerateur dans a
b(1:m)=z(n+2:n+m+1);
% on regroupe les coefficients du denominateur dans b.
 
f=a;
g=b;
Le programme semble marcher sans problème(pas de problème de syntaxe ni de calcul), cependant les résultats sont fantaisistes , même si je lui donne des courbes polynomiales il n'arrive même par à l'approximer.

Si quelqu'un peut m'apporter une aide ou me rediriger vers un travail de qualité qui a déja été fait , je vous remercie d'avance.