Je cherche un moyen d'effectuer une opération plus/moins en python 2 ou 3. Je ne connais pas la commande ou l'opérateur, et je ne trouve pas de commande ni d'opérateur pour le faire.
Est-ce que je manque quelque chose?
Une autre possibilité: incertitudes est un module permettant d'effectuer des calculs avec des tolérances d'erreur, c'est-à-dire
(2.1 +/- 0.05) + (0.6 +/- 0.05) # => (2.7 +/- 0.1)
qui serait écrit comme
from uncertainties import ufloat
ufloat(2.1, 0.05) + ufloat(0.6, 0.05)
Edit: J'obtenais des résultats bizarres, et après un peu plus de jeu avec ceci, j'ai compris pourquoi: l'erreur spécifiée n'est pas une tolérance (limites additives strictes comme dans les plans d'ingénierie) mais une valeur d'écart-type - qui C’est pourquoi le calcul ci-dessus a pour résultat
ufloat(2.7, 0.07071) # not 0.1 as I expected!
Si vous utilisez matplotlib, vous pouvez imprimer des expressions mathématiques similaires à celles utilisées avec Latex. Pour le symbole +/-, vous utiliseriez:
print( r"value $\pm$ error" )
Où r convertit la chaîne en un format brut et les signes-$ entourent la partie de la chaîne qui est une équation mathématique. Tous les mots de cette partie seront dans une police différente et ne comporteront aucun espace, sauf indication explicite du code correct. Cela se trouve sur la page correspondante de la documentation matplotlib .
Désolé si c'est trop de niche, mais je suis tombé sur cette question en essayant de trouver cette réponse même.
Je pense que vous voulez cela pour une équation comme celle-ci;
Eh bien, il n’existe aucun opérateur pour cela sauf si vous n’utilisez pas SymPy , vous pouvez uniquement créer une instruction if
et rechercher chaque multiplicateur.
Si vous souhaitez imprimer le symbole ±, utilisez simplement:
print(u"\u00B1")
Il n’existe pas encore d’objet de ce type dans SymPy (comme vous avez pu le constater, il existe un problème suggérant un https://github.com/sympy/sympy/issues/5305 ). Ce n'est pas difficile à imiter, cependant. Créez simplement un symbole et échangez-le avec +1 et -1 séparément à la fin. Comme
pm = Symbol(u'±') # The u is not needed in Python 3. I used ± just for pretty printing purposes. It has no special meaning.
expr = 1 + pm*x # Or whatever
# Do some stuff
exprpos = expr.subs(pm, 1)
exprneg = expr.subs(pm, -1)
Vous pouvez également simplement suivre deux équations dès le départ.
Au lieu de calculer des expressions comme
s1 = sqrt((125.0 + 10.0*sqrt(19)) / 366.0)
s2 = sqrt((125.0 - 10.0*sqrt(19)) / 366.0)
vous pourriez utiliser
pm = numpy.array([+1, -1])
s1, s2 = sqrt((125.0 + pm * 10.0*sqrt(19)) / 366.0)