How do I get a symbolic differentiation of cfit/sfit functions?

20 visualizaciones (últimos 30 días)
Hi everyone,
I am trying to get the symbolic partial derivative of a sfit function. Best case would be having the differentition as an sfit function, too.
Thanks in advance!
EDIT:
Here's an example:
%data
x = [0.5850;0.0734;0.8223;0.7229;0.9259;0.4926];
y = [0.6549;0.8901;0.5385;0.2822;0.9760;0.0364];
z = [0.3262;0.9730;0.3650;0.3091;0.1209;0.9158];
%surface fit
sf = fit([x, y],z,'poly22')
plot(sf)
% Linear model Poly22:
% sf(x,y) = p00 + p10*x + p01*y + p20*x^2 + p11*x*y + p02*y^2
% Coefficients:
% p00 = 5.048
% p10 = -11.04
% p01 = -1.326
% p20 = 5.179
% p11 = 5.682
% p02 = -3.135
Now I could use the differentiate method to get the derivative at specific points but I would like to have the derived function, like this (witthout having to derive it manually):
% sf_x(x,y) = p10 + 2*p20*x + p11*y
  3 comentarios
Tim Baur
Tim Baur el 13 de Dic. de 2019
Yes, I did. diff does not take sfit as input argument, unfortunately.
darova
darova el 13 de Dic. de 2019
Can you provide an example please?

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 16 de Dic. de 2019
When sf is the fit object,
f = subs(str2sym(formula(sf)),coeffnames(sf),num2cell(coeffvalues(sf).'));
vars = sym(indepnames(sf));
diff(f, vars(1))
  5 comentarios
Walter Roberson
Walter Roberson el 20 de Dic. de 2019
The upper and lower bounds are in the fit options, which I have it add in via 'options', fitoptions(sf)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Formula Manipulation and Simplification en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by