public class Approximator extends Object
Constructor and Description |
---|
Approximator() |
Modifier and Type | Method and Description |
---|---|
static void |
approximateFX(double[][] data,
int[] indices,
FX[] f,
double[] c)
Solves a linear equation system with each term having the form c * f(x).
|
static void |
approximateFXY(double[][] data,
int[] indices,
FXY[] f,
double[] c)
Solves a linear equation system with each term having the form c * f(x,y).
|
static double[] |
computeErrorStatistics(double[][] data,
int[] indices,
FXY[] f,
double[] c)
Returns the root mean square error (RMSE) for the approximation of the given data with a function given by
z(x,y) =
c[0]*f[0](x,y) + c[1]*f[1](x,y) + c[2]*f[2](x,y) + ... + c[n-1]*f[n-1](x,y) . |
static double |
computeRMSE(double[][] data,
int[] indices,
FXY[] f,
double[] c)
Returns the root mean square error (RMSE) for the approximation of the given data with a function given by
z(x,y) =
c[0]*f[0](x,y) + c[1]*f[1](x,y) + c[2]*f[2](x,y) + ... + c[n-1]*f[n-1](x,y) . |
static double |
computeY(FX[] f,
double[] c,
double x)
Computes y(x) = sum(c[i] * f[i](x), i = 0, n - 1).
|
static double |
computeZ(FXY[] f,
double[] c,
double x,
double y)
Computes z(x,y) = sum(c[i] * f[i](x,y), i = 0, n - 1).
|
static double |
getRMSE(double[][] data,
int[] indices,
FX[] f,
double[] c)
Returns the root mean square error (RMSE) for the approximation of the given data with a function given by y'(x)
=
c[0]*f[0](x) + c[1]*f[1](x) + c[2]*f[2](x) + ... + c[n-1]*f[n-1](x) . |
static void |
solve1(double[][] a,
double[] b,
double[] c)
Solves the matrix equation A * C = B for given A,B by performing the operation C = A.solve(B).
|
public static void approximateFX(double[][] data, int[] indices, FX[] f, double[] c)
c[0]
to c[n-1]
with n = f.length
for an approximation function y'(x) =
c[0]*f[0](x) + c[1]*f[1](x) + c[2]*f[2](x) + ... + c[n-1]*f[n-1](x)
which approximates the given
data vector xi=data[i][0]
, yi=data[i][1]
with i = 0
to data.length-1
.data
- an array of values of the form {{x1,y1}, {x2,y2}, {x3,y3}, ...}
indices
- the co-ordinate indices vector, determining the indices of x,y within data. If null
then indices
defaults to {0, 1}
.f
- the function vector, each function has the form y=f(x)c
- the resulting coefficient vector, must have the same size as the function vectorpublic static void approximateFXY(double[][] data, int[] indices, FXY[] f, double[] c)
c[0]
to c[n-1]
with n = f.length
for an approximation function z'(x,y) =
c[0]*f[0](x,y) + c[1]*f[1](x,y) + c[2]*f[2](x,y) + ... + c[n-1]*f[n-1](x,y)
which approximates the
given data vector xi=data[i][0]
, yi=data[i][1]
,
zi=data[i][2]
with i = 0
to data.length-1
.data
- an array of values of the form {{x1,y1,z1}, {x2,y2,z2}, {x3,y3,z3}, ...}
indices
- the co-ordinate indices vector, determining the indices of x,y,z within data
. If
null
then indices
defaults to {0, 1, 2}
.f
- the function vector, each function has the form z=f(x,y)c
- the resulting coefficient vector, must have the same size as the function vectorpublic static double getRMSE(double[][] data, int[] indices, FX[] f, double[] c)
c[0]*f[0](x) + c[1]*f[1](x) + c[2]*f[2](x) + ... + c[n-1]*f[n-1](x)
.data
- an array of values of the form {{x1,y1}, {x2,y2}, {x3,y3}, ...}
indices
- the co-ordinate indices vector, determining the indices of x,y within data
. If
null
then indices
defaults to {0, 1}
.f
- the function vector, each function has the form y=f(x)c
- the coefficient vector, must have the same size as the function vectorpublic static double computeRMSE(double[][] data, int[] indices, FXY[] f, double[] c)
c[0]*f[0](x,y) + c[1]*f[1](x,y) + c[2]*f[2](x,y) + ... + c[n-1]*f[n-1](x,y)
.data
- an array of values of the form {{x1,y1,z1}, {x2,y2,z1}, {x3,y3,z1}, ...}
indices
- the co-ordinate indices vector, determining the indices of x,y,z within data
. If
null
then indices
defaults to {0, 1, 2}
.f
- the function vector, each function has the form z=f(x,y)c
- the coefficient vector, must have the same size as the function vectorpublic static double[] computeErrorStatistics(double[][] data, int[] indices, FXY[] f, double[] c)
c[0]*f[0](x,y) + c[1]*f[1](x,y) + c[2]*f[2](x,y) + ... + c[n-1]*f[n-1](x,y)
.data
- an array of values of the form {{x1,y1,z1}, {x2,y2,z1}, {x3,y3,z1}, ...}
indices
- the co-ordinate indices vector, determining the indices of x,y,z within data
. If
null
then indices
defaults to {0, 1, 2}
.f
- the function vector, each function has the form z=f(x,y)c
- the coefficient vector, must have the same size as the function vectorpublic static double computeY(FX[] f, double[] c, double x)
f
- the function vectorc
- the coeffcient vectorx
- the x valuepublic static double computeZ(FXY[] f, double[] c, double x, double y)
f
- the function vectorc
- the coeffcient vectorx
- the x valuey
- the y valuepublic static void solve1(double[][] a, double[] b, double[] c)
a
- matrix Ab
- matrix Bc
- result matrix CCopyright © 2014–2017 European Space Agency (ESA). All rights reserved.