CLsqFit:UnforceCoef CLsqFit:ResetForcedCoefs

CLsqFit:IsCoefForced


The IsCoefForced method determines if a specified coefficient has been forced to a value.

Syntax

bForced = CLsqFit:IsCoefForced( nIndex, nChan* )

Remarks

If you are doing a complex fitting procedure and do not remember which coefficients were forced, use this method to query the status of a particular coefficient. To fit all coefficients after some were forced, you can remove all forcing in one step using ResetForcedCoefs.

This method takes a single number for the index of the coefficient to be polled. If you define the basis function in a script, then nIndex is simply an index into your list of coefficients to be fit. Alternatively, when using one of the built-in basis functions the index of the target coefficient is as follows:

Example

This example shows how to forcing a coefficient in a 2x2 coefficient polynomial fit. After computing the fit, the cross term between x and y at index 2,2 is removed from the fit by setting it to 0, leaving a fit to an inclined plane rather than a warped plane.

L = CLsqFit:new()

-- create the least squares fitting object

 

L:SetNumCoefs( {2,2} )

-- fit a polynomial with 2 coefficients each in 2 dimensions;

 

L:AddPt( -3, 1, 2 )

-- add an (x,y) point

 

L:AddPt( 4, 5, 3 )

-- add more points...

 

L:AddPt( 10, 8, 6 )

 

 

L:AddPt( 13, 17, 4.5 )

 

 

L:AddPt( 15, 12, 4 )

 

 

n = GetPolyCoefIndex( { 2, 2, } )

-- find the 2,2 coefficient in the 2x2 polynomial fit matrix

 

L:ForceCoef( n, 0.0 )

-- remove the cross-term at the 2,2 position

 

L:Fit()

-- use 4 coefficients with the 2,2 coef set to 0.0

 

bForced = L:IsCoefForced( n )

-- check whether the coefficient at 2,2 has been forced

 

Printf( "[%d] forced= %d", n, bForced )

-- prints [4] forced= 1

 

Related Topics

CLsqFit class, ForceCoef, ResetForcedCoefs