2015-07-21 1 views
0

Я просто используя запущен при uncertainties модуль найден на http://pythonhosted.org/uncertainties/index.html#переменной неопределенности, соответствующей номинальной стоимости

Предположим, что мы имеем экспериментальную установку с температурным датчиком, который был откалиброван. Теперь рассмотрим, что калибровка дала переменную погрешность измерения, например. линейное увеличение от ± 1 К при 0 ° С до ± 4 К при 100 ° С. Можно ли определить пользовательскую функцию, которая будет использоваться при определении переменной с модулем uncertainties?

Пример:

>>> from uncertainties import ufloat 
>>> def err_fun(temp_in_C): 
..:  return 1 + 3/100 * temp_in_C 
>>> temp_meas = ufloat(10, err_fun, 'tag') 
>>> print temp_meas 
10+/-1.3 

Если да, то неопределенность переменных изменений, когда его номинальное значение изменяется?

Пример:

>>> print temp_meas 
10+/-1.3 
>>> temp_meas.nominal_value = 50 
>>> print temp_meas 
50+/-2.5 

ответ

0

Неопределенность может быть только действительное число. Таким образом, когда вы меняете номинальное значение на temp_meas.nominal_value = 50, вы изменяете только номинальное значение (а не неопределенность).

Самое простое решение в вашем случае, вероятно, чтобы создать температуру с неопределенностью на лету:

def temp_with_uncert(temp_in_C): 
    return ufloat(temp_in_C, 1 + 0.03 * temp_in_C) 

дает:

>>> temp_with_uncert(10) 
10.0+/-1.3 
>>> temp_with_uncert(50) 
50.0+/-2.5 
Смежные вопросы