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

Bibliothèques tierces Python Discussion :

SymPy et dérivée partielle avec index


Sujet :

Bibliothèques tierces Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 40
    Par défaut SymPy et dérivée partielle avec index
    Bonjour,
    j'aimerai saisir la formule* suivante avec SymPy:
    Nom : Capture d’écran 2022-01-02 à 16.16.20.png
Affichages : 290
Taille : 8,2 Ko
    *Oui ça se fait bien à la main, c'est plus un exemple "simple" avant de partir sur des équations plus complexes

    mais les indices posent problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    m, a, y, i = symbols('m a y i')
    L = -(1/m) * Sum(Indexed('y',i)*log(Indexed('a',i)) + (1-Indexed('y',i))*log(1-Indexed('a',i)),(i,1,m))
    Lp = diff(L, a)
    print(Lp)
    Résultat (faux):
    Une idée?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Vagabong étudiant en annalyse du signal.
    Inscrit en
    Avril 2019
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Vagabong étudiant en annalyse du signal.
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2019
    Messages : 130
    Par défaut souci de formulation
    Dans votre example, vous calculez un gradient, qui est un vecteur et non pas un scalaire tel que vous tentez de l'implementer.
    Vous ecrivez mais c'est un abus de langage, en toute rigueur vous voudriez ecrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Lp = [diff(L, a0), diff(L, a1), ..., diff(L, an)]
    Dans votre cas, les termes de la somme sont indépendant donc le plus simple c'est de ne pas ecrire la somme complète mais seulement un des membres.

    Dans un cas plus general, vous devez a mon avis fixer i par une valeur numerique, et iterer a la main avec une boucle fort, et calculer independament la derivee pour chaque composante. Je ne suis pas sur qu'on puisse faire mieux.

    PS: une astuce de syntaxe qui peux etre utile:
    >>> sympy.symbols('i:5')
    (i0, i1, i2, i3, i4)
    >>>

Discussions similaires

  1. Jacobiennes et dérivées partielles
    Par hudson++ dans le forum MATLAB
    Réponses: 8
    Dernier message: 07/07/2008, 01h17
  2. Réponses: 6
    Dernier message: 18/02/2008, 16h14
  3. Dérivées partielles avec valeurs données
    Par renard2007 dans le forum MATLAB
    Réponses: 1
    Dernier message: 14/12/2007, 15h10
  4. Résolution de dérivées partielles
    Par Kcyril dans le forum MATLAB
    Réponses: 4
    Dernier message: 24/04/2007, 10h05
  5. Equation aux dérivées partielles.
    Par Mad__Max dans le forum MATLAB
    Réponses: 6
    Dernier message: 22/03/2007, 09h48

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