Подтвердить что ты не робот

Выполнение вероятностных расчетов на более высоком уровне абстракции

К нисходящим: это не вопрос математики, это вопрос о языке программирования Mathematica.

Одна из основных характеристик Mathematica заключается в том, что она может иметь дело со многими вещами символически. Но если вы задумаетесь об этом, многие из символических функций на самом деле только наполовину символичны.

Возьмите, например, векторы. Мы можем иметь символический вектор, такой как {x, y, z}, умножить на матрицу с матрицей, полной символов, и в итоге получить символический результат, и поэтому мы могли бы рассмотреть эту символическую векторную алгебру. Но мы все знаем, что "Mathematica" прямо из коробки не позволяет вам сказать, что символ x является вектором и который задает матрицу A, A. x - тоже вектор. Это более высокий уровень абстракции, который Mathematica (в настоящее время) не очень хорошо разбирается.

Аналогично, Mathematica знает, как найти 5-ю производную от функции, которая определена в терминах ничего, кроме символов, но она недостаточно хорошо ориентирована на поиск r-й производной (см. "Как найти функцию r-й производной, когда r является символом в вопросе Mathematica?".

Кроме того, Mathematica имеет обширные возможности булевой алгебры, некоторые каменные века, но многие из них недавно были получены в версии 7. В версии 8 мы получили Probability и друзья (например, Conditioned), что позволяет рассуждать с вероятностями случайных величин с заданными распределениями. Это действительно великолепное дополнение, которое очень помогает мне в ознакомлении с этим доменом, и мне очень нравится работать с ним. Тем не менее,...

Я обсуждал с коллегой некоторые правила вероятностной логики, подобные знакомым

enter image description here

то есть условная вероятность события/состояния/результата C данного события/состояния/результата A.

В частности, мы смотрели на это:

enter image description here

и хотя я очень много говорил о Mathematica Probability, прежде чем понял, что не знаю, как это решить сразу с Mathematica. Опять же, как и абстрактные векторы и матрицы, и символические производные, это, по-видимому, слишком высокий уровень абстракции. Или это? Мой вопрос:

Не могли бы вы найти способ найти правду или ложь в вышеупомянутых и подобных уравнениях с помощью программы Mathematica?

4b9b3361

Ответ 1

→ Mathematica не позволяет вам сказать, что символ x является вектором

Конечно, это так... достаточно близко, так что это коллекция Reals. Это вызвало предположения или условия, в зависимости от того, что вы хотите сделать.

Refine[Sqrt[x]*Sqrt[y]]

Вышеприведенное не уточняет, поскольку оно предполагает, что X и Y могут быть любым символом, но если вы ограничите сферу действия, вы получите результаты:

Assuming[ x > 0 && y > 0, Refine[Sqrt[x]*Sqrt[y]]]

Было бы очень приятно иметь возможность сказать: Element[x,Reals^2] (двумерный реальный вектор), может быть, в Mathematica 9.: -)


Что касается этой проблемы:

→ Не могли бы вы найти способ найти правду или ложь в вышеупомянутых и подобных уравнениях с помощью программы Mathematica?

Пожалуйста, обратитесь к моему ответу (первый) по этому вопросу, чтобы увидеть символический подход к теореме Байеса: fooobar.com/questions/286779/...

Ответ 2

Просто взглянул на это и нашел пример из документации на Condition:

In[1]:= c = x^2 < 30; a = x > 1;

(Извините за форматирование здесь...)

In[2]:= Probability[c \[Conditioned] a, x \[Distributed] PoissonDistribution[2]] == 
Probability[c && a, x \[Distributed] PoissonDistribution[2]] / Probability[a, x \[Distributed] PoissonDistribution[2]]

Что оценивается как True и соответствует менее общей версии первого приведенного вами примера.

Я передумаю это позже, если у меня будет время.