WOLFRAM SYSTEM MODELER

solveOneNonlinearEquation

Solve f(u) = 0; f(u_min) and f(u_max) must have different signs<br><br>This class is declared protected in <a href="Modelica.Blocks.Continuous.Internal.Filter.Utilities.bandPassAlpha.html">Modelica.Blocks.Continuous.Internal.Filter.Utilities.bandPassAlpha</a>

Wolfram Language

In[1]:=
SystemModel["Modelica.Blocks.Continuous.Internal.Filter.Utilities.bandPassAlpha.solveOneNonlinearEquation"]
Out[1]:=

Information

This information is part of the Modelica Standard Library maintained by the Modelica Association.

This function determines the solution of one non-linear algebraic equation "y=f(u)" in one unknown "u" in a reliable way. It is one of the best numerical algorithms for this purpose. As input, the nonlinear function f(u) has to be given, as well as an interval u_min, u_max that contains the solution, i.e., "f(u_min)" and "f(u_max)" must have a different sign. If possible, a smaller interval is computed by inverse quadratic interpolation (interpolating with a quadratic polynomial through the last 3 points and computing the zero). If this fails, bisection is used, which always reduces the interval by a factor of 2. The inverse quadratic interpolation method has superlinear convergence. This is roughly the same convergence rate as a globally convergent Newton method, but without the need to compute derivatives of the non-linear function. The solver function is a direct mapping of the Algol 60 procedure "zero" to Modelica, from:

Brent R.P.:
Algorithms for Minimization without derivatives. Prentice Hall, 1973, pp. 58-59.

Syntax

u = solveOneNonlinearEquation(aa, bb, ww, u_min, u_max, tolerance)

Inputs (6)

aa

Type: Real

bb

Type: Real

ww

Type: Real

u_min

Type: Real

Description: Lower bound of search interval

u_max

Type: Real

Description: Upper bound of search interval

tolerance

Default Value: 100 * Modelica.Constants.eps

Type: Real

Description: Relative tolerance of solution u

Outputs (1)

u

Type: Real

Description: Value of independent variable so that f(u) = 0