(Извинения для «конца» ответ, но у меня есть несколько предложений, которые могли бы помочь другим, если существующий ответ им не помогает)
Это не ясно из вашего вопроса, насколько точно полученная функция должна быть (или как большой, «большой»), но один из подходов, который вы можете принять, - это регрессировать точки данных, которые вы используете с использованием метода наименьших квадратов или фильтра на основе Калмана. Вам нужно будет сделать это с помощью нескольких форм-функций кандидата, а затем выбрать тот, который является «лучшим», например, используя меру, такую как MAE или MSE.
Конечно, для этого требуется некоторое представление о том, какова может быть функция, лежащая в основе формы, но на ваш вопрос неясно, есть ли у вас такая информация.
Другим подходом, который может работать (и не требует знания того, что может быть для базовой функции), является использование нечеткого преобразования (F-transform) для создания сегментов линии, которые обеспечивают локальные приближения к поверхности.
Метод для этого будет:
- Определение 2D-вселенной, которая включает в х и у доменов входных данных
- Создание 2D-нечеткого разбиения этой вселенной - они выбрали размеры разделов, которые дают требуемая точность
- Применить дискретное F-преобразование с использованием ваших входных данных для создания нечетких точек данных в трехмерном нечетком пространстве
- Передайте обратное F-преобразование как дескриптор функции (вместе с точками нечеткой информации) к вашей интеграции функция
Если вы не знакомы с F-преобразования, то я отправил блог некоторое время назад о том, как F-преобразование может быть использовано в качестве универсального аппроксиматора в 1D случае: http://iainism-blogism.blogspot.co.uk/2012/01/fuzzy-wuzzy-was.html
Чтобы увидеть математику, лежащую в основе метода, и распространить ее на многомерный случай, тогда в Остравском университете была опубликована кандидатская диссертация, в которой объясняется ее применение к различным инженерным задачам, а также приводится пример того, как она построена для случая двумерной вселенной: http://irafm.osu.cz/f/PhD_theses/Stepnicka.pdf
Не можете ли вы обернуть его в [анонимную функцию] (http://www.mathworks.co.uk/help/techdoc/matlab_prog/f4-70115.html)? –
Будет ли что-то вроде polyfit2 работать на вас? http://www.mathworks.com/matlabcentral/fileexchange/220 – Steve