Matlab - взять градиент матрицы в любой произвольной точке - PullRequest
2 голосов
/ 20 июня 2011

Я пытаюсь реализовать метод интегрирования Рунге-Кутты 4-го порядка в matlab на 2-й матрице (x, y).Матрица содержит значение высоты (float) в каждой точке.Идея состоит в том, чтобы поместить частицу в матрицу и наблюдать, как ее путь «проталкивается» векторами направления u и v.

Я уже реализовал метод интегрирования Эйлера, используя просто встроенную в функцию «градиент»Matlab.Однако для интеграции RK4 мне нужно взять 4 уклона в переменных точках, а не заранее определенный уклон, заданный градиентом.

Я думаю, что сама функция градиента Matlab не имеет такого рода параметров (из того, что японять из документов Matlab).Какой подход я должен использовать для этого?

Если бы я написал свою собственную функцию градиента, которая вычисляет наклон в любой произвольной точке, я не совсем уверен, как ее написать, поскольку это не прямолинейная функция.Есть ли какие-либо предложения для этого подхода?

Спасибо.

1 Ответ

0 голосов
/ 20 июня 2011

Если бы я написал свою собственную функцию градиента, которая вычисляет наклон в любой произвольной точке, я не совсем уверен, как ее написать, поскольку это не прямолинейная функция.Есть ли какие-либо предложения для этого подхода?

Я подозреваю, что interp2 может быть то, что вы ищете.Вы можете дать ему свою матрицу, содержащую градиент в дискретных точках, и он будет интерполироваться, чтобы найти значение градиента в любой промежуточной точке.

...