/lsqcurvefit_approx-MATLAB

Fits linear and polynomial models to data using linear least squares and approximates nonlinear models through linearization.

Primary LanguageMATLABMIT LicenseMIT

lsqcurvefit_approx View Approximate Least Squares Curve Fitting (lsqcurvefit_approx) on File Exchange

Fits linear and polynomial models to data using linear least squares and approximates nonlinear models through linearization.

Syntax

[c,r2,eqn] = lsqcurvefit_approx(x,y)
[c,r2,eqn] = lsqcurvefit_approx(x,y,'linear')
[c,r2,eqn] = lsqcurvefit_approx(x,y,'poly',n)
[c,r2,eqn] = lsqcurvefit_approx(x,y,'power')
[c,r2,eqn] = lsqcurvefit_approx(x,y,'exp')
[c,r2,eqn] = lsqcurvefit_approx(x,y,'log')

Description

[c,r2,eqn] = lsqcurvefit_approx(x,y) returns the model coefficient vector c = [m,b] for the linear fit to a data set defined by the vectors x (independent variable) and y (dependent variable).

[c,r2,eqn] = lsqcurvefit_approx(x,y,'linear') does the exact same thing as the syntax above.

[c,r2,eqn] = lsqcurvefit_approx(x,y,'poly',n) returns the model coefficient vector c = [a0,...,an] for the degree polynomial fit to a data set defined by the vectors x (independent variable) and y (dependent variable).

[c,r2,eqn] = lsqcurvefit_approx(x,y,'power') returns the model coefficient vector c = [a,b] for the power fit to a data set defined by the vectors x (independent variable) and y (dependent variable).

[c,r2,eqn] = lsqcurvefit_approx(x,y,'exp') returns the model coefficient vector c = [a,b] for the exponential fit to a data set defined by the vectors x (independent variable) and y (dependent variable).

[c,r2,eqn] = lsqcurvefit_approx(x,y,'log') returns the model coefficient vector c = [a,b] for the logarithmic fit to a data set defined by the vectors x (independent variable) and y (dependent variable).

NOTE: Additionally, for all the syntaxes, the coefficient of determination (r2) and a string (eqn) storing the fitted equation (for use in figure text with LaTeX interpreter) are also returned.

Additional Notes/Warnings:

  • Only the linear and polynomial fits are true linear least squares fits. The nonlinear fits (power, exponential, and logarithmic) are approximated through transforming the model to a linear form and then applying a least squares fit.
  • Taking the logarithm of a negative number produces a complex number. When linearizing, for simplicity, this function will take only the real part of the resulting complex numbers in the case that a negative data point has to be linearized. The resulting fit is typically poor, and a (slightly) better fit could be obtained by excluding those data points altogether.

Examples and Additional Documentation

  • See "EXAMPLES.mlx" or the "Examples" tab on the File Exchange page for examples.
  • See "Least_Squares_Curve_Fitting.pdf" (also included with download) for the technical documentation.