Хорошая неопределенность (интервал) арифметической библиотеки? - PullRequest
7 голосов
/ 08 марта 2009

отредактировано

Учитывая, что слова "неопределенность" и "неопределенность" довольно распространены повсеместно, Google трудно "арифметику неопределенности" и получить что-либо сразу полезное. Таким образом, может ли кто-нибудь предложить хорошую библиотеку подпрограмм, практически на любом языке программирования / написания сценариев, которая реализует обработку неопределенных значений согласно этому описанию:

Используйте арифметику неопределенности для записи значений, которые являются приблизительными, для которых имеется измеренный допуск. Это когда мы не уверены в значении, но знаем верхнюю и нижнюю границы, которые оно может иметь, выраженное как значение ±.

Ответы [ 6 ]

6 голосов
/ 08 марта 2009

Я считаю, " Интервальная арифметика " - более распространенное название того, что вы ищете. boost :: interval будет моим первым выбором для вспомогательной библиотеки.

4 голосов
/ 23 сентября 2009

Если вы ищете модуль распространения ошибок (он отличается от интервальной арифметики , но распространение ошибок - это то, что обычно используется учеными), я бы сказал, что у вас есть Посмотрите на мой uncertainties модуль Python. Он прозрачно обрабатывает распространение ошибок / неопределенностей и, в отличие от многих реализаций, правильно обрабатывает корреляции между переменными.

3 голосов
/ 13 ноября 2013

для справки, поскольку для вас, вероятно, уже слишком поздно, я бы предложил BIAS / Profil: http://www.ti3.tuhh.de/keil/profil/index_e.html

3 голосов
/ 08 марта 2009

Посмотрите на Распространение ошибок Томаса Фланагана Java класс. Подход, который он использует, наиболее эффективен для обработки неопределенности без лишних проблем.

1 голос
/ 08 марта 2009

Я бы, наверное, пошел по этому поводу, объявив класс UnterminValue с такими методами и свойствами, как (psuedocode):

class UncertainValue
{
  private double upperbound;
  private double lowerbound;
  private double nominalvalue;
  private double certainty;
  ...
  UncertainValue add(UncertainValue value);
  UncertainValue multiply(UncertainValue factor);
}

Я понимаю, что это не отвечает на ваш вопрос с точки зрения поиска готовой библиотеки, извините.

1 голос
/ 08 марта 2009

Это не библиотека, но ваш вопрос напомнил мне пример в "Expert F #", который описывает вероятностные рабочие процессы:

вместо того, чтобы писать выражения для вычисления, скажем, целых чисел, мы вместо этого пишем выражения, которые вычисляют распределения целых чисел. Это тематическое исследование основано на работе Рамси и Пфеффера от 2002 года.

Вы можете прочитать отрывок в книгах Google .

...