IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

comment implémenter cette équation


Sujet :

Mathématiques

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 81
    Par défaut comment implémenter cette équation
    bonjour amis développeurs !!
    voila je veut implémenter l'équation suivante en matlab mais le résultat et tjr NAN quand je calcule P(1,449) quand le N est grand quoi !!
    alors que le calcule a la main me donne un résultats
    je crois que je me suis trompé au niveau de l'algo.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function [p] = P(n,N)
    p=factorial(N+n)/(((2*n)+1)*factorial((N-n)-1));
    return;

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 316
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >> factorial(449)
     
    ans =
     
       Inf
     
    >> Inf/Inf
     
    ans =
     
       NaN

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 81
    Par défaut
    svp comment faire pour que factorial(449) me retourne une valeur et non pas "INF" ???

  4. #4
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Tu peux écrire à l'adresse suivante
    MathWorks participates in the Better Business Bureau’s Safe Harbor dispute resolution process. European users may submit privacy complaints to MathWorks, or may file a complaint with the Better Business Bureau.

    The Better Business Bureau may be contacted at:
    Better Business Bureau EU Safe Harbor Program
    4200 Wilson Blvd.
    Arlington, VA 22203

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Tu peux aussi écrire P(n,N+1) en fonction de P(n,N) et en déduire une relation de récurrence... Ou simplement factoriser le numérateur par (N-n-1)!.

    P(1,449) = 30172800
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 81
    Par défaut
    j'ai utilisé la foction VPI qui se trouve a ce lien
    http://www.mathworks.com/matlabcentr...ger-arithmetic

    donc problème résolu !!

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par lucastof Voir le message
    j'ai utilisé la foction VPI qui se trouve a ce lien
    http://www.mathworks.com/matlabcentr...ger-arithmetic

    donc problème résolu !!
    Ca me rappelle une histoire de marteau pilon et de mouche...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #8
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 81
    Par défaut
    pourquoi ??

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par lucastof Voir le message
    pourquoi ??
    C'est juste que ca me parait disproportionné de calculer des factorielles à 500 chiffres, alors qu'il suffit de simplifier les termes dans la fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    (N+n)! = 1 * 2 * 3 * ................................... * N+n
     
           = 1 * 2 * 3 * ... * (N-n-1) * (N-n) * (N-n+1) *...* (N+n)
             \_______________________/
     
           =          (N-n-1)!         * (N-n) * (N-n+1) *...* (N+n)
    D'où
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
              (N-n)*...*(N+n)
     P(n,N) = ---------------
                  (2n+1)
    En particulier

    P(1,449) = (448*449*450)/3 = 30172800
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #10
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 81
    Par défaut
    oui c'est vrai !!
    que va être la forme générale de ma fonction alors ??
    et une petite question :
    comment gérer 360! /450! en matlab ??

  11. #11
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par lucastof Voir le message
    oui c'est vrai !!
    que va être la forme générale de ma fonction alors ??


    Après il faut demander a des spécialistes de Matlab comment cela se code.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  12. #12
    Membre très actif
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Par défaut
    Citation Envoyé par lucastof Voir le message
    comment gérer 360! /450! en matlab ??
    Si pour ton problème cette quantité est significativement différente de ZERO, explique nous le, il doit être passionnant !

  13. #13
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 67
    Par défaut
    Bonjour,

    Avec SciLab, il y a la fonction prod(x) et tu peux écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    prod(N-n:N+n)/(2*n+1)
    Je ne connais pas en Mathlab
    Remarque :

    Tu va retomber sur le même problème si n devient grand.
    170! est représentable en double précision IEEE mais 171! provoque un débordement (Numerical Recipes 3th edition p.257)

    Si le contexte dans lequel tu utilise P(n,N) le permet, passe en log

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/07/2008, 01h44
  2. Comment implémenter lemonldap?
    Par Aldo dans le forum Apache
    Réponses: 7
    Dernier message: 25/01/2007, 22h32
  3. Comment passer cette ligne
    Par Atchoum_002 dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 16h05
  4. Réponses: 7
    Dernier message: 19/07/2005, 09h31
  5. [débutant][JSci][Matrix]comment utiliser cette classe
    Par Clark dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 10/05/2005, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo