अधिकांश तरीके (जैसे Integrate
, CDF
, PDF
, आदि), एक अच्छा विकल्प नहीं हो सकता है। यहाँ एक थोड़ा नरम रास्ता Block
चाल का उपयोग कर रहा है, - आधारित मैक्रो: स्वचालित रूप से
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]))]
जब हमारे नियम से मेल नहीं करता है, यह अभी भी काम करेगा,:
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[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])])
जहाँ मैं मान्यताओं में 0
को \[Alpha]
सेट एक बंद के रूप में एकीकरण संभव बनाने के लिए।
एक और विकल्प आपके अपने विशेष उद्देश्य इंटीग्रेटर को लागू करने के लिए हो सकता है।
कोई होल्डएल कैसे जारी कर सकता है कि यह '(सीडीएफ [सामान्य वितरण [0, 1], \ [अल्फा] + \ [बीटा] एक्स] + सीडीएफ [सामान्य वितरण] 0, 1 के अभिन्न, कहने के लिए काम करेगा। ], \ [गामा] + \ [डेल्टा] एक्स]) पीडीएफ [सामान्य वितरण [\ [म्यू], \ [सिग्मा]], एक्स] '? मैंने 'वितरण 'की कोशिश की लेकिन यह काम नहीं किया। –
@ b.gatessucks यह 'HoldAll' की कोई समस्या नहीं है। अगर मैं इसे छोड़ देता हूं, तो हमारे मैक्रो के अंदर अभिन्न मैक्रो इसे देखे जाने से पहले अपने सामान्य मार्ग के माध्यम से मूल्यांकन करेगा, जो हम नहीं चाहते हैं। 'ब्लॉक' के अंदर, हालांकि, सभी 'अवरुद्ध' कार्य पूरी तरह से भूल जाते हैं कि वे क्या हैं। इसलिए, इस समाधान के भीतर, एकमात्र विकल्प 'एकीकृत' करने के लिए एक और नियम जोड़ना है, जैसे कि 'इंटीग्रेट [x_ + y_, varlims _]: = एकीकृत करें [x, varlims] + एकीकृत करें [y, varlims] '। आखिरकार, आप पूरे 'एकीकृत' को पुन: कार्यान्वित करना समाप्त कर देंगे, इसलिए शुरुआत से ही आप इसे प्राप्त करना चाहते हैं, इसे समझना समझ में आता है। –