- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试做一个简单的谐振子示例,它将通过龙格-库塔四阶方法求解。待解的二阶常微分方程(ODE)及初始条件为:
y'' + y = 0
y(0) = 0 且 y'(0) = 1/pi
范围在 0 到 1 之间,有 100 级。我使用 u 作为辅助变量,将二阶 ODE 分成两个一阶 ODE:
y' = u
u' = -y
解析解为正弦曲线 y(x) = (1/pi)^2 sin(pi*x)。
我的Python代码如下:
from math import pi
from numpy import arange
from matplotlib.pyplot import plot, show
# y' = u
# u' = -y
def F(y, u, x):
return -y
a = 0
b = 1.0
N =100
h = (b-a)/N
xpoints = arange(a,b,h)
ypoints = []
upoints = []
y = 0.0
u = 1./pi
for x in xpoints:
ypoints.append(y)
upoints.append(u)
m1 = h*u
k1 = h*F(y, u, x) #(x, v, t)
m2 = h*(u + 0.5*k1)
k2 = h*F(y+0.5*m1, u+0.5*k1, x+0.5*h)
m3 = h*(u + 0.5*k2)
k3 = h*F(y+0.5*m2, u+0.5*k2, x+0.5*h)
m4 = h*(u + k3)
k4 = h*F(y+m3, u+k3, x+h)
y += (m1 + 2*m2 + 2*m3 + m4)/6
u += (k1 + 2*k2 + 2*k3 + k4)/6
plot(xpoints, ypoints)
show()
所有代码均已按照 LutzL 的建议进行了更正。请参阅下面的评论。
代码正在运行,但我的数值解与解析解不匹配。我制作了一个图表,显示下面的两个解决方案。我将我的脚本与互联网上其他一些代码( https://math.stackexchange.com/questions/721076/help-with-using-the-runge-kutta-4th-order-method-on-a-system-of-2-first-order-od )进行了比较,但我看不到该错误。在链接中,有两个代码,一个Matlab代码和一个Fortran代码。即便如此,我也找不到自己的错误。谁能帮我吗?
最佳答案
关于python - 求解二阶 ODES 的 Runge-Kutta 四阶方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52334558/
在做 Ch06 的练习 6.5 时 |在 Middlebrook 博士的 D-OA 方法中,我尝试制作传递函数的波德图: bodeplot[s/100+100/s*(1+10/s)](wolframa
我正在尝试做这样的事情 编辑 - 整个查询。 SELECT * FROM ride WHERE ( SELECT COUNT(*) FROM ( SELECT DISTINCT
我尝试求解简单的数值方程 - 没有源的线性波动方程:utt = v2 uxx 其中 v - 波速。 我使用初始条件: u(x, 0) = sin(x) ux(x, 0) = -v * sin(x) 对
我正在尝试使用 C++ 求解 4 个二阶多项式方程组。解决该系统的最快方法是什么?如果可能,您能否链接或编写一些伪代码来解释它?我知道涉及 Groebners 基础或 QR 分解的解决方案,但我找不到
我在 Checkmarx 中遇到错误。 Method abortJob at line 209 of XXX/classes/Monitoring.cls gets user inputfrom th
对于二阶 ODE(python 中的 dopri5 方法),下面的代码总是会导致错误:C:\Users\MY\Anaconda3\lib\site-packages\scipy\integrate\_
重要更新:我已经找到答案并将它们放在这个简单的开源库中:http://bartolsthoorn.github.com/NVDSP/检查一下,如果您在 IOS 中遇到音频过滤器问题,它可能会为您节省不
我是一名优秀的程序员,十分优秀!