Integration with both limits variable

23 次查看(过去 30 天)
Hi, I am trying to solve an integration where both limits are variable. The function itself being integrated is simple, it is just exp(-W^2). I can solve the inegration fine using this method without limits - the limits are the issue here. I think it could be because of the use of the symbolic functions to integrate? But I have tried other methods, and I cannot get it to work with these limits. I get the error:
error in sym/subsref (line 898)
R_tilde = builtin('subsref',L_tilde,Idx);
The upper limit is -phi, and the lower limit is beta-phi.
Another issue could be because the upper limit is the same as the variable being integrated. However I don't know how to get around that issue either?
I have just shown some of my code, hopefully this is enough to make sense of what I am trying to do. Any help would be greatly appreciated!
t=linspace(0,1000);
r=linspace(0,100);
D=2;
beta=r./sqrt(4*D.*t);
phi=U.*sqrt(t./D);
W=beta-phi;
% Performing integration
syms W
f=exp(-(W.^2));
a=-phi;
b=beta-phi;
int(f,W,a,b)
  3 个评论
Sophie Malcolm
Sophie Malcolm 2020-9-20
Hi Bjorn,
Thank you so much for your response, I hadn't considered the use of the error function in MATLAB and will look into that now!
Thanks so much,
Sophie
Bjorn Gustavsson
Bjorn Gustavsson 2020-9-20
Your solution is simply:
(pi^(1/2)*(erf(b) - erf(a)))/2.

请先登录,再进行评论。

采纳的回答

Ameer Hamza
Ameer Hamza 2020-9-19
You are getting an error because you are passing arrays (a and b) to int() as its limit. The limits must be scalar. For example, try this
t=linspace(0,1000);
r=linspace(0,100);
D=2;
U = 3;
beta=r./sqrt(4*D.*t);
phi=U.*sqrt(t./D);
W=beta-phi;
% Performing integration
syms W
f=exp(-(W.^2));
a=-phi;
b=beta-phi;
int(f,W,a(2),b(2))
  2 个评论
Sophie Malcolm
Sophie Malcolm 2020-9-20
Hi Ameer,
Thank you so much for this, I didn't realise that! That is so helpful, thanks a lot.
Sophie

请先登录,再进行评论。

更多回答(1 个)

Bjorn Gustavsson
Bjorn Gustavsson 2020-9-19
Matlab has both a numerical and a symbolic version of the error-function. That will be the answer to your problem. The numeric version is vectorized, so it can handle your inputs without problems.
HTH
  1 个评论
Sophie Malcolm
Sophie Malcolm 2020-9-20
Hi,
Okay that makes a lot of sense! Thank you so much for explaining. I will look into that now.
Thanks for your help,
Sophie

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Number Theory 的更多信息

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by