procedure FracFit(const B: TVec; const X: TVec; const Y: TVec; DegNom: Integer; DegDenom: Integer; Constant: Boolean; const Weights: TVec);
Fits rational fraction equation to data.
| # | Name | Description |
|---|---|---|
| 1 | X | Vector of independent variable. |
| 2 | Y | Vector of dependent variable. |
| 3 | DegNom | Nominator degree. |
| 4 | DegDenom | Denominator degree. |
| 5 | Constant | If false, B[0] i.e. constant term in nominator is set to 0.0. |
| 6 | Weights | Weights (optional). Weights are used only if they are set. |
| 7 | B | Returns regression coefficients for rational function. |
Result: stored in self (calling object)
Remarks:
The routine fits equations to data by minimizing the sum of squared residuals. The observed values obey the following equation:
where n and d are nominator and denominator polynomial degrees.
Examples
Uses MtxExpr, MtxVecTee, Series, RegModels;
procedure Example(Series1: TLineSeries);
var Y,YHat,B,X: Vector;
begin
X.Size(100);
Y.Size(X);
X.Ramp(-5,0.05); // X = (-5, -4.95, ...-0.05)
Y.RandGauss(3.5,0.12); // populate sample data
FracFit(B,X,Y,2,4); // calculate coefficients, no constant term
// evaluate y by using calculated coefficients
FracEval(B.Values,X,YHat,2);
DrawValues(X,Y,Series1); // draw original data
DrawValues(X,YHat,Series2); // draw fitted data
end;
See Also: RegModels.FracEval