Itération jusque infini avec boucle for() ou while()
ayoubs
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
tj anh Messages postés 23 Statut Membre -
tj anh Messages postés 23 Statut Membre -
Bonjour,
je cherche à programmer cette fonction S mais je ne sais pas comment faire pour le " infini " :
S=0;
for ( m=1; m-->infini; m++)
for ( n=1; n-->infini; n++)
{
A[m,n]= f(m,n); // f(m,n) est une fonction de m et n, A[m,n] tableau de 2 dimension
S=S+A[m,n];
}
c urgent , merci d'avance.
je cherche à programmer cette fonction S mais je ne sais pas comment faire pour le " infini " :
S=0;
for ( m=1; m-->infini; m++)
for ( n=1; n-->infini; n++)
{
A[m,n]= f(m,n); // f(m,n) est une fonction de m et n, A[m,n] tableau de 2 dimension
S=S+A[m,n];
}
c urgent , merci d'avance.
5 réponses
-
C'est du C++ ça ?
Si tu veux que ça n'ait pas de limite, alors tu ne mets rien :
for (m=1;;m++) for (n=1;;n++) S += A[m][n] = f(m,n);
Remarque : un tableau ne pouvant pas avoir une taille infinie tu vas te retrouver avec une jolie erreur au moment où "n" dépassera la taille de ton tableau...La confiance n'exclut pas le contrôle-
Merci pour votre réponse, c juste une écriture pour présenter le problème ( c pas une écriture correct pour c++ )
dans la problématique que j'ai, le m et n tend vers l'infini...en fait c une double sommation ( sigma de m,n=1, jusq infini)... aussi la fonction tend vers 0 qd m et n tend vers infini .. c'est pour ca j'ai pensé à un tableau 2D, sachant que je ne suis pas d'origine informaticien...
voila le problème exactement:
R = A (multiplier par )sigma(m=1 --> inf) sigma(n=1--> inf) d'une fonction (m,n) + B
A et B sont des constantes.- Tu ne peux pas faire de sommes infinies en C à moins d'avoir un temps infini et une mémoire infinie pour faire tourner ton programme.
Si tu veux faire du calcul formel utilises les outils adaptés comme maxima pour programmer un peu, voire des outils en ligne. Exemple : sum(sum(f(m,n),n,1,infinite),m,1,infinite))
-
Merci beaucoup pour ton aide.
Je vais voir si c'est possible de le faire avec ce logiciel Maxima, sinon je vais voir avec Matlab ou scilab ou autres ..
Bonne journée ^^
-
-
J'ajouterai, attention au type de m et n. Les types en informatique ont une valeur maximale, qui, si tu la dépasses, tu te retrouve à la valeur minimale.
Ceci est à prendre en compte pour les grands nombres.
Ensuite, je suppose que S et f(m,n) sont des réels (sinon, pas trop de sens). Et que la suite converge. Il arrivera donc un moment où l'ajout d'un nouveau terme ne changera pas le résultat (troncature numérique qui fait que "a+b==a"). Il n'est donc pas forcément nécessaire d'aller très loin dans les itérations. -
Veuillez nous une description complète de cette fonction, votre question est un peu vague
-
Bonjour,
c'est une fonction simple, juste le problème de l'itération jusque l'infini, malheureusement et logiquement ce n'est pas possible je pense en c++... la solution que j'ai est de choisir la plus grande valeur possible ( à la place de l'infini ) et de voir si ça donne les résultats attendus..
en gros c'est double sigma ( m,n=1 jusq infini) d'une fonction f(m;n))
pour plus de détails c la solution de Rao et Sarma (1981) pour la recharge artificielle des nappes.
-
-
-
-
-
Je crois que ce n'est pas possible et logique de calculer la somme d'une fonction jusqu'à l'infinie avec c++, ...
parce que en fin de compte je veux que mon programme m'envoie le résultat de la sommation, et pour avoir ce résultât, surement il doit y avoir une condition ou une barrière pour arrêter le calcul de la somme et renvoi le résultat, mais je n'ai pas de condition à insérer en vu de la problématique, malgré que ma fonction tend vers 0 quand le n (variable d'itération) tend vers infini.. -
-
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
pour que votre fonction fonctionne jusqu'a l'infini, tu dois utiliser la boucle while ou bien do while, et non pas for, car cette derniere est utilisée lorsque le nombre d'iterations est connu