gpt4 book ai didi

wolfram-mathematica - 如何执行整合规则?

转载 作者:行者123 更新时间:2023-12-04 04:13:11 25 4
gpt4 key购买 nike

假设我已经检查了下面的身份,如何在Mathematica中实现它?

(* {\[Alpha] \[Element] Reals, \[Beta] \[Element] Reals, \[Mu] \[Element] Reals, \[Sigma] > 0} *)

Integrate[CDF[NormalDistribution[0, 1], \[Alpha] + \[Beta] x] PDF[
NormalDistribution[\[Mu], \[Sigma]],
x], {x, -\[Infinity], \[Infinity]}] -> CDF[NormalDistribution[0, 1], (\[Alpha] +
\[Beta] \[Mu])/Sqrt[1 + \[Beta]^2 \[Sigma]^2]]

最佳答案

完成您请求的大多数方法可能会涉及向内置函数添加规则(例如IntegrateCDFPDF等),这可能不是一个好选择。这是一种稍微柔和的方法,使用基于Block的技巧-宏:

ClearAll[withIntegrationRule];
SetAttributes[withIntegrationRule, HoldAll];
withIntegrationRule[code_] :=
Block[{CDF, PDF, Integrate, NormalDistribution},
Integrate[
CDF[NormalDistribution[0, 1], \[Alpha]_ + \[Beta]_ x_] PDF[
NormalDistribution[\[Mu]_, \[Sigma]_], x_], {x_, -\[Infinity], \[Infinity]}] :=
CDF[NormalDistribution[0, 1], (\[Alpha] + \[Beta] \[Mu])/
Sqrt[1 + \[Beta]^2 \[Sigma]^2]];
code];

这是我们如何使用它:
In[27]:= 
withIntegrationRule[a=Integrate[CDF[NormalDistribution[0,1],\[Alpha]+\[Beta] x]
PDF[NormalDistribution[\[Mu],\[Sigma]],x],{x,-\[Infinity],\[Infinity]}]];
a

Out[28]= 1/2 Erfc[-((\[Alpha]+\[Beta] \[Mu])/(Sqrt[2] Sqrt[1+\[Beta]^2 \[Sigma]^2]))]

当我们的规则不匹配时,它将仍然有效,并自动切换到正常的评估路线:
In[36]:= 
Block[{$Assumptions = \[Alpha]>0&&\[Beta]==0&&\[Mu]>0&&\[Sigma]>0},
withIntegrationRule[b=Integrate[CDF[NormalDistribution[0,1],\[Alpha]+\[Beta] x]
PDF[NormalDistribution[\[Mu],\[Sigma]],x],{x,0,\[Infinity]}]]]

Out[36]= 1/4 (1+Erf[\[Alpha]/Sqrt[2]]) (1+Erf[\[Mu]/(Sqrt[2] \[Sigma])])

我在假设中将 \[Alpha]设置为 0以使封闭形式的集成成为可能。

另一种选择是实现自己的专用集成器。

关于wolfram-mathematica - 如何执行整合规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7553975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com