Inscription / Connexion Nouveau Sujet
Niveau Loisir
Partager :

Simplifier une expression

Posté par
Jkrplz
10-09-22 à 10:07

Bonjour,

Je suis en train de créer un petit simulateur en Excel VBA, voici la formule à laquelle j'arrive et qui me donne le résultat escompté :

1 + n1 + n1n2 + n1n2n3 + ... + n1n2n3...nN

Puis-je simplifier cette somme en une expression "classique" ?

Merci beaucoup pour vos conseils

Posté par
sanantonio312
re : Simplifier une expression 10-09-22 à 11:35

Bonjour,
Je ne vois qu'une boucle For pour programmer ça.

Posté par
Ulmiere
re : Simplifier une expression 10-09-22 à 12:42

En utilisant la méthode de Horner, la boucle par contre.

1 + n_1(1 + n_2(1 + n_3(\cdots n_{N-1}(1+n_N)))\cdots)

Exemple en Python

Citation :

def horner(n):
	N = len(n)
	if N < 1:
		return 1
        
	s = 1 + n[-1]
	for j in range(N-2,-1,-1):
		s = 1 + n[j] * s
    	
	return s
  
print(horner([2,3,4,5]))

Posté par
Jkrplz
re : Simplifier une expression 10-09-22 à 14:52

Super merci, effectivement je réalise que ce n'est pas possible autrement. Merci pour la méthode de Horner

Posté par
Ulmiere
re : Simplifier une expression 10-09-22 à 15:53

Sauf si tu sais des choses sur les n_i, évidemment

Par exemple si tu sais qu'une certaine condition est vérifiée et implique que n_j = 0, tu peux prendre N = j.

Ou si les n_i sont tels que 1 + n_1 + n_1n_2 + \cdots n_1n_2\cdots n_N est solution d'un équation f(x) = 0 avec f une fonction que tu sais calculer ainsi que sa dérivée, tu peux essayer de trouver un zéro par grâce à Newton-Raphson ou à la méthode de la sécante.


Ou si les n_i décroissent très rapidement, tu peux peut-être te contenter d'une approximation, c'est-à-dire de remplacer N par un indice j < N tel que 1 + n_1 + n_1n_2 + \cdots n_1n_2\cdots n_j soit proche de 1 + n_1 + n_1n_2 + \cdots n_1n_2\cdots n_N à \varepsilon près où \varepsilon > 0 est la marge d'erreur que tu t'autorises.

Ou bien encore, si les n_i sont des entiers, il y a moyen d'accélérer les calculs en factorisant à chaque étape par le pgcd des (n_j, N> j\geqslant i).


Y'a plein de choses qui peuvent arriver

Posté par
Jkrplz
re : Simplifier une expression 11-09-22 à 21:08

Merci Umiere pour ces précisions ! Je n'ai pas besoin d'optimiser autant je vais en rester sur ton premier algorithme Bonne soirée

Posté par
Jkrplz
re : Simplifier une expression 11-09-22 à 21:09

*Ulmiere



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1674 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !