Подгонка Matlab, несомненно, полезна, но неясно, как использовать ее в качестве функции, кроме тривиальной интеграции и дифференциации, приведенной на официальном сайте: http://uk.mathworks.com/help/curvefit/example-differentiating-and-integration-a-fit.html
Например, при подборе, сохраненном в объекте «кривая», можно оценить кривую (x), чтобы получить число. Но как бы, например, интегрировать | curve (x) | ^ 2 (кроме неуклюжего создания новой подгонки)? Наивно пытаясь
curve = fit(x_vals,y_vals,'smoothingspline');
integral(curve(x)*curve(x), 0, 1)
выдает ошибку:
Output of the function must be the same size as the input. If FUN is an array-valued integrand, set the 'ArrayValued' option to true.
Я также попытался обойти эту проблему, определив нормальную функцию и неявную функцию для подынтегрального выражения (ниже), но обе дают одну и ту же ошибку.
func=@(x)(curve(x))...; % trial solution 1
function func_val=func(curve, x)...; % trial solution 2