2012-05-15 43 views
0

我有以下問題 - 我需要在Mathematica中集成這樣一個函數(我無法發佈圖像,所以我用乳膠形式編寫它):Mathematica整合點集以獲得分析形式的函數


G(R)= \ int_ {0}^{\ infty} DQ F(q)* q * SIN(QR)/ R

爲了獲得函數G(r)的於r可靠。儘管如此,我不知道f(q)的解析形式,而是我有一組f(q)和q的值。所以我想進行某種數值積分,但是之後不會得到一個值,而是一條G(r)的曲線。

+0

http://reference.wolfram.com/mathematica/ref/FindFit.html – Mikhail

+0

@JohnDean如果您對Mathematica有更多的疑問,如果你在這個網站上提出你的問題會更好:http://mathematica.stackexchange.com,因爲它專門用於Mathematica用戶。 – Artes

回答

1

如果你知道該功能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] 

可以做一個假設先驗,例如:

Assuming[r > 0, Integrate[f[q] q Sin[q r]/r, {q, 0, Infinity}]] 

產生

2/(1 + r^2)^2 

假設r > 0你暗含的假設r是真實的,所以Im[r] == 0。 具有功能G[r]我們就可以繪製相應的曲線,如上定義f[q]

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

enter image description here

+0

感謝您的快速回答。儘管如此,我還是有一些評論 - 我不能假設任何一種函數,因爲沒有f(q)的解析形式。我知道它的形狀,因爲它的值是來自實驗的數據點。 –

+0

但我有一些其他的想法 - 我只是爲離散r值的數值積分做一個循環,最後得到離散形式的G(r)。但是還有其他問題,如果我只想對數據點進行數值積分,就像您在第二個代碼中所寫的那樣,我會得到一組值,而不是曲線下面的區域。我不知道爲什麼。 –

+0

'假設'這裏只是一個例子,如何可以改進'條件表達式'。如果你知道'f [q]的值,你可以使用'NIntegrate'。 – Artes