我想在一個二維矩陣(x,y)上實現龍格庫塔的四階積分方法。矩陣包含每個點的高度值(浮點數)。這個想法是在矩陣中放置一個粒子,並觀察它的路徑,因爲它被方向向量u和v'推動'。Matlab - 在任意點取一個矩陣的梯度
我已經實現了歐拉的積分方法,它已經使用了簡單的matlab中構建的'gradient'函數。但是,對於RK4積分,我需要在可變點上取4個斜率,而不是斜率給出的預定斜率。
我認爲Matlab漸變函數本身沒有這些類型的參數(從我從Matlab文檔中理解的)。我應該採取什麼樣的方法?
如果我要編寫自己的漸變函數來計算任意點處的斜率,我不太確定如何編寫它,因爲它不是直向函數。這種方法有什麼建議嗎?
謝謝。
你能告訴我們它是什麼樣子嗎?如果它是幾個變量的函數,你總是可以找到一個雅可比矩陣。如果它是一個常數矩陣,那麼梯度顯然是0. – Phonon
那麼,我猜這就是我困惑的地方。它是一個常數矩陣,所以我想知道如何計算一個「導數」。 根據http://www.mathworks.com/help/techdoc/ref/gradient.html dx和dy是指向增加矩陣值方向的矢量集合。 – Aaron
亞倫,矩陣被解釋爲平面上的函數f(x,y)。梯度的組成部分是(df/dx)和(df/dy)。衍生工具是空間而不是時間。 – nibot