[問題] NDSolve 數值上的問題

作者: domolcy (Kuma)   2019-08-04 21:24:16
版上的大神們好,
小弟最近利用MMA跑聯立微分方程式,
但會遇到數值精確度跑掉的問題(如圖所示)
https://i.imgur.com/lsCGEyi.jpg
麻煩大神們撥冗幫助小弟,謝謝。
作者: LPH66 (-6.2598534e+18f)   2019-08-05 09:30:00
數值方法會跑到這麼大的數出現可能有些發散性問題在這比較不是精確度問題: 注意到錯誤訊息中的那些數是 10 的 307 次方這種超大數之所以問題不在倒數結果的原因是, 看起來倒數是方程一部份(MMA 裡除法跟倒數是同樣的東西) 那這就代表這個超大數確實是數值計算過程中的中間值, 那就要考慮為何會有這種值
作者: domolcy (Kuma)   2019-08-05 10:33:00
您好,這個值確實是我要的,但希望MMA可以繼續算下去,請問有什麼辦法嗎?
作者: AmibaGelos (Amiba Gelos)   2019-08-05 11:05:00
調working precision開big# 記得常數也要是big# 如有理數 或改用exp寫該# 除法改減法 稍不精確但至少能跑
作者: LPH66 (-6.2598534e+18f)   2019-08-13 06:08:00
我有點好奇是什麼樣的數值微分方程會需要(可能暫時性地)出現這種數量級的數...就我對一些數學/物理/etc 方面的理解來看, 10^307 這數量級大到不太可能會有一些應用上的意義而數值模擬微分方程是一個很應用方向的東西因此就算是中間值都會有某種程度上的應用意義在這兩件事情是有點矛盾的, 所以才會認為問題是方程有發散性而若發散性是可能狀況之一的話, 發散到多大就不重要了
作者: domolcy (Kuma)   2019-08-16 00:47:00
抱歉,忘了回。我處理的系統是需要算高階的correlation function, 所以當correlation function 在很高階的時候,就會有這種數量級,或許我可能改用其他的方法來算我感興趣的物理量。 如果不大懂我在說什麼,可以站內信,我們可以一起討論。
作者: AmibaGelos (Amiba Gelos)   2019-08-16 10:15:00
1T site 10階delta也就~10^120 除非在算amr而且系統類似NS不平滑 個人覺得10^307都可以當作delta處理
作者: pig030 (FEBUR.PHEIX)   2019-09-07 01:53:00
有沒有可能先行處理一處方程式讓他們更簡化再來跑模擬

Links booklink

Contact Us: admin [ a t ] ucptt.com