我试图在matlab中实现Runge-Kutta在二维矩阵(x,y)上的四阶积分方法。矩阵在每个点都包含一个高度值(浮点)。这个想法是把一个粒子放在矩阵中,当它被方向向量u和v"推动"时,观察它的路径。
我已经简单地使用matlab中构建的"梯度"函数实现了欧拉积分方法。然而,对于RK4积分,我需要在可变点取4个斜率,而不是由斜率给定的预定斜率。
我认为Matlab梯度函数本身没有这些参数(根据我从Matlab文档中了解到的)。对此,我应该采取什么样的方法?
如果我要编写自己的梯度函数来计算任意点的斜率,我不太确定如何编写,因为它不是一个直接的函数。对于这种方法有什么建议吗?
谢谢。
如果我自己写梯度计算坡度的函数任何武断的观点,我都不太明白确定如何写,因为它不是直接向前的函数。有吗对这种方法有什么建议吗?
我怀疑interp2
可能就是你要找的。你可以给它一个矩阵,其中包含离散点的梯度,它会插值以找到任何中间点的梯度值。