# Fast Computation of Optimal Damping Parameters for Linear Vibrational Systems

^{1}

^{2}

^{*}

## Abstract

**:**

## 1. Introduction

`Matlab`, function $\mathrm{diag}$ is used twofold: when A is a matrix, $\mathrm{diag}\left(A\right)$ denotes the vectors of A’s diagonal elements. When $a={\left[\begin{array}{ccc}{a}_{1}& \cdots & {a}_{n}\end{array}\right]}^{T}$ is a vector, $\mathrm{diag}\left(a\right)$ and $\mathrm{diag}({a}_{1},\dots ,{a}_{n})$ denote the square diagonal matrix with elements of a on its diagonal.

## 2. Methods

#### 2.1. Standard Methods

#### 2.2. Fast Method

#### 2.2.1. Cauchy-like Matrices

#### 2.2.2. Eigenvalue Decomposition of CSymDPR1 Matrix

#### 2.2.3. Reduction to CSymDPR1 Eigenproblems

#### 2.2.4. Trace Computation

#### 2.2.5. Algorithms

Algorithm 1 Change of basis. | |

functionChangeOfBasis($M,K,{D}_{int}$) | ▹ Input is the vibrational system (1)–(4). |

▹ Use any of the standard methods, $O\left({n}^{3}\right)$. | |

$\mathsf{\Gamma}\leftarrow {\mathsf{\Phi}}^{T}{D}_{int}\mathsf{\Phi}$ | ▹ See (9) and (10), $O\left(n\right)$. |

▹ See also (28), $O\left(n\right)$ | |

return $\mathsf{\Phi}$, Q, $\mathsf{\Xi}$ | |

end function |

Algorithm 2 Eigenvalue decomposition of a CSymDPR1 matrix. | |

functionEigen($\mathsf{\Xi},y,\rho $) | ▹ Input is the CSymDPR1 matrix from (17). |

for $i\leftarrow 1:n$ do | ▹$O\left({n}^{2}\right)$ operations. |

choose starting vector x | |

for $i\leftarrow 1:4$ do | ▹ Repeat 4 times. |

▹ Rayleigh Quotient Iteration. | |

end for | |

repeat | |

▹ Modified RQI. | |

until convergence | |

${\mathsf{\Lambda}}_{ii}\leftarrow \mu $ | |

end for | |

set $V=C\left(\mathrm{diag}\right(\mathsf{\Xi}),\mathrm{diag}(\mathsf{\Lambda}),y,\mathsf{\Psi})$ | ▹ See (20). |

return $\mathsf{\Lambda}$, V | |

end function |

Algorithm 3 Trace computation. | |

functionTraceX($\mathsf{\Phi},Q,\mathsf{\Xi};{D}_{1},\dots ,{D}_{k};{\rho}_{1},\dots ,{\rho}_{k};G$) | ▹ Inputs are from Algorithm 1, (5) and (13). |

factor ${D}_{i}=d{d}^{T}$ | |

compute $y={Q}_{n+1:2n,:}^{T}{\mathsf{\Phi}}^{T}d$ | |

$\mathsf{\Lambda},S\leftarrow \mathrm{EIGEN}(\mathsf{\Xi},y,{\rho}_{1})$ | ▹ Algorithm 2, $O\left({n}^{2}\right)$. |

for $i\leftarrow 2:k$ do | ▹$O\left(k{n}^{2}\right)$ operations. |

factor ${D}_{i}=d{d}^{T}$ | |

compute $y={S}^{T}{Q}_{n+1:2n,:}^{T}{\mathsf{\Phi}}^{T}d$ | ▹ See (33). |

$\mathsf{\Lambda},V\leftarrow \mathrm{EIGEN}(\mathsf{\Lambda},y,{\rho}_{i})$ | ▹ Algorithm 2, $O\left({n}^{2}\right)$. |

$S\leftarrow S\xb7V$ | ▹ Multiplication of Cauchy-like matrices, see (35). |

end for | |

$Y\leftarrow C(\mathrm{diag}\left(\mathsf{\Lambda}\right),\mathrm{diag}(-\overline{\mathsf{\Lambda}}),-{S}^{T}G,{S}^{T}G)$ | ▹ See (37). |

$Z\leftarrow S\xb7Y$ | ▹ See (39) and (40). |

$\mathrm{TRACEX}\leftarrow \mathrm{Tracex}\left({S}^{*}Z\right)$ | ▹ See (41). |

return $\mathrm{TRACEX}$ | |

end function |

Algorithm 4 Optimization of viscosities. | |

functionOptimize(${\rho}_{1},\dots ,{\rho}_{k}$) | |

use $\mathsf{\Phi},Q,\mathsf{\Xi}$ computed by Algorithm 1 | |

choose geometries of dampers ${D}_{1},\dots ,{D}_{k}$ | ▹ See (5). |

choose matrix G | ▹ See (13). |

define $\mathrm{TRACEX}({\rho}_{1},\dots ,{\rho}_{k})\equiv \mathrm{TRACEX}(\mathsf{\Phi},Q,\mathsf{\Xi};{D}_{1},\dots ,{D}_{k};{\rho}_{1},\dots ,{\rho}_{k};G)$ | |

${\overline{\rho}}_{1},\dots ,{\overline{\rho}}_{k}\leftarrow \underset{{\rho}_{1},\dots ,{\rho}_{k}}{\mathrm{argmin}}\mathrm{TRACEX}({\rho}_{1},\dots ,{\rho}_{k})$ | ▹ Use standard software. |

return ${\overline{\rho}}_{1},\dots ,{\overline{\rho}}_{k}$ | |

end function |

#### 2.2.6. Accuracy

## 3. Examples

`src/GenerateExamples.jl`in the GitHub repository [42]. We consider the mechanical system shown in Figure 1. Similar examples were considered in [3,5,8,9,13,15]. In all our examples the mass oscillator contains two rows of d masses that are grounded from one side, while on the other side masses are connected to one mass which is then grounded. Therefore, we consider $2d+1$ masses and $2d+3$ springs, while the system has three dampers of different viscosities ${\rho}_{1}$, ${\rho}_{2}$ and ${\rho}_{3}$. However, we include several different configurations since system dimension n and parameters that determine system configuration are changed as we will describe below.

`src/GenerateExamples.jl`in the GitHub repository [42].

`lyap()`, which uses pre-compiled routines from the SLICOT library [28]. Even more, Matlab’s implementation of the SLICOT library in a multithreading environment is more than twice faster as Julia’s, so the comparison between the standard algorithm and our method is fair. To see the influence of the number of dampers, the times for single trace computation and complete optimization for 3, 4, and 5 dampers are given in Table 4. In Table 5, we display the norm of residuals of the computed solution X of the Lyapunov Equation (36). We also display the maximal relative errors between minimal trace and optimal viscosities computed by our method from Section 2.2 and the standard method from Section 2.1 (see also [8]), where solutions of (14) with $A\left({D}_{ext}\right)$ given by (12), are computed using Matlab’s function

`lyap()`.

## 4. Discussion

## 5. Conclusions

## Author Contributions

## Funding

## Institutional Review Board Statement

## Informed Consent Statement

## Data Availability Statement

## Acknowledgments

## Conflicts of Interest

## References

- Gawronski, W.K. Advanced Structural Dynamics and Active Control of Structures; Springer: New York, NY, USA, 2004. [Google Scholar]
- Veselić, K. Damped Oscillations of Linear Systems; Springer Lecture Notes in Mathematics; Springer: Berlin, Germany, 2011. [Google Scholar]
- Veselić, K. On linear vibrational system with one dimensional damping II. Integral Equ. Oper. Theory
**1990**, 13, 883–897. [Google Scholar] [CrossRef] - Cox, S.; Nakić, I.; Rittmann, A.; Veselić, K. Lyapunov optimization of a damped system. Syst. Control Lett.
**2004**, 53, 187–194. [Google Scholar] [CrossRef] - Truhar, N.; Veselić, K. An efficient method for estimating the optimal dampers’ viscosity for linear vibrating systems using the Lyapunov equation. SIAM J. Matrix Anal. Appl.
**2009**, 31, 18–39. [Google Scholar] [CrossRef] - Kuzmanović, I.; Tomljanović, Z.; Truhar, N. Optimization of material with modal damping. Appl. Math. Comput.
**2012**, 218, 7326–7338. [Google Scholar] [CrossRef] - Müller, P.C.; Schiehlen, W.O. Linear Vibrations; Martinus Nijhoff: Dordrecht, The Netherlands, 1985. [Google Scholar]
- Benner, P.; Tomljanović, Z.; Truhar, N. Optimal damping of selected eigenfrequencies using dimension reduction. Numer. Linear Algebr.
**2013**, 20, 1–17. [Google Scholar] [CrossRef] - Benner, P.; Tomljanović, Z.; Truhar, N. Dimension reduction for damping optimization in linear vibrating system. J. Appl. Math. Mech.
**2011**, 91, 179–191. [Google Scholar] [CrossRef] - Freitas, P.; Lancaster, P. On the optimal value of the spectral abscissa for a system of linear oscillators. SIAM J. Matrix Anal. Appl.
**1999**, 21, 195–208. [Google Scholar] [CrossRef] - Nakić, I.; Tomljanović, Z.; Truhar, N. Optimal Direct Velocity Feedback. Appl. Math. Comput.
**2013**, 225, 590–600. [Google Scholar] [CrossRef] - Nakić, I. Optimal Damping of Vibrational Systems. Ph.D. Thesis, Fernuniversität, Hagen, Germany, 2002. [Google Scholar]
- Truhar, N.; Tomljanović, Z.; Puvača, M. An Efficient Approximation For Optimal Damping In Mechanical Systems. Int. J. Numer. Anal. Model.
**2017**, 14, 201–217. [Google Scholar] - Benner, P.; Denißen, J. Numerical solution to low rank perturbed Lyapunov equations by the sign function method. Proc. Appl. Math. Mech.
**2016**, 16, 723–724. [Google Scholar] [CrossRef] [Green Version] - Kanno, Y.; Puvača, M.; Tomljanović, Z.; Truhar, N. Optimization of Damping Positions in a Mechanical System. Rad HAZU
**2019**, 23, 141–157. [Google Scholar] - Nakić, I.; Tomljanović, Z.; Truhar, N. Mixed control of vibrational systems. J. Appl. Math. Mech.
**2019**, 99, 1–15. [Google Scholar] [CrossRef] [Green Version] - Xu, B.; Wu, Z.; Chen, G.; Yokoyama, K. Direct identification of structural parameters from dynamic responses with neural networks. Eng. Appl. Artif. Intell.
**2004**, 17, 931–943. [Google Scholar] [CrossRef] - Bai, Z.; Su, Y. SOAR: A second-order Arnoldi method for the solution of the quadratic eigenvalue problem. SIAM J. Matrix Anal. Appl.
**2005**, 26, 640–659. [Google Scholar] [CrossRef] [Green Version] - Guo, C.H. Numerical solution of a quadratic eigenvalue problem. Linear Algebra Appl.
**2004**, 385, 391–406. [Google Scholar] [CrossRef] - Tisseur, F.; Meerbergen, K. Quadratic eigenvalue problem. SIAM Rev.
**2001**, 43, 235–286. [Google Scholar] [CrossRef] [Green Version] - Li, J.R.; White, J. Low rank solution of Lyapunov equations. SIAM J. Matrix Anal. Appl.
**2002**, 24, 260–280. [Google Scholar] [CrossRef] - Penzl, T. LYAPACK. Available online: http://www.tu-chemnitz.de/sfb393/lyapack (accessed on 20 May 2021).
- Benner, P.; Quintana-Ortí, E.S. Solving Stable Generalized Lyapunov Equations with the Matrix Sign Function. Numer. Algorithms
**1999**, 20, 75–100. [Google Scholar] [CrossRef] - Kenney, C.; Laub, A.J. The Matrix Sign Function. IEEE Trans. Automat.
**1995**, 40, 1330–1348. [Google Scholar] [CrossRef] - Hammarling, S.J. Numerical solution of the stable, nonnegative definite Lyapunov equation. IMA J. Numer. Anal.
**1982**, 2, 303–323. [Google Scholar] [CrossRef] [Green Version] - Kressner, D. Block variants of Hammarling’s method for solving Lyapunov equations. ACM Trans. Math. Softw.
**2008**, 34, 1–15. [Google Scholar] [CrossRef] - Bartels, R.H.; Stewart, G.W. A solution of the matrix equation AX + XB = C. Comm. ACM
**1972**, 15, 820–826. [Google Scholar] [CrossRef] - SLICOT, Subroutine Library in Systems and Control Theory. Available online: http://slicot.org/ (accessed on 12 June 2021).
- Pan, V.Y.; Zheng, A. Superfast algorithms for Cauchy-like matrix computations and extensions. Linear Alg. Appl.
**2000**, 310, 83–108. [Google Scholar] [CrossRef] [Green Version] - Watkins, D.S. Unsymmetric Matrix Eigenvalue Techniques. In Handbook of Linear Algebra; Hogben, L., Ed.; CRC Press: Boca Raton, FL, USA, 2014; Volume 56, pp. 1–12. [Google Scholar]
- Cuppen, J.J.M. A divide and conquer method for the symmetric tridiagonal eigenproblem. Numer. Math.
**1981**, 36, 177–195. [Google Scholar] [CrossRef] - Golub, G.H.; Van Loan, C.F. Matrix Computations, 4th ed.; The John Hopkins University Press: Baltimore, MD, USA, 2013. [Google Scholar]
- Bini, D.A.; Fiorentino, G. Design, analysis, and implementation of a multiprecision polynomial rootfinder. Numer. Algorithms
**2000**, 23, 127–173. [Google Scholar] [CrossRef] - Multiprecision Polynomial SOLVEr (MPSolve). Available online: https://numpi.dm.unipi.it/software/mpsolve (accessed on 14 May 2021).
- Jakovčević Stor, N.; Slapničar, I.; Barlow, J.L. Forward stable eigenvalue decomposition of rank-one modifications of diagonal matrices. Linear Algebra Appl.
**2015**, 487, 301–315. [Google Scholar] [CrossRef] - Parlett, B.N. The Rayleigh quotient iteration and some generalization for nonnormal matrices. Math. Comput.
**1974**, 28, 679–693. [Google Scholar] [CrossRef] - Arbenz, P.; Hochstenbach, M.E. A Jacobi–Davidson method for solving complex symmetric eigenvalue problems. SIAM J. Sci. Comp.
**2004**, 25, 1655–1673. [Google Scholar] [CrossRef] [Green Version] - Pan, V.Y.; Zheng, A. New progress in real and complex polynomial root finding. Comput. Math. Appl.
**2011**, 61, 1305–1334. [Google Scholar] [CrossRef] [Green Version] - Higham, N.J. Accuracy and Stability of Numerical Algorithms, 2nd ed.; SIAM: Philadelphia, PA, USA, 2002. [Google Scholar]
- Slapničar, I. Symmetric Matrix Eigenvalue Techniques. In Handbook of Linear Algebra; Hogben, L., Ed.; CRC Press: Boca Raton, FL, USA, 2014; Volume 55, pp. 1–26. [Google Scholar]
- Drmač, Z. Computing Eigenvalues and Singular Values to High Relative Accuracy. In Handbook of Linear Algebra; Hogben, L., Ed.; CRC Press: Boca Raton, FL, USA, 2014; Volume 59, pp. 1–20. [Google Scholar]
- FastOptimalDamping.jl. Available online: https://github.com/ivanslapnicar/FastOptimalDamping.jl (accessed on 10 February 2022).
- The Julia Language. Available online: http://julialang.org/ (accessed on 10 February 2022).
- Julia Package Listing. Available online: http://pkg.julialang.org/ (accessed on 10 February 2022).

**Table 1.**Description of examples. For above described examples we present: size of test problem, size of linearized problem, indices defining configuration of dampers, and resulting optimal viscosities.

Problem | Size | Linearized Size | $\left[\begin{array}{ccc}{\mathit{i}}_{1}& {\mathit{i}}_{2}& {\mathit{i}}_{3}\end{array}\right]$ | Optimal Viscosities |
---|---|---|---|---|

Small | 801 | 1602 | $\left[\begin{array}{ccc}50& 550& 120\end{array}\right]$ | $\left[\begin{array}{ccc}561.4& 651.8& 310.6\end{array}\right]$ |

Large | 1601 | 3202 | $\left[\begin{array}{ccc}50& 950& 220\end{array}\right]$ | $\left[\begin{array}{ccc}721.1& 656.5& 415.4\end{array}\right]$ |

Homogeneous | 2001 | 4002 | $\left[\begin{array}{ccc}850& 1950& 20\end{array}\right]$ | $\left[\begin{array}{ccc}620.0& 1047.1& 970.2\end{array}\right]$ |

**Table 2.**Standard method in Matlab. For all three examples we present run times in seconds for the standard $O\left({n}^{3}\right)$ method using Matlab with 12 cores. The individual problems are solved using the function

`lyap()`from the SLICOT library [28], and the unconstrained optimization is performed using the function

`fminsearchbnd()`. In the parentheses is the number of calls of the function

`lyap()`.

Problem | Lyap(SLICOT) | Optimization |
---|---|---|

Small | 1.8 | 162 (95 calls) |

Large | 11.2 | 1050 (97 calls) |

Homogeneous | 22.9 | 2608 (109 calls) |

**Table 3.**New method in Julia. For all three examples we present run times in seconds for the new $O\left({n}^{2}\right)$ method using Julia with 12 cores. The first column displays times for eigenvalue decomposition of a CSymDPR1 matrix computed by the function Eigen() from Algorithm 2. The second column displays times for single trace computation using the function TraceX() from Algorithm 3. The third column displays times for the optimization of viscositites using the function Optimize from Algorithm 4. The optimization is performed using the function

`ConjugateGradient()`from the Julia package

`Optim.jl`[44]. In the parentheses is the number of calls of the function TraceX(). Our Julia programs are available on GitHub [42].

Problem | Eigen | TraceX | Optimize |
---|---|---|---|

Small | 0.14 | 0.72 | 60 (79 calls) |

Large | 0.48 | 2.4 | 182 (79 calls) |

Homogeneous | 0.94 | 4.2 | 350 (71 calls) |

**Table 4.**Various number of dampers. We present timings for the large problem varying the number of dampers from three, as in Table 3, to five. The first column displays times for single trace computation using the function TraceX(). The second column displays times for the optimization of viscositites using the function Optimize(). In the parentheses is the number of calls of the function TraceX().

Number of Dampers | TraceX | Optimize |
---|---|---|

3 | 2.4 | 182 (79 calls) |

4 | 3.25 | 412 (128 calls) |

5 | 4.06 | 628 (154 calls) |

**Table 5.**Condition numbers, residuals and relative errors. The first column displays condition number (42) for each problem. The second column displays maximal condition number of all eigenvector matrices S and ${S}_{1}$ from (32) and (33) which appear during the entire optimization process. The third column displays maximal relative residuals of the computed solutions of the Lyapunov Equation (14) with A from (29) over the entire optimization process. The fourth column displays maximal relative errors between trace and optimal viscosities computed by our method and the standard method using Matlab’s function

`lyap()`.

Problem | $\mathit{\kappa}(\mathit{K},\mathit{M})$ | $max\mathit{\kappa}\left(\mathit{S}\right)$ | Residual | Relative Error |
---|---|---|---|---|

Small | $1.4\times {10}^{5}$ | 594.8 | $2.6\times {10}^{-9}$ | 0.0008 |

Large | $6.3\times {10}^{5}$ | 120.2 | $1.3\times {10}^{-9}$ | 0.0005 |

Homogeneous | $4.1\times {10}^{5}$ | 463.9 | $1.5\times {10}^{-9}$ | 0.0005 |

Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |

© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Jakovčević Stor, N.; Slapničar, I.; Tomljanović, Z.
Fast Computation of Optimal Damping Parameters for Linear Vibrational Systems. *Mathematics* **2022**, *10*, 790.
https://doi.org/10.3390/math10050790

**AMA Style**

Jakovčević Stor N, Slapničar I, Tomljanović Z.
Fast Computation of Optimal Damping Parameters for Linear Vibrational Systems. *Mathematics*. 2022; 10(5):790.
https://doi.org/10.3390/math10050790

**Chicago/Turabian Style**

Jakovčević Stor, Nevena, Ivan Slapničar, and Zoran Tomljanović.
2022. "Fast Computation of Optimal Damping Parameters for Linear Vibrational Systems" *Mathematics* 10, no. 5: 790.
https://doi.org/10.3390/math10050790