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 18 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

5 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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
2
ayoubs Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > ayoubs Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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))
0
ayoubs Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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 ^^
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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.
1
geoinfo Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   8
 
Veuillez nous une description complète de cette fonction, votre question est un peu vague
0
ayoubs Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0
tj anh Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
décrivez le mot " infini " ???? Précisez
0
ayoubs Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai pas bien saisi ta question ^^
0
tj anh Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Bon,
votre question, c'est comment peut - on faire l'itération sans terminaison, sans achèvement ??? c'est ca ??
Si oui, Pour " for " ,
for( ; ; )
{
faire qqc
}
while ( true )
{
faire qqc
}
pendant l'itération, si vous voulez sortir, utiliser la fonc " break; "
bonne journée
0
ayoubs Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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..
0
tj anh Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
la condition pour terminer l'itération, c'est break, s'il y a une condition quelconque, la fonc " break " s'appelé, à ce temps - là, l'itération s'achevera
0
tj anh Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
En outre, pouvez - vous afficher la question complètée de cet exercise ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
geoinfo Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   8
 
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
0