How to use the Marcum-Q function as a symbolic function for vpaintegral.

When I use the following code syms x vpaintegral(marcumq(1,x),1,10); I am getting the error: Input arguments must be 'double'.
Whereas the code syms x vpaintegral(besseli(1,x),1,10); is working fine.

답변 (1개)

Karan Gill
Karan Gill 2016년 11월 17일
편집: Karan Gill 2017년 10월 17일

1 개 추천

Why do you need a variable-precision integration of this function starting frome "x"?
The error is because the marcumq function is a function from Signal Processing Toolbox that does not accept symbolic inputs. Instead, use the definition from the marcumq page ( https://www.mathworks.com/help/signal/ref/marcumq.html ) to construct the function yourself using the symbolic exponential and bessel functions.
As you pointed out, "besseli" is available as a symbolic function and thus accepts the symbolic input "x".
Best, Karan (Symbolic documentation)

카테고리

도움말 센터File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기

질문:

2016년 11월 16일

편집:

2017년 10월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by