UNPKG

ootk

Version:

Orbital Object Toolkit including Multiple Propagators, Initial Orbit Determination, and Maneuver Calculations.

65 lines (64 loc) 2.62 kB
/** * @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; }