Je calculais la solution du système chaotique de Chen en utilisant la méthode différentielle transform. Le code que j'utilise est:solution système chaotique chen utilisant différentiel méthode de transformation
x=zeros(1,7);
x(1)=-0.1;
y=zeros(1,7);
y(1)=0.5;
z=zeros(1,7);
z(1)=-0.6;
for k=0:5
x(k+2)=(40*gamma(1+k)/gamma(2+k))*(y(k+1)-x(k+1));
sum=0;
for l=0:k
sum=sum+x(l+1)*z(k+1-l);
end
y(k+2)=(gamma(1+k)/gamma(2+k))*(-12*x(k+1)-sum+28*y(k+1));
sum=0;
for l=0:k
sum=sum+x(l+1)*y(k+1-l);
end
z(k+2)=(gamma(1+k)/(1+k))*(sum-3*z(k+1));
end
s=fliplr(x);
t=0:0.05:2;
a=polyval(s,t);
plot(t,a)
Qu'est-ce que ce code est de calculer x(k)
, y(k)
et z(k)
ce sont les coefficients du polynôme qui est une approximation de la solution. La solution x(t) = sum_0^infinity x(k)t^k
, et de même les autres. Mais ce code ne donne pas la sortie désirée d'une séquence chaotique le graphique de x(t)
que je reçois est:
ne serait pas là une erreur d'indexation de tableau dans la ligne 3 de votre code lorsque k = 1; et aussi gamma (1 + k)/gamma (2 + k) = 1/(k + 1) – Upstart
@Upstart, il ne jette pas une erreur, mais il a eu tort, je l'ai corrigé maintenant. Et aussi ce que je voulais écrire était 'gamma (k)/gamma (k + 1) = 1/k'. – EBH
il jette toujours une erreur dans matlab.can vous m'expliquer la troisième ligne? – Upstart