fonction récursive : comment améliorer le temps de calcul?
bonsoir !!
voila j'ai écris un fonction avec matlab mais le temps de calcul est trés grand
commet je peut améliorer cette fonction pour y remédier ??
merci d'avance ;)
voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| function [tn] = cheby(n,x,N)
a=-(n*(n+1)-(2*x-1)*(x-N-1)-x)/(x*(N-x));
b=((x-1)*(x-N-1))/(x*(N-x));
if (n==0 && x==0)
tn=sqrt(1/N);
elseif (x==1 && n>=1)
tn=(1+(n*(n+1))/(1-N))*cheby(n-1,0,N);
elseif (x==0 && n>=1)
tn=(-sqrt(((N-n)*(2*n+1))/((N+n)*(2*n-1))))*cheby(n-1,0,N);
else
if (x>=2 && x<=(N/2))
tn=a*cheby(n,x-1,N)+b*cheby(n,x-2,N);
else
tn=cheby(n,(N-1-x),N)/(-1.^n);
end
end |