how to do definite integration when the integrand has a constant term
1 次查看(过去 30 天)
显示 更早的评论
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692589/image.png)
How to find the value of this integral in matlab ? q should remain as it is in the final answer as I is a function of q
sigma= 1/(1.5e-12)
L=6.4747e3
k=2*pi*1.8331/(390e-12)
D=2.3167e-4
omega sholud me from 379.62 to 389.62
11 个评论
Akriti Raj
2021-7-22
Yes, can you please write the matlab code. I am new to matlab and I have been struggling with this problem since long.
Walter Roberson
2021-7-22
I think I need a higher resolution image of the equation.
Also please confirm that I is a function of the derivative of q as it appears to say I(q') =
Walter Roberson
2021-7-22
编辑:Walter Roberson
2021-7-22
format long g
Q = @(v) sym(v); %convert to rational
Pi = Q(pi);
sigma = 1/(Q(1.5)*10^-12)
sigma =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692714/image.png)
L = Q(64747)/10
L =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692719/image.png)
k = 2 * Pi* Q(18331)/10^4/(Q(390)*10^-12)
k =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692724/image.png)
D = Q(23167)*10^-8
D =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692729/image.png)
omega_min = Q(37962)/100
omega_min =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692734/image.png)
omega_max = Q(38962)/100
omega_max =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692739/image.png)
syms q
syms omega
inner = exp((omega/sigma)^2/2) * sinc(L*q^2/k + D*omega*L/2).^2
inner =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692744/image.png)
I = 1/(sigma * sqrt(2*Pi)) * int(inner, omega, omega_min, omega_max)
I =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692749/image.png)
simplify(I)
ans =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692754/image.png)
inner_approx = taylor(inner, omega, (omega_min+omega_max)/2, 'order', 4)
inner_approx =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692759/image.png)
I_approx = 1/(sigma * sqrt(2*Pi)) * int(inner_approx, omega, omega_min, omega_max)
I_approx =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692764/image.png)
simplify(I_approx)
ans =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692769/image.png)
fplot(I, [-5 5]); title('exact')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692774/image.png)
double(subs(I,q,[-5 -1 0 1 5]))
ans = 1×5
3.49318454188821e-18 3.49318582811878e-18 3.4931858817153e-18 3.49318582811878e-18 3.49318454188821e-18
vpa(subs(I,q,[-5 -1 0 1 5]*10^9))
ans =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692814/image.png)
fplot(I_approx, [-5 5]); title('approximated')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692779/image.png)
double(subs(I_approx,q,[-5 -1 0 1 5]))
ans = 1×5
-3.2139136293569e-16 -3.21388912778066e-16 -3.21388810680452e-16 -3.21388912778066e-16 -3.2139136293569e-16
vpa(subs(I_approx,q,[-5 -1 0 1 5]*10^9))
ans = ![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692819/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/692819/image.png)
Walter Roberson
2021-7-22
Notice that up in the 10^9 area, that the integral could not be calculated with the default integration options.
Note that the taylor approximation is probably pretty wrong by the time of 10^9
What is the expected range of q ?
David Goodmanson
2021-7-22
Hi Akriti,
since you refer to this as a definite integral, what are the limits of integration?
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Calculus 的更多信息
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!发生错误
由于页面发生更改,无法完成操作。请重新加载页面以查看其更新后的状态。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
亚太
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)