Индекс форумов |
Исходное сообщение |
---|
"Tricubic interpolation" Отправлено ghost_in_machine, 18-Окт-10 00:03 |
Самому разобраться оказалось проще. Оставлю здесь выводы, может кому пригодяться (сам к примеру буду искать через год). Вообщем по варианту вычисления из вики считать удобно как f=CINT(x)^T.Bz.CINT(y), где Bz матрица 4х4 сформированнаяиз 16 вызовов CINT(z). Потому df/dx=dCINT(x)^T.Bz.CINT(y) и df/dy=CINT(x)^T.Bz.dCINT(y); df/dz удобнее формировать с нуля: 16 вызовами dCINT(z) получить матрицу dBz и потом df/dz=CINT(x)^T. dBz.CINT(y). Всего для вычисления на лету интерполированного значения и производных надо два по 16 произведений 4-вектора плюс умножения вектор-матрица-вектор ну и сами вектора т.е. где-то в 2 раза быстрее чем вариант из статьи. Ну точность поменьше, но в 16 раз меньше памяти (для 3D grid!!!) и 2 раза быстрее считать, ИМХО приемлемая компенсация даже для случая аналитических производных табулированной функции. |
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования. |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |