ootk
Version:
Orbital Object Toolkit including Multiple Propagators, Initial Orbit Determination, and Maneuver Calculations.
65 lines (64 loc) • 2.62 kB
TypeScript
/**
* @author @thkruz Theodore Kruczek
* @license AGPL-3.0-or-later
* @copyright (c) 2025 Kruczek Labs LLC
*
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
* terms of the GNU Affero General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later version.
*
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License along with
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
*/
import { CostFunction } from './SimplexEntry.js';
export declare class DownhillSimplex {
private constructor();
/**
* Compute the centroid from a list of [SimplexEntry] objects, using cost
* function [f].
* @param f Cost function
* @param xss Simplex entries
* @returns The centroid.
*/
private static _centroid;
private static _shrink;
/**
* Generate a new simplex from initial guess [x0], and an optional
* simplex [step] value.
* @param x0 Initial guess
* @param step Simplex step
* @returns The simplex.
*/
static generateSimplex(x0: Float64Array, step?: number): Float64Array[];
/**
* Perform derivative-free Nelder-Mead simplex optimization to minimize the
* cost function [f] for the initial simplex [xs].
*
* Optional arguments:
* - `xTolerance`: centroid delta termination criteria
* - `fTolerance`: cost function delta termination criteria
* - `maxIter`: maximum number of optimization iterations
* - `adaptive`: use adaptive coefficients if possible
* - `printIter`: print a debug statement after each iteration
* @param f Cost function
* @param xs Initial simplex
* @param root0 Root0
* @param root0.xTolerance Root0.xTolerance
* @param root0.fTolerance Root0.fTolerance
* @param root0.maxIter Root0.maxIter
* @param root0.adaptive Root0.adaptive
* @param root0.printIter Root0.printIter
* @returns The optimal input value.
*/
static solveSimplex(f: CostFunction, xs: Float64Array[], { xTolerance, fTolerance, maxIter, adaptive, printIter, }: {
xTolerance?: number;
fTolerance?: number;
maxIter?: number;
adaptive?: boolean;
printIter?: boolean;
}): Float64Array;
}