[Matlab/Octave] Fonction x_n = f(x_(n-1))

Fonction x_n = f(x_(n-1)) [Matlab/Octave] - Divers - Programmation

Marsh Posté le 13-11-2017 à 09:20:50    

Bonjour,  
Je début dans la programmation Matlab/Octave et j'ai quelques difficultés à "parraléliser" ma manière de penser.  
 
Prenons un exemple simple: les intérêts composés. J'ai un somme de départ et ensuite pour obtenir la valeur au bout de n années, on doit multiplier la précédente par le taux d'intérêt. Avec une boucle for c'est facile à faire, mais existe-t-il une manière plus vectorielle de faire cela ? Sans utiliser de boucle explicite ? un truc du genre:
 

Code :
  1. x(i+1) = x(i) * taux


 
D'avance merci de votre aide et bonne journée

Reply

Marsh Posté le 13-11-2017 à 09:20:50   

Reply

Marsh Posté le 13-11-2017 à 10:44:55    

leonhard a écrit :

Bonjour,  
Je début dans la programmation Matlab/Octave et j'ai quelques difficultés à "parraléliser" ma manière de penser.  
 
Prenons un exemple simple: les intérêts composés. J'ai un somme de départ et ensuite pour obtenir la valeur au bout de n années, on doit multiplier la précédente par le taux d'intérêt. Avec une boucle for c'est facile à faire, mais existe-t-il une manière plus vectorielle de faire cela ? Sans utiliser de boucle explicite ? un truc du genre:
 

Code :
  1. x(i+1) = x(i) * taux


 
D'avance merci de votre aide et bonne journée


 
 
En fait si la question est toujours d'actualité, l'exemple des intérêts composés est un très mauvais exemple qu'il est facile de résoudre de manière vectorielle. Je reformule donc autrement:
 
On désire calculer un point fixe d'une fonction. Donc on choisit un point de départ x_0 et ensuite on pose x_1 = f(x_0), x_2 = f(x_1), etc... J'ai recherché à quelques endroits, et je n'ai pas trouvé de méthode générale qui n'utilise pas de boucle for.. peut-être que c'est pas possible ;)
 
Merci de votre aide et bonne journée

Reply

Marsh Posté le 13-11-2017 à 12:38:18    

Pour ta formule initiale on peut simplement transformer: x(n)=x0 * taux**n. Il y a une histoire de suites et différentes façons d'écrire la même chose la-dedans mais je sais plus les détails, les cours de maths ça date...

Reply

Marsh Posté le 14-11-2017 à 15:05:55    

rat de combat a écrit :

Pour ta formule initiale on peut simplement transformer: x(n)=x0 * taux**n. Il y a une histoire de suites et différentes façons d'écrire la même chose la-dedans mais je sais plus les détails, les cours de maths ça date...


 
 
Oui justement c'est pour cela que l'exemple du taux d'intérêt est vraiment un exemple à la con, c'est une bête série géometrique. Entretemps, je me suis adressé à un collègue qui en sait beaucoup plus que moi dans Matlab/Octave et il ne sait pas non plus. Donc soit c'est pas possible, soit la solution est un peu une ruse de sioux ;) Je vais continuer à creuser..
merci de ton aide !

Reply

Marsh Posté le 14-11-2017 à 18:59:00    

Bonjour,
 
Je n'arrive pas à comprendre si le problème est mathématique ou algorithmique.
 
Si c'est mathématique ça dépend en effet de ta fonction.
Si c'est algorithmique alors il existe aussi la possibilité de passer par une fonction récursive.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed