tk = Matrices.Utilities.findLocal_tk(Rk, Vk);
Function findLocal_tk()
is an auxiliary function
called in iterative solver for algebraic Riccati equation based on
Newton's method with exact line search like
continuousRiccatiIterative
and
discreteRiccatiIterative.
The function computes the local minimum of the function
f_k(t_k)
f_k(t_k) = alpha_k*(1-t_k)^2 + 2*beta_k*(1-t)*t^2 + gamma_k*t^4
by calculating the zeros of the derivation d f_k/d t_k. It is
known that the function f_k(t_k) has a local minimum at some value
t_k_min in [0, 2].
With t_k_min the norm of the next residual of the algorithm will be
minimized.
See [1] for more information
[1] Benner, P., Byers, R. An Exact Line Search Method for Solving Generalized Continuous-Time Algebraic Riccati Equations IEEE Transactions On Automatic Control, Vol. 43, No. 1, pp. 101-107, 1998.
function findLocal_tk extends Modelica.Icons.Function; import Modelica.Math.Matrices; import Modelica.Math.Polynomials; input Real Rk[:, size(Rk, 1)]; input Real Vk[size(Rk, 1), size(Rk, 2)]; output Real tk; end findLocal_tk;