如何在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);
我有 运行 用于计算以下函数的数值积分。
但在 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);