0

I am working with the following function:

f(x) = a*(1+cos(3*x)) where a is constant/parameter.

y(x) = exp(-b*f(x)) where b is another constant.

I need to compute the definite integral integral(0,2pi)y(x)dx.

I am trying to implement another research paper for our research group. I know the output must contain modified bessel functions of the first kind which are functions of 'a'. Matlab simply refuses to evaluate this integral.

The following is my code(Matlab):

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)

Output:

Warning: Explicit integral could not be found. 

z_x =

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

Request your assistance in solving this! I am sure that the integral contains bessel functions like I(a), etc. at many places. Is there any pre-processing I need to do here? I kind of need this solution urgently. I appreciate quick responses which can atleast point in the right direction.

  • Well, IF they are functions of a, then they SHOULD be functions of a*b, since a only appears directly as a*b in the expression. Regardless, Alpha also fails here. –  Apr 12 '12 at 08:24

2 Answers2

0

Solved!. It worked in mathematica, failed in Matlab.

0

Starting R2017b, this works. Use int.

>> 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)
Karan Gill
  • 160
  • 5