Skip to Main Content Skip to Search
Product Documentation

Differentiating and Integrating a Fit

Create a baseline sinusoidal signal:

xdata = (0:.1:2*pi)';
y0 = sin(xdata);

Add noise to the signal:

noise = 2*y0.*randn(size(y0)); % Response-dependent noise
ydata = y0 + noise;

Fit the noisy data with a custom sinusoidal model:

f = fittype('a*sin(b*x)');
fit1 = fit(xdata,ydata,f,'StartPoint',[1 1]);

Find the derivatives of the fit at the predictors:

[d1,d2] = differentiate(fit1,xdata);

Plot the data, the fit, and the derivatives:

subplot(3,1,1)
plot(fit1,xdata,ydata) % cfit plot method
subplot(3,1,2)
plot(xdata,d1,'m') % double plot method
grid on
legend('1st derivative')
subplot(3,1,3)
plot(xdata,d2,'c') % double plot method
grid on
legend('2nd derivative')

Note that derivatives can also be computed and plotted directly with the cfit plot method, as follows:

plot(fit1,xdata,ydata,{'fit','deriv1','deriv2'})

The plot method, however, does not return data on the derivatives.

Find the integral of the fit at the predictors:

int = integrate(fit1,xdata,0);

Plot the data, the fit, and the integral:

subplot(2,1,1)
plot(fit1,xdata,ydata) % cfit plot method
subplot(2,1,2)
plot(xdata,int,'m') % double plot method
grid on
legend('integral')

Note that integrals can also be computed and plotted directly with the cfit plot method, as follows:

plot(fit1,xdata,ydata,{'fit','integral'})

The plot method, however, does not return data on the integral.

  


 © 1984-2012- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS