CLsqFit:Eval


The Eval method evaluates a point using the coefficients of the fit. The return value gives the predicted value of the point based on the specified independent variables.

Syntax

V = CLsqFit:Eval( x )

V = CLsqFit:Eval( tableX )

V1, V2, V3, V4 = CLsqFit:Eval( x )

V1, V2, V3, V4 = CLsqFit:Eval( tableX )

where

    x is the coordinate (independent variable) where the fit is to be evaluated.

    tableX is a Lua table containing n values for the n independent variables where the fit is to be evaluated. Use this form when the basis function takes more than 1 independent variable (i.e., the basis function uses more than 1 dimension).

    V, V1, V2, V3, and V4 are the value of the fit evaluated at the specified x or tableX. The number of values returned equals the number of channels.

  

The Eval method returns the value of the function estimated at a specified coordinates or set of coordinates in a multi-dimensional fit. If the fit involves more than 1 channel, then the two variations are used to retrieve either a single value or the number of values specified by the SetNumChannels method.

Examples

The following example illustrates how to evaluate the fit to numeric (single channel) data.

L = CLsqFit:new()

-- create a CLsqFit object

L:SetNumCoefs( 2 )

-- set 2 coefficients

L:AddPt( 3.5, 5.15 )

-- add a point for x = 3.5 and y = 5.15

 

-- add more points

L:Fit()

-- Fit the line

x = 14.5

-- choose x = 14.5 for evaluating the fit

V = L:Eval( x )

-- fetch the predicted value at x = 14.5

Printf( "V([%lg)= %lg\n", x, V )

-- list the value

end

 

The next example is similar to the first example, except that the fit involved RGB data. Note that 3 values are returned, one for each of the data channels:

L = CLsqFit:new()

-- create a CLsqFit object

L:SetNumChannels( 3 )

-- specify 3 channels

L:SetNumCoefs( 2 )

-- set 2 coefficients

L:AddPt( 3.5, "6,24,254" )

-- add a point for x = 3.5 and y = "6,24,254"

 

-- add more points

L:Fit()

-- Fit the line

x = 14.5

-- choose x = 14.5 for evaluating the fit

V1, V2, V3 = L:Eval( x )

-- fetch the predicted values at x = 14.5

Printf( "V([%lg)= %lg,%lg,%lg\n", x, V1, V2, V3 )

-- list the values

end

 

Related Topics

SetNumChannels

GetResid

CLsqFit class