如何在matlab中计算出定积分

How to calculate out put definite integral in matlab

我有 运行 用于计算以下函数的数值积分。

但在 Matlab 中,它不是数字作为输出,而是给了我一个很大的表达式。

gamma = sqrt(alpha^2 - beta^2);
K1=besselk(1,alpha*sqrt(delta^2+(x-mu)^2));
pdf = alpha*delta* K1/(pi*sqrt(delta^2+(x-mu)^2)) * exp(delta*gamma+ beta*(x-mu));

prob = int(pdf , x, 0,0.5);

使用以下参数:

mu = 0.034 ; 


delta = 2.12; 

alpha = 0.05;
beta = -0.001; 

我收到了这个结果。

int((53*exp(59679899628370215233/562949953421312000000 - x/1000)*besselk(1, ((x - 17/500)^2 + 2809/625)^(1/2)/20))/(500*pi*((x - 17/500)^2 + 2809/625)^(1/2)), x, 0, 1/2)

如果能回答这个问题,我将不胜感激。我如何在 Matlab 中计算这个表达式?

您得到的结果还没有评估。要获得具有 n 有效数字的数字答案,请使用

prob_vpa = vpa(prob, n); 

结果仍然是一个符号变量,用于进一步的符号计算。您也可以将其转换为 double,

prob_double = double(prob);