Matlab - 在任意点获取矩阵的梯度

时间:2011-06-20 14:46:26

标签: matlab gradient runge-kutta

我试图在matlab上用二维矩阵(x,y)实现Runge-Kutta的四阶积分方法。矩阵在每个点包含高度值(浮点)。这个想法是在矩阵中放置一个粒子并观察它的路径,因为它被方向向量u和v“推”。

我已经使用matlab中内置的'渐变'功能实现了Euler的积分方法。但是,对于RK4积分,我需要在变点处采用4个斜率,而不是梯度给出的预定斜率。

我认为Matlab梯度函数本身没有这些参数(根据我从Matlab文档中理解的)。我应该采取什么样的方法呢?

如果我要编写自己的渐变函数来计算任意点的斜率,我不太清楚如何编写它,因为它不是一个直接的函数。对这种方法有什么建议吗?

感谢。

1 个答案:

答案 0 :(得分:0)

  

如果我要写自己的渐变   计算斜率的函数   任何一点,我都不是   确定如何写它,因为它不是   一个直接的功能。在那儿   对这种方法的任何建议?

我怀疑interp2可能正是您正在寻找的。您可以在离散点处为其提供包含渐变的矩阵,并且它将进行插值以在任何中间点找到渐变的值。