runge-kutta

    2熱度

    1回答

    工作我試圖寫的算法求解非線性ODE dr/dt = r(t)+r²(t) 其具有(一個可能的)溶液 r(t) = r²(t)/2+r³(t)/3 對於我在python中實現了euler方法和RK4方法。對於錯誤檢查我使用的例子上rosettacode: dT/dt = -k(T(t)-T0) 與解決方案 T0 + (Ts − T0)*exp(−kt) 因此,我的代碼現在看起來像 i

    6熱度

    3回答

    在Python中實現經典Runge-Kutta方案有兩種方式,顯示here。第一個使用lambda函數,第二個沒有它們。 哪一個會更快,爲什麼呢?

    1熱度

    1回答

    我在嘗試瞭解我的代碼有什麼問題時遇到了一些麻煩,任何幫助都會非常有幫助。 我想解決這個簡單的公式 然而,我的代碼給出的值不符合我的書的人或鎢那些爲y上升爲x的增長相匹配。 import matplotlib.pyplot as plt from numpy import exp from scipy.integrate import ode # initial values y0, t0

    1熱度

    1回答

    我一直在試圖將RK4集成到我正在做的模擬中。下面的功能是我最好的嘗試,使用RK4根據第12頁上的方程在this網站上的三維力場進行積分。 在我的代碼中,粒子類基本上存儲速度和位置列表,並且可以計算給定位置的力(力與速度無關)。另外,我知道我的函數很長,並且可以使用for循環來減少,但我(當前)想要匹配我鏈接的論文中使用的結構。 當我嘗試使用此方法模擬一個粒子時,該錯誤顯着比我使用跳躍積分方法時更糟

    0熱度

    1回答

    我有一個類的一些ODE求解器的自定義實現。我遇到問題,如果我的時間步dt小於.2,程序將停止。但是,如果我註釋掉一個龍格 - 庫塔求解器,它會很快執行,我可以切換哪一個被註釋掉,這樣我就可以從兩個求解器中獲得解決方案。我想知道如何解決這個問題。我一直在試圖找到某種解決方法可能會干擾另一方的方法,但我不明白這是怎麼發生的。 實現: global dt; dt = .5; % going below

    0熱度

    1回答

    這裏給出的代碼工作正常,但是說當找到(-30,30)而不是(10,30)的ω時發現分叉點,從而改變'INT O' 從2000到6000在屏幕上顯示以下消息,在在0x7665B802在Bifurcation_Plotter.exe 未處理的異常:微軟C++異常:則爲std :: bad_alloc在存儲器位置0x012FF544。 時間步驟需要保持原樣以確保結果的準確性。 所有幫助非常感謝:) //

    0熱度

    1回答

    我需要繪製顯示2個變量的圖形,具有二階常微分方程RK4,到目前爲止,我已經做到了這一點 from numpy import arange from pylab import plot,xlabel,ylabel,show Qger = 400 K = 20 T1 = 150 T2 = 60 N = 1000 h = (T2-T1)/N rpoints = arange(6.0,8.

    0熱度

    1回答

    作爲我正在研究的項目的一部分,我需要使用四階Runge-Kutta方法模擬恆星周圍物體的軌道。我需要將該對象的位置和速度寫入每個RK4方法實現的.dat文件中。 我的問題是,我無法弄清楚如何在後續的時間間隔內重複整個方法,或者如何在每個步驟中寫入文件而不會將事情與靜態和/或實例相混淆,而我沒有太多經驗。 This是我能找到的最一致的例子,雖然我知道它不是用於軌道,但我想用它作爲獲得框架工作的基礎。

    4熱度

    3回答

    下面是我的4階Runge-Kutta算法來求解一階ODE。我檢查它反對維基百科例如發現here解決: \frac{dx}{dt} = tan(x) + 1 遺憾的是,通過了一點點。我玩了很長一段時間,但我找不到錯誤。答案應該是t = 1.1和x = 1.33786352224364362。下面的代碼給出t = 1.1和x = 1.42223。 /* This code is a 1D cl

    -1熱度

    1回答

    有人可以在我的代碼中找到錯誤嗎?它可以在特殊的點上工作,但容差不適合該方法。我的錯誤是非常簡單的,所以我不認爲它的問題。請幫忙。 #include <math.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <time.h> #include <iostream> #include <strin