2017-03-17 2 views
1

J'essaie de calculer la limite d'une fonction avec une contrainte sur l'un de ses paramètres. Malheureusement, je suis coincé avec la contrainte de paramètre.Sympy - Limite avec contrainte de paramètre

J'ai utilisé le code suivant où 0 < alpha < 1 doit supposer

import sympy 
sympy.init_printing() 
K,L,alpha = sympy.symbols("K L alpha") 
Y = (K**alpha)*(L**(1-alpha)) 
sympy.limit(sympy.assumptions.refine(Y.subs(L,1),sympy.Q.positive(1-alpha) & sympy.Q.positive(alpha)),K,0,"-") 

Et pourtant, cela ne fonctionne pas. Est-il possible de gérer les hypothèses comme dans Mathematica?

meilleur et je vous remercie, Fabian

Répondre

2

A ma connaissance, les hypothèses faites par le module hypothèses ne sont pas encore compris par le reste de sympy. Mais limit peut comprendre une hypothèse qui est imposed at the time a symbol is created:

K, L = sympy.symbols("K L") 
alpha = sympy.Symbol("alpha", positive=True) 
Y = (K**alpha)*(L**(1-alpha)) 
sympy.limit(Y.subs(L, 1), K, 0, "-") 

La limite évalue maintenant à 0.

Il n'y a pas un moyen de déclarer un symbole à un nombre compris entre 0 et 1, mais on peut être capable de contourner ce problème en déclarant un symbole positif, par exemple t, et en laissant L = t/(1 + t).

+0

J'aime votre solution de contournement, merci pour cette astuce. Comme vous l'avez écrit «pas encore», est-il prévu d'introduire une possibilité de déclarer des hypothèses pour les opérations de limite et autres? – Fabian

+0

Impossible de parler pour l'équipe Sympy (c'est un projet open source). S'il y a jamais une personne désireuse et capable de réécrire les sous-modules de calcul pour qu'ils utilisent de nouvelles hypothèses ... alors cela arrivera. Mais cela ne s'est pas passé depuis 2013, voir http://stackoverflow.com/a/16435975 – FTP

+0

Oui, nous aimerions le faire. Nous avons juste besoin de gens pour l'implémenter. – asmeurer