→ as30385438: 程式沒這麼厲害好嗎, 定積分不要丟-inf到inf給他 01/13 15:31
→ GeoMeTric: 1. scipy 的 quad 允許上下界為 inf。 01/13 21:48
→ GeoMeTric: 2. 若上下界有其一為 inf,會轉換至 (0, 1) 區間。 01/13 21:49
→ GeoMeTric: 3. QUADPACK 並不適用任何函數,尤其是過大的積分範圍 01/13 21:52
→ GeoMeTric: + 相對小的範圍有顯著地的值。 01/13 21:53
想請教一下G大,目前我想做convolution的計算
function 1的定義域是(-inf, inf)
function 2的定義域是(0, inf) (目前用if t<0, fun_2=0 去讓定義域延展到全實數域)
兩函數在t<10**9的範圍內都仍有不小的值(>=1)
到t~=10**10左右值才會降到很小(<0.01)
有什麼適合的module可以用嗎?
還是說python在這部分沒辦法做,得要用其他科學計算工具?QQ
※ 編輯: holycity (1.160.10.233 臺灣), 01/13/2020 23:02:03
→ GeoMeTric: 我不是這方面的專家,以下為個人看法。 01/14 19:59
→ GeoMeTric: 1. 先尋找是否存在解析解,如回文使用的 sympy。 01/14 19:59
我要做convolution的其中一個function是不連續的函數
數學底子不好不過想不到不連續函數有什麼可能的解析解QQ
→ GeoMeTric: 2. 是否能變數變化將定義域對應至 (0, 1) 區間。 01/14 20:00
G大所說的變數變化是指將兩個函數的定義域都投影到(0,1)區間的對應函數
然後做convolution時直接把積分上下界設定為(0,1)嗎?
我上述的不連續的function有明確的時間範圍,可以投影過去
不過另一個function的值則是從-oo到+oo
這個function在t非常negative或非常positive時值很接近零
有在考慮是否乾脆直接假設超出一個範圍就當作是0,去人為的抓一個上下界
不過也很擔心這是否會對convolution的結果造成影響
另外定義域要映射到另一個區間的話也要考慮單位的轉換
(小弟實際上要解決的是一個物理問題)
不過如果真的這種方法比較可行的話還是不排除試試
→ GeoMeTric: 3. 逐漸增加積分範圍,看結果是否收斂。 01/14 20:01
目前已經知道別人的paper中有做出結果
小弟目前的階段是要去再現別人convolution的結果是否正確
假設對方的結果正確,那我做的積分結果應該會要是收斂的
只是差在目前自己嘗試出來的結果跟paper的不同
所以在檢查數值運算上是否哪邊有問題沒注意到
於是在檢驗數值運算的過程就開始遇到上述的一些狀況QQ
※ 編輯: holycity (1.164.168.128 臺灣), 01/17/2020 15:29:30