Problem in infinite symbolic integrals

14 次查看(过去 30 天)
I am trying to realize this operation in MATLAB.
My code is:
clear,clc
syms a m x h f A
f=2*A^2*(x^2)*exp(-2*a*m*x^2/h)
I=int(f,x,0,inf)
But MATLAB gives me :
2*A^2*limit((2^(1/2)*a*pi^(1/2) - 2^(1/2)*a*pi^(1/2)*erfc(2^(1/2)*x*((a*m)/h)^(1/2)))/(16*a*((a*m)/h)^(3/2)) - (x*h*exp(-(2*x^2*a*m)/h))/(4*a*m), x, Inf)
Does anyone know what's wrong?
Thanks in advance!

采纳的回答

Walter Roberson
Walter Roberson 2019-6-9
When you do the syms call, you should break it down into symbols that are certain to be real valued and those that are not certain, and you should add the "real" qualifier when possible. For example,
syms a f h m x real
syms A %potentially complex valued
We know that A is potentially complex valued because they used instead of just . In turn that implies that your use of A^2 in the code is not correct: it might need to be abs(A)^2
You should also add any assume() calls that are reasonable. For example,
assume(x >= 0)
With all of your symbols being potentially complex valued (because you did not say otherwise), and since any of your values might be 0, then MATLAB is unable to determine the complex sign of the expression, so it has to just talk in general about limits, with it not able to prove anything about the properties of that limit.
  2 个评论
Ege Gurtan
Ege Gurtan 2019-6-10
编辑:Ege Gurtan 2019-6-10
Hello, thanks for the answer, but it is not working.
clear,clc
syms A f a
syms m x h real
assume(x>=0)
assume(m>0)
assume(h>0)
f=2*A^2*(x^2)*exp((-2*a*m*x^2)/h)
I=int(f,x,0,inf)
but I still get
2*A^2*limit((2^(1/2)*a*pi^(1/2) - 2^(1/2)*a*pi^(1/2)*erfc(2^(1/2)*x*((a*m)/h)^(1/2)))/(16*a*((a*m)/h)^(3/2)) - (x*h*exp(-(2*x^2*a*m)/h))/(4*a*m), x, Inf)
Ege Gurtan
Ege Gurtan 2019-6-10
Nevermind. Now it works with the following code.
Thanks a lot!
clear,clc
syms A f a real
syms m x h real
assume(x>=0)
assume(m>0)
assume(h>0)
assume(a>0)
assume(A>0)
assume(f>0)
f=2*A^2*(x^2)*exp((-2*a*m*x^2)/h)
I=int(f,x,0,inf)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Symbolic Math Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by