2015-01-10 4 views
5

Я ищу способ выполнить операцию плюс/минус в python 2 или 3. Я не знаю команды или оператора, и я не могу найти команду или оператор для этого.Оператор плюс/минус для python ±

Я что-то упустил?

+2

гм, что такое плюс/минус операция? Помните: в математике функция отображает значение (или набор значений) из его определения в одно значение ... –

+0

Я думаю, что для этого вам может понадобиться sympy. – tox123

+0

@ MarcusMüller он имеет в виду, когда вы делаете квадратный корень, он имеет отрицательное и положительное значение одновременно. – tox123

ответ

8

Другая возможность: uncertainties представляет собой модуль для выполнения расчетов с допусками ошибок, т.е.

(2.1 +/- 0.05) + (0.6 +/- 0.05) # => (2.7 +/- 0.1) 

, которая будет записана в виде

from uncertainties import ufloat 

ufloat(2.1, 0.05) + ufloat(0.6, 0.05) 

Edit: я получаю странные результаты, и после немного большего количества игр с этим я понял, почему: указанная ошибка не является допуском (жесткие аддитивные пределы, как в технических чертежах), но значение стандартного отклонения - вот почему приведенный выше расчет ионов приводит к

ufloat(2.7, 0.07071) # not 0.1 as I expected! 
+0

Это не ОП, я думаю, выход должен быть «2.1+ 0,05 = 2,15/2,1-0,5 = 2,05 и 0,55/0,65', как вы получите эти результаты? –

2

Я думаю, вы хотите, чтобы для такого уравнения;

enter image description here

Ну нет оператора, что, если вы не используете SymPy, только вы можете сделать, это сделать if заявления и найти каждый множитель.

1

Там нет такого объекта в SymPy еще (как вы видели, есть вопрос, предлагая один https://github.com/sympy/sympy/issues/5305). Это не сложно подражать. Просто создайте Символ и поменяйте его на +1 и -1 отдельно в конце. Как

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) 

Вы также можете просто отслеживать два уравнения с самого начала.

3

Если вы используете matplotlib, вы можете печатать математические выражения, похожие на Latex. Для +/- символа, вы должны использовать:

print(r"value $\pm$ error") 

Если г преобразует строку в исходный формат и $ -signs вокруг той части строки, которая является математическим уравнением. Любые слова, которые находятся в этой части, будут иметь другой шрифт и не будут иметь пробелов между ними, если явно не указано с правильным кодом. Это можно найти на соответствующей странице matplotlib documentation.

Извините, если это слишком ниша, но я наткнулся на этот вопрос, пытаясь найти следующий ответ.

0

Вместо вычисления выражения типа

s1 = sqrt((125.0 + 10.0*sqrt(19))/366.0) 
s2 = sqrt((125.0 - 10.0*sqrt(19))/366.0) 

вы могли бы использовать

pm = numpy.array([+1, -1]) 
s1, s2 = sqrt((125.0 + pm * 10.0*sqrt(19))/366.0) 
Смежные вопросы