public class SecularAndHarmonic extends Object
This class allows conversion from osculating parameters to mean parameters.
Constructor and Description |
---|
SecularAndHarmonic(int secularDegree,
double... pulsations)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addPoint(AbsoluteDate date,
double osculatingValue)
Add a fitting point.
|
double[] |
approximateAsPolynomialOnly(int combinedDegree,
AbsoluteDate combinedReference,
int meanDegree,
int meanHarmonics,
AbsoluteDate start,
AbsoluteDate end,
double step)
Approximate an already fitted model to polynomial only terms.
|
void |
fit()
Fit parameters.
|
double[] |
getFittedParameters()
Get a copy of the last fitted parameters.
|
double |
getHarmonicAmplitude()
Get an upper bound of the fitted harmonic amplitude.
|
AbsoluteDate |
getReferenceDate()
Get the reference date.
|
double |
meanDerivative(AbsoluteDate date,
int degree,
int harmonics)
Get mean derivative, truncated to first components.
|
double |
meanSecondDerivative(AbsoluteDate date,
int degree,
int harmonics)
Get mean second derivative, truncated to first components.
|
double |
meanValue(AbsoluteDate date,
int degree,
int harmonics)
Get mean value, truncated to first components.
|
double |
osculatingDerivative(AbsoluteDate date)
Get fitted osculating derivative.
|
double |
osculatingSecondDerivative(AbsoluteDate date)
Get fitted osculating second derivative.
|
double |
osculatingValue(AbsoluteDate date)
Get fitted osculating value.
|
void |
resetFitting(AbsoluteDate date,
double... initialGuess)
Reset fitting.
|
void |
setConvergenceRMS(double convergenceRMS)
Set RMS for convergence.
|
void |
setMaxIter(int maxIter)
Set maximum number of iterations.
|
public SecularAndHarmonic(int secularDegree, double... pulsations)
secularDegree
- degree of polynomial secular partpulsations
- pulsations of harmonic partpublic void resetFitting(AbsoluteDate date, double... initialGuess)
date
- reference dateinitialGuess
- initial guess for the parametersgetReferenceDate()
public void setConvergenceRMS(double convergenceRMS)
The RMS is the square-root of the sum of squared of the residuals, divided by the number of measurements.
convergenceRMS
- RMS below which convergence is considered to have been reachedpublic void setMaxIter(int maxIter)
maxIter
- maximum number of iterationspublic void addPoint(AbsoluteDate date, double osculatingValue)
date
- date of the pointosculatingValue
- osculating valuepublic AbsoluteDate getReferenceDate()
resetFitting(AbsoluteDate, double...)
public double getHarmonicAmplitude()
public void fit()
getFittedParameters()
public double[] getFittedParameters()
fit()
public double osculatingValue(AbsoluteDate date)
date
- current datepublic double osculatingDerivative(AbsoluteDate date)
date
- current datepublic double osculatingSecondDerivative(AbsoluteDate date)
date
- current datepublic double meanValue(AbsoluteDate date, int degree, int harmonics)
date
- current datedegree
- degree of polynomial secular part to considerharmonics
- number of harmonics terms to considerpublic double meanDerivative(AbsoluteDate date, int degree, int harmonics)
date
- current datedegree
- degree of polynomial secular part to considerharmonics
- number of harmonics terms to considerpublic double[] approximateAsPolynomialOnly(int combinedDegree, AbsoluteDate combinedReference, int meanDegree, int meanHarmonics, AbsoluteDate start, AbsoluteDate end, double step)
This method is mainly used in order to combine the large amplitude long
periods with the secular part as a new approximate polynomial model over
some time range. This should be used rather than simply extracting the
polynomial coefficients from getFittedParameters()
when some
periodic terms amplitudes are large (for example Sun resonance effects
on local solar time in sun synchronous orbits). In theses cases, the pure
polynomial secular part in the coefficients may be far from the mean model.
combinedDegree
- desired degree for the combined polynomialcombinedReference
- desired reference date for the combined polynomialmeanDegree
- degree of polynomial secular part to considermeanHarmonics
- number of harmonics terms to considerstart
- start date of the approximation time rangeend
- end date of the approximation time rangestep
- sampling steppublic double meanSecondDerivative(AbsoluteDate date, int degree, int harmonics)
date
- current datedegree
- degree of polynomial secular partharmonics
- number of harmonics terms to considerCopyright © 2002-2022 CS GROUP. All rights reserved.