# Definite integral with complex number

38 views (last 30 days)

Show older comments

##### 0 Comments

### Answers (2)

Star Strider
on 18 Jan 2017

Use the vpa function:

syms wn t

wn = sym(1);

f = (wn.*t).*exp(1i.*2.*pi.*t);

f_int = int(f, t, 0, 0.3)

f_int_num = vpa(f_int)

f_int =

- 1/(4*pi^2) - (((pi*3i)/5 - 1)*(1/4 + (2^(1/2)*(5^(1/2) + 5)^(1/2)*1i)/4 - 5^(1/2)/4))/(4*pi^2)

f_int_num =

0.012251815898938149373515863015179 + 0.038845017631697804582142824751429i

##### 6 Comments

Star Strider
on 18 Jan 2017

To define ‘wn(t)’ as uniformly equal to 1 definitely changes the result:

syms wn t u_lim wn(t)

wn(t) = sym(1);

f = wn*exp(1i*2.*pi*t);

upper_limit = vpasolve(abs(int(f, t, 0, u_lim)) == 0.3, u_lim)

abs_upper_limit = abs(upper_limit)

upper_limit =

61.162453359143770665259861917249 - 0.1257699093208763500021861131513i

abs_upper_limit =

61.162582670939654308556507428042

Is the rest correct? Are you solving for the upper limit of integration that will make the integral equal to 0.3? If so, this works.

David Goodmanson
on 18 Jan 2017

Edited: David Goodmanson
on 18 Jan 2017

Hello Diana, symbolic variables are a great thing, but if you are looking for a numerical result and are happy with 15 or so sigfigs, it isn't like they have to be invoked. You can just do

ff = @(t,wn) (wn.*t).*exp(1i.*2.*pi.*t) % or you could define this in an mfile

integral(@(t) ff(t,1),0,.3) % pass in wn =1

format long

ans = 0.012251815898938 + 0.038845017631698i

Now that symbolic variables are much better integrated into Matlab, sometimes I wonder if they are getting overused.

### See Also

### Community Treasure Hunt

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

Start Hunting!