Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

LEASQ returns a least squares approximated value in two or more dimensions.

Syntax

  1. LEASQ(Pno%, Ndim%, "ColLab$_1",.., "ColLab$_Ndim%", Xint_1,..,Xint_Ndim%-1, Order%_1,..,Order%_Ndim%-1, [Xtrap%=0,1])
  2. LEASQ(0, Npoints%, x_1, y_1, x_2, y_2,.., x_n, y_n, xint, [Xtrap%=0,1])
  3. LEASQ(@ObjFn(..), Ndim%, @ObjColPar_1,.., @ObjColPar_Ndim%, Xint_1,..,Xint_Ndim%-1, Order%_1,..,Order%_Ndim%-1, [Xtrap%=0,1])
  4. LEASQ(Telitab$, Ndim%, "ColLab$_1",.., "ColLab$_Ndim%", Xint_1,..,Xint_Ndim%-1, Order%_1,..,Order%_Ndim%-1, [Xtrap%=0,1]

Arguments

  • Pno% is Pno% is the number that refers to the TeLiTab sets in the Data slot. Pno% should be an integer value or a parameter which is assigned an integer value and is the number of the TeLiTab set in the expressions' data slot.
  • Npoints% is Npoints% is the number of points (x,y) that are given in direct definition.
  • @ObjFn() refers to the Object from which data will be used.
  • TeLiTab$ refers to the string parameter that contains the TeLiTab.
  • Ndim% is Ndim% is the number of dimensions.
  • "ColLab$_1" and @ObjColPar and @ObjColPar_1 refer 1 refer to the column that will be used as the parameter X in the interpolation.
  • "ColLab$_2" and @ObjColParand @ObjColPar_2 refer 2 refer to the column that will be used as the parameter Y in the interpolation. etc.
  • Order% is Order% is the parameter for interpolation (see above).
  • Xtrap% is Xtrap% is an optional argument to switch off a warning in the event of extrapolation. If Xtrap% If Xtrap% = 1 no  no warning is given. The value is not required and is 0 by default (not suppressing the warning).

...

  1. See also Telitab access for a generic description on the use of TeLiTab data
  2. Similar to other Data analysis functions, the LEASQ is a convenient way to evaluate data. Please also look at these functions for syntax examples
  3. The LEASQ function provides a convenient way to manipulate curve data. The routine contains a least squares approximator which fits a polynomial through a series of (x,y[z,,,]) in such way that the root mean squares of the difference between the actual points and the approximation is minimal. The polynomials are defined with their order for each dimension above one, so for a 2D (x,y) curve, one order is provided. The order for each dimension should be smaller than the number of ordinates-1 in that dimension.
  4. Ndim% and Order% are related to eachother. This can be simply understood by the following 2D example:

...

  1. In contradistinction with the 'real' interpolators like  DQUAD, SPLINT, LININT and DISINT, the LEASQ function allows points with the same X value and the points need not to be sorted in the 2D case. For multi-dimensional approximation a sorted matrix is required. See the example at the bottom of this paragraph in which power is interpolated in a matrix of power and propeller rotation rate on the basis of ship speed and propeller pitch setting.
  2. The function returns the approximated value according to the selected fitting order. Extrapolation outside the x-range is performed according to the selected order of the curve for that dimension. The theoretical maximum order can be calculated using the following example relation:


    Least_square_order=ROUND(SQRT(ORCA(TeLiTab_to_be_used#)),0)



  3. Please note that by extrapolating you will always run the risk of unreliable results, even when you have detemined an order for a fit based on the amount of points (ORCA(TeLiTab_to_be_used#). Always try to determine a realistic order on forehand, for instance based on physics.

Examples

Syntax 1: TeLiTab in Dataslot

In this example syntax 1 is used, the TeLiTab containing the data is addressed in the Dataslot of the relation.
The syntax is

LEASQ(Pno%, Ndim%, "ColLab$_1" or ColNo%_1,.., "ColLab$_Ndim%" or ColNo%_Ndim%, Xint_1,..,Xint_Ndim%-1, Order%_1,..,Order%_Ndim%-1, [Xtrap%=0,1])

For two dimensional interpolation on a regression line (Order%=1) and a TeLiTab in the Dataslot, the argument sequence is the following:

y = LEASQ(1, 2, "XC", "YC", x, 1, 1)

With the following Telitab set in the Data slot:

|LEASQ1|
0
2 "XC" "YC"
"1" 1 1
"2" 2 4
"3" 6 9
"4" 8 16
"5" 12 25
"6" 12 36
"7" 16 49
"8" 17 64
"9" 17 81
"10" 10 100|

This relation returns for x = 12 a value of

...

The syntax is

LEASQ(0, Npoints%, x_1, y_1, x_2, y_2,…, x_n, y_n, xint, Order%, [Xtrap%=0,1])

If Pno%=0 (the first parameter in the expression), then all x_i and y_i values should be numeric expressions. The minimum number of x,y data points in the list Npoints%, being of X,Y points of the curve, is 2. Interpolation (and extrapolation) is performed according to the curve form selected in Order%.

Syntax 3 and 4: TeLiTab in object or string


These methods are similar to syntax 1. The data used is however not presented in the dataslot of the relation, but exists in an object or a telitab. 


 

Quick links: Function overview | Attribute overview | Constants overview | Dimensions overview