Проблемы с форматированием данных x и y в функции bspline в gekko - PullRequest
2 голосов
/ 12 апреля 2019

Я пытаюсь выполнить 2D-интерполяцию в GEKKO, и у меня есть данные x, y и z. Однако, когда я вводил их в функцию bspline, я получаю сообщение об ошибке «x_data и y_data должны строго увеличиваться». Как рассчитать узлы и коэффициенты для определения поверхности?

Я попытался с помощью функции интерполяции Сципи создать данные для сплюснутой сетки между данными x и y с данными z и отсортировать их так, чтобы x увеличивалось, а y проходило через увеличивающиеся значения, но это все равно приводит к уменьшению значений y.

1 Ответ

2 голосов
/ 12 апреля 2019

Посмотрев на http://apmonitor.com/wiki/index.php/Main/ObjectBspline,, я понял, что xdata и ydata были узлами bspline, а значения z были коэффициентами. Таким образом, эти значения могут быть получены из scipy.interpolate.bisplrep (xdata, ydata, zdata), который возвращает список, содержащий узлы и коэффициенты для определения поверхности. Затем они могут быть введены в функцию bspline как m.bspline (xtest, ytest, ztest, tck [0], tck [1], tck [2], data = False)

...