Integrals involving symbolic probability distributions

1 Ansicht (letzte 30 Tage)
I have the following script:
a1 = 49.5;
a2 = 49.5;
b1 = 153.4787/a1;
b2 = 40.1/a2;
syms x p
assume(p<=0)
fph_n = symfun(int(gampdf(x,a1,b1)*gampdf(-p+x,a2,b2),x,0,Inf), p);
However, I keep getting MuPad errors and not sure why. Can anyone explain?

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 17 Jul. 2017
Unfortunately gampdf is only defined for numeric x; it is not part of the Symbolic toolbox.
The Symbolic Toolbox does have a symbolic equivalent, but it does not have a nice interface to it. See https://www.mathworks.com/help/symbolic/mupad_ref/stats-gammapdf.html and notice this is MuPAD, so to get at it from MATLAB you would need to use feval(symengine) or evalin(symengine)
  5 Kommentare
Walter Roberson
Walter Roberson am 18 Jul. 2017
symLIST = @(varargin)feval(symengine,'DOM_LIST',varargin{:});
symRANGE = @(a,b) feval(symengine, '_range', a, b);
syms a1 b1 a2 b2 x p
dist1 = feval(symengine, 'stats::gammaPDF', a1, b1);
dist2 = feval(symengine, 'stats::gammaPDF', a2, b2);
int(feval(symengine, dist1, x) .* feval(symengine, dist2, -p+x), x, 0, inf)
Unfortunately it leaves it unevaluated unless you give specific numeric a1, b1, a2, b2, and p.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by