Definite integral with complex number
20 次查看(过去 30 天)
显示 更早的评论
I need to solve an integral of the function f=(wn.*t).*exp(1i.*2.*pi.*t) where wn=1 and have complex numbers, it is a definite integral of 0 to 0.3 and I have to obtain a numeric answer. I tried to do with the comands int and integral but doesn`t help me because this comands uses symbolics variables and I need numeric answers, and I tried to obtain the sum under the wave but I couldn`t solve it. Can someone help me?
0 个评论
回答(2 个)
Star Strider
2017-1-18
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 个评论
Star Strider
2017-1-18
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
2017-1-18
编辑:David Goodmanson
2017-1-18
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Calculus 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!