UNPKG

jalhyd

Version:

JaLHyd, a Javascript Library for Hydraulics

103 lines 3.81 kB
import { Debug } from "./internal_modules"; import { Nub } from "./internal_modules"; import { Result } from "./internal_modules"; /** * calcul par dichotomie * principe : y=f(x1,x2,...), on connait une valeur de y, * on cherche par ex le x2 correspondant, les autres xi étant fixés. * la méthode Equation() calcule analytiquement y=f(xi) */ export declare class Dichotomie extends Debug { private nub; private sVarCalc; /** * définition de la variable de la fonction */ private _paramX; /** * nombre d'étapes de recherche de l'intervalle de départ */ private _startIntervalMaxSteps; /** * nom du paramètre calculé analytiquement par Equation() */ private analyticalSymbol; /** * Targetted value calculated by the function */ private _target; private _func; /** * si > 0, un calcul dichotomique est en cours */ private static _inDicho; /** * Construction de la classe. * @param nub Noeud de calcul contenant la méthode de calcul Equation * @param sVarCalc Nom de la variable à calculer */ constructor(nub: Nub, sVarCalc: string, dbg?: boolean, func?: () => number); private set vX(value); /** * étapes de recherche de l'intervalle de départ */ get startIntervalMaxSteps(): number; set startIntervalMaxSteps(n: number); static get inDicho(): boolean; CalculX(x: number): number; /** * trouve la valeur x pour y=f(x) avec un y donné * @param rTarget valeur de y * @param rTol tolérance pour l'arrêt de la recherche * @param rInit valeur initiale approximative de x */ Dichotomie(rTarget: number, rTol: number, rInit: number): Result; debug(s: string): void; /** * Calcul de l'équation analytique. * @note Wrapper vers this.nub.Equation pour simplifier le code. * On utilise la première variable du tableau des variables pouvant être calculée analytiquement * Il faudra s'assurer que cette première variable correspond à la méthode de calcul la plus rapide */ private Calcul; /** * Détermine si une fonction est croissante ou décroissante. * @param x point auquel on calcul la dérivée * @param dom domaine de définition de la variable */ private isIncreasingFunction; /** * recherche l'intervalle contenant la valeur cible * @param rTarget valeur cible * @param intSearch intervalle de départ * @param intMax intervalle maximum (domaine de définition de la variable) */ private searchTarget; /** * Détermine l'intervalle de recherche initial * @param rTarget valeur cible de la fonction * @param rInit valeur initiale de la variable */ private getStartInterval; private CalcZero; /** * Searches the interval from <tt>lowerLimit</tt> to <tt>upperLimit</tt> * for a root (i.e., zero) of the function <tt>func</tt> with respect to * its first argument using Brent's method root-finding algorithm. * * Translated from zeroin.c in http://www.netlib.org/c/brent.shar. * * Copyright (c) 2012 Borgar Thorsteinsson <borgar@borgar.net> * MIT License, http://www.opensource.org/licenses/mit-license.php * * @param {function} func function for which the root is sought. * @param {number} lowerlimit the lower point of the interval to be searched. * @param {number} upperlimit the upper point of the interval to be searched. * @param {number} errorTol the desired accuracy (convergence tolerance). * @param {number} maxIter the maximum number of iterations. * @returns an estimate for the root within accuracy. * */ private uniroot; } //# sourceMappingURL=dichotomie.d.ts.map