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;