在知道输出必须包含贝塞尔函数的情况下,如何在matlab中对函数进行符号积分?

在知道输出必须包含贝塞尔函数的情况下,如何在matlab中对函数进行符号积分?,matlab,integration,symbolic-math,Matlab,Integration,Symbolic Math,我正在使用以下功能: f(x)=a*(1+cos(3*x)),其中a是常数/参数 y(x)=exp(-b*f(x)),其中b是另一个常数 我需要计算定积分(0,2pi)y(x)dx 我正试图为我们的研究小组实施另一篇研究论文。我知道输出必须包含第一类修正贝塞尔函数,它们是‘a’的函数。Matlab只是拒绝计算这个积分 以下是我的代码(Matlab): 输出: Warning: Explicit integral could not be found. z_x = int(1/exp(a*b

我正在使用以下功能:

f(x)=a*(1+cos(3*x)),其中a是常数/参数

y(x)=exp(-b*f(x)),其中b是另一个常数

我需要计算定积分(0,2pi)y(x)dx

我正试图为我们的研究小组实施另一篇研究论文。我知道输出必须包含第一类修正贝塞尔函数,它们是‘a’的函数。Matlab只是拒绝计算这个积分

以下是我的代码(Matlab):

输出:

Warning: Explicit integral could not be found. 

z_x =

int(1/exp(a*b*(cos(3*x) + 1)), x = 0..2*pi)

请求您协助解决此问题!我确信积分在很多地方都包含贝塞尔函数,比如I(a)等。我需要在这里进行任何预处理吗?我迫切需要这个解决方案。我很欣赏至少能指向正确方向的快速响应。

解决了!。它在mathematica中工作,在Matlab中失败。

启动R2017b,这就工作了。使用


如果它们是a的函数,那么它们应该是ab的函数,因为a在表达式中只直接显示为ab。无论如何,Alpha在这里也失败了。
Warning: Explicit integral could not be found. 

z_x =

int(1/exp(a*b*(cos(3*x) + 1)), x = 0..2*pi)
>> syms x;
syms a;
syms b;

f_x = a*(1+cos(3*x));
y_x = exp(-b*f_x);
z_x = int(y_x, x, 0, 2*pi)

z_x =
2*pi*exp(-a*b)*besselj(0, a*b*1i)