Calcul des termes d'une suite définie par récurrence

Fermé
Clemarze Messages postés 2 Date d'inscription mercredi 15 février 2023 Statut Membre Dernière intervention 16 février 2023 - Modifié le 16 févr. 2023 à 15:17
mamiemando Messages postés 33545 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 février 2025 - 17 févr. 2023 à 16:01

Bonjour,

J'ai un QCM de python à faire, mais j'ai beaucoup de mal. Serait-il possible qu'une personne m'aide à le résoudre ? 

J'ai par exemple cette question : 

Calculer le terme d'indice {962} de la suite (u_n) définie par :
u_{n+1}={12.0\cdot \sin \left( u_{n}+2.0\cdot n \right)}, \ u_0={2.0}

Vous donnez votre réponse comme un décimal avec au moins cinq chiffres significatifs.

Je ne vois pas qu'elle programme je peux faire ?

En vous remerciant.

A voir également:

5 réponses

yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 Ambassadeur 1 568
15 févr. 2023 à 17:35
0

Bonjour, 

Mais Ducoup pour la question que j’ai posé sur les suites je ne vois pas dutout comment faire j’ai essayé de la faire mais je ne vois pas comment faire des suites en Python ?

0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
15 févr. 2023 à 18:18

Tu connais bien Python?

0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
15 févr. 2023 à 17:54

Bonjour,

C'est pas Ducoup, c'est du coup :-)

Mais avant de la programmer en Python, est-ce que tu sais le faire sur le papier ?

0
mamiemando Messages postés 33545 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 février 2025 7 829
Modifié le 16 févr. 2023 à 13:52

Bonjour,

Peut-être devrais-tu commencer par chercher comment écrire une fonction récursive en python ? Et normalement la suite devrait être assez naturelle.

Pour rappel, la fonction sinus en python correspond à math.sin

from math import sin

print(sin(0))

Bonne chance

0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568
16 févr. 2023 à 15:11

L'utilisation d'une fonction récursive me semble une distraction gaspilleuse dans ce contexte.

0
mamiemando Messages postés 33545 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 février 2025 7 829 > yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025
16 févr. 2023 à 15:16

Ah bon ? Pourtant u(n+1) dépend de u(n) donc à moins d'avoir une forme close de u(n) je ne vois pas trop comment tu t'en sors sans fonction récursive.

0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568 > mamiemando Messages postés 33545 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 février 2025
16 févr. 2023 à 17:19

u(n+1)=u(n)*(n+1)
u1=1

Je peux faire avec une fonction récursive, je préfère faire avec une boucle.  Moins gourmand, et plus accessible pour un débutant.

def factrec(n):
    if n<2:
        return 1
    else:
        return n*factrec(n-1)
def factloop(n):
    f=1
    for i in range(2,n+1):
        f=f*i
    return f
print(factrec(5))
print (factloop(5))
0
yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025 1 568 > mamiemando Messages postés 33545 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 février 2025
17 févr. 2023 à 13:46

Ce qui compte, pour moi, ce n'est pas la facilité d'écriture, c'est la compréhension des concepts.  De mon point de vue, le pire, c'est d'écrire sans comprendre.

Je pense qu'un débutant doit bien maitriser les concepts itératifs avant de passer aux concepts récursifs.

1
mamiemando Messages postés 33545 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 25 février 2025 7 829 > yg_be Messages postés 23476 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 février 2025
17 févr. 2023 à 16:01

Dans l'absolu je suis d'accord, mais fait amusant, le premier langage que ma promotion a vu en école d'ingénieur était... OCamL... donc tout en récursif, y compris parcourir une liste :-) L'avantage c'est qu'on était au point sur les critères d'arrêts après ça :D

1

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

Posez votre question

Je suis d'accord avec yg_be.
Bien sûr, la solution récursive est plus élégante, mais la solution itérative est aussi simple dans le cas présent.
Le terme courant ne dépend que du terme précédent qui peut être accumulé dans une simple variable.
Même un problème comme la suite de Fibonacci se fait facilement en itératif.

0