Function Mathematica对点集进行积分以得到函数的解析形式

Function Mathematica对点集进行积分以得到函数的解析形式,function,wolfram-mathematica,integration,numerical,Function,Wolfram Mathematica,Integration,Numerical,我有一个问题-我需要在Mathematica中集成这样一个函数(我无法发布图像,所以我以latex形式编写): G(r)=\int{0}^{\infty}dqf(q)*q*sin(qr)/r 以获得在r上可靠的功能G(r)。 然而,我不知道f(q)的解析形式,相反,我有一组f(q)和q的值。所以我想做一个数值积分,但之后接收的不是一个值,而是一条G(r)曲线。如果你知道函数的解析形式f[q],你可以这样做: Integrate[f[q] q Sin[q r]/r, {q, 0, Infini

我有一个问题-我需要在Mathematica中集成这样一个函数(我无法发布图像,所以我以latex形式编写):


G(r)=\int{0}^{\infty}dqf(q)*q*sin(qr)/r

以获得在r上可靠的功能G(r)。
然而,我不知道f(q)的解析形式,相反,我有一组f(q)和q的值。所以我想做一个数值积分,但之后接收的不是一个值,而是一条G(r)曲线。

如果你知道函数的解析形式
f[q]
,你可以这样做:

Integrate[f[q] q Sin[q r]/r, {q, 0, Infinity}]
但如果只知道
f[q]
的值,则可以进行数值积分:

G[r_]:= NIntegrate[ f[q] q Sin[q r]/r, {q, 0, Infinity}]
假设

f[q_] := Exp[-q]
Integrate[f[q] q Sin[q r]/r, {q, 0, Infinity}]
屈服

ConditionalExpression[2/(1 + r^2)^2, Abs[Im[r]] < 1]   
2/(1 + r^2)^2
屈服

ConditionalExpression[2/(1 + r^2)^2, Abs[Im[r]] < 1]   
2/(1 + r^2)^2
假设
r>0
您隐式地假设
r
为实,因此
Im[r]==0
。 使用函数
G[r]
我们可以绘制适当的曲线,定义
f[q]
如上所述:

Plot[ G[r], {r, 0, 10}]

@JohnDean如果您有更多关于
Mathematica
的问题,最好在这个网站上提问:因为它是专门为
Mathematica
用户提供的。谢谢您这么快的回答。尽管如此,我还是有一些意见——我不能假设任何一种函数,因为这里没有f(q)的解析形式。我知道它的形状,因为它的值是一个实验中的数据点。但是我有一些其他的想法-我只是做一个循环,对离散的r值进行数值积分,最后得到G(r)的离散形式。但还有另一个问题,当我只想对数据点进行数值积分时,正如您在第二段代码中所写的,我得到的是一组值,而不是曲线下的一个区域。我不知道为什么。
假设
这里只是一个例子,说明如何改进
条件表达
。如果您知道
f[q]
的值,您可以使用
NIntegrate
。也许可以使用您的(q,f(q)已知值为f创建插值函数。然后在为数值r定义G[r]的数值积分中使用该函数。