Files
MultiPhysicsVault/.raw/ConceptsApplicationsFiniteElementAnalysis/ConceptsApplicationsFiniteElementAnalysis_062.md
T
김경종 6bca119e6c
Tests / Hermetic test suite (push) Has been cancelled
Tests / Skill frontmatter validation (push) Has been cancelled
add raw source
2026-07-02 09:18:17 +09:00

27 KiB
Raw Blame History


\left\{\frac {\partial \phi}{\partial \mathbf {x}} \right\} = [ \mathrm{A} ] \{\mathbf {x} \} \quad \text { and } \quad \frac {\partial^ {2} \phi}{\partial x _ {i} \partial x _ {j}} = A _ {i j} = A _ {j i} \tag {A.8}

As a special case, if [A] is a unit matrix, then \{\partial \phi / \partial x\} = \{x\} .

Let \{\mathbf{x}\} = \left\lfloor x_1 \quad x_2 \quad \ldots \quad x_n \right\rfloor^T , \{\mathbf{y}\} = \left\lfloor y_1 \quad y_2 \quad \ldots \quad y_m \right\rfloor^T , and [A] be an arbitrary n by m matrix that does not depend on the x_i . Suppose that the scalar \psi = \{\mathbf{x}\}^T[\mathbf{A}]\{\mathbf{y}\} is to be differentiated with respect to each of the x_i . The result is conveniently stated as a vector:


\left\{\frac {\partial \psi}{\partial x} \right\} = \left\lfloor \frac {\partial \psi}{\partial x _ {1}} \quad \frac {\partial \psi}{\partial x _ {2}} \quad \dots \quad \frac {\partial \psi}{\partial x _ {n}} \right\rfloor^ {T} = [ A ] \{y \} \tag {A.9}

As for differentiation with respect to the y_{i} , we note that since \psi is scalar,


\psi = \psi^ {T} = \{\mathbf {y} \} ^ {T} [ \mathbf {A} ] ^ {T} \{\mathbf {x} \} \tag {A.10}

therefore, if [A] does not depend on the y_{i} ,


\left\{\frac {\partial \psi}{\partial \mathbf {y}} \right\} = \left[ \frac {\partial \psi}{\partial y _ {1}} \quad \frac {\partial \psi}{\partial y _ {2}} \quad \dots \quad \frac {\partial \psi}{\partial y _ {m}} \right] ^ {T} = [ \mathbf {A} ] ^ {T} \{\mathbf {x} \} \tag {A.11}

As a special case, if [A] is a unit matrix, then


\psi = \{\mathbf {x} \} ^ {T} \{\mathbf {y} \} \quad \left\{\frac {\partial \psi}{\partial \mathbf {x}} \right\} = \{\mathbf {y} \} \quad \left\{\frac {\partial \psi}{\partial \mathbf {y}} \right\} = \{\mathbf {x} \} \tag {A.12}

SIMULTANEOUS ALGEBRAIC EQUATIONS

Selected algorithms for equation solving are described. Fortran coding is provided for some of these algorithms.

B.1 INTRODUCTION

Methods of computational mechanics usually produce large systems of simultaneous algebraic equations. Solution algorithms for these problems can be categorized as either direct or iterative.

Direct methods provide solutions within a fixed number of steps. The number of steps can be calculated a priori from knowledge of the size of the problem and the specific procedure elected. The solution obtained would be exact if infinitely precise arithmetic were possible. Storage requirements can be large, especially for three-dimensional finite element problems for which matrices are not narrowly banded and “fill-in” terms are created during processing.

Iterative (or indirect) methods provide approximate solutions that improve with continued iteration. The number of iterations needed is not known a priori: it depends on the size of the problem, the specific algorithm elected, the convergence criterion, and the numerical conditioning of the problem. (For ill-conditioned problems, iterative methods converge slowly and sometimes diverge.) Storage requirements are less than for direct methods, especially when bandwidths are large, because no “fill-in” terms are created. In this circumstance an iterative method may also be faster than a direct method. Convergence takes fewer iterations if a good initial guess is available. However, iterative methods are usually not competitive with direct methods except in specific areas such as reanalysis, optimization, and large three-dimensional problems.

In linear static analysis, equation solving typically accounts for roughly one-quarter of the “number-crunching” cost. In nonlinear analysis the fraction may be much higher.

Equation solving (and eigenvalue extraction) requires many multiplications, and roughly an equal number of additions or subtractions. Addition and subtraction are done much faster than multiplication. Accordingly, one can estimate the relative speed of competing algorithms by counting the number of multiplications required for each.

Some computers have vector processors that compute the product of two vectors almost as quickly as the product of two scalars. For such a machine we seek an algorithm that can be “vectorized.”

Often a problem is too large for all data to be stored in primary (core) memory. Many algorithms use out-of-core storage. In a virtual memory machine, the swapping of data in and out of core need not be explicitly coded; it is handled automatically by the operating system. However, if data are badly structured, a virtual memory machine may thrash, that is, spend an inordinate amount of time swapping information in and out of core.

Small problems, and well-conditioned problems, can be analyzed in single precision arithmetic (i.e., with approximately 32 bits per word). However, double-precision arithmetic is usually recommended for all calculations in a finite element analysis.

There are many ways to store sparse matrices, preserve their sparsity, avoid multipli-

cations by 0's and 1's, and so on [B.1]. No one selection of options is best in all cases, as different problems yield matrices of different topology.

Actual listings of many algorithms are published [B.2-B.6, for example]. Others, already compiled and callable as subroutines, appear in widely available software packages such as IMSL, NAg, and LINPAC. Further information on related software and procedures appears in Appendix C.

B.2 SOLUTION OF SIMULTANEOUS LINEAR ALGEBRAIC EQUATIONS BY GAUSS ELIMINATION

We wish to solve the system of equations ^{1}


[ \mathbf {A} ] \{\mathbf {x} \} = \{\mathbf {c} \} \tag {B.2-1}

where [A] is an n_{\text{eq}} by n_{\text{eq}} matrix and \{x\} and \{c\} are n_{\text{eq}} by 1 vectors. It is assumed that [A] is nonsingular and has constant coefficients, \{c\} is given, and \{x\} is to be determined. The concept of Gauss elimination is to combine the rows of Eq. B.2-1 in such a way that coefficient matrix [A] is transformed into upper triangular form. This is the forward-reduction phase. The equations are then sufficiently uncoupled to enable \{x\} to be determined by back-substitution [A.1, pp. 12-13].

The foregoing technique is detailed in Fig. B.2-1, and Fortran coding for it is given in Fig. B.2-2. During elimination, the i th equation, 1 \leq i < n_{\text{eq}} , is used to reduce to zero all entries below the diagonal in the i th column. Thus, in the i th elimination, one divides by the i th diagonal coefficient A_{ii} . This simple strategy would fail if A_{ii} were very small or zero. However, if [A] is a stiffness matrix, A_{ii} is sufficiently large unless the structure is nearly unstable or badly modeled.

When Fig. B.2-2 is studied, it may help to compare the coding with the following equation, which shows the result of one elimination (K = 2 in Fig. B.2-2, with NEQ = 3).


\left[ \begin{array}{c c c} A _ {1 1} & A _ {1 2} & A _ {1 3} \\ 0 & A _ {2 2} - \left(A _ {2 1} / A _ {1 1}\right) A _ {1 2} & A _ {2 3} - \left(A _ {2 1} / A _ {1 1}\right) A _ {1 3} \\ 0 & A _ {3 2} - \left(A _ {3 1} / A _ {1 1}\right) A _ {1 2} & A _ {3 3} - \left(A _ {3 1} / A _ {1 1}\right) A _ {1 3} \end{array} \right] \left\{ \begin{array}{l} x _ {1} \\ x _ {2} \\ x _ {3} \end{array} \right\} = \left\{ \begin{array}{l} c _ {1} \\ c _ {2} - \left(A _ {2 1} / A _ {1 1}\right) c _ {1} \\ c _ {3} - \left(A _ {3 1} / A _ {1 1}\right) c _ {1} \end{array} \right\} \tag {B.2-2}

An operation count shows that, for a large system of n_{\mathrm{eq}} equations, forward-reduction in Fig. B.2-2 requires about n_{\mathrm{eq}}^3 / 3 multiplications [A.1, pp. 14-16]. If [A] were symmetric, and Fig. B.2-2 were altered accordingly, about n_{\mathrm{eq}}^3 / 6 multiplications would be needed. In either case, back-substitution requires about n_{\mathrm{eq}}^2 / 2 multiplications. Clearly, for a large system of equations, most of the solution time is spent in doing forward-reduction.

If needed, the determinant of [A] can be calculated as the product of reduced diagonal coefficients in [A]. Thus, after statement 10 in Fig. B.2-2, insert the statements


\begin{array}{l} \mathrm{DET} = 1. 0 \mathrm{D} 0 \\ \mathrm{DO} 1 5 \mathrm{I} = 1, \mathrm{NEQ} \tag {B.2-3} \\ 1 5 \text {   DET   } = \text {   DET   } * \text { A(I,I)   } \\ \end{array}

However, DET is usually large, and may overflow. In some cases DET may be very small and may underflow. Overflow (or underflow) is less likely if statements B.2-3 are replaced by the statements

^{1} In some technical papers the symbolism \{x\} = [A]^{-1}\{c\} merely implies solution for unknowns \{x\} , not that matrix inversion is the numerical procedure actually used.

Forward-Reduction Phase


\left[ \begin{array}{c} \text {For} k = 2, 3, \dots , n _ {\mathrm{eq}} \\ \text {For} i = k, k + 1, \dots , n _ {\mathrm{eq}} \\ \left[ \begin{array}{c} r _ {i, k - 1} = A _ {i, k - 1} / A _ {k - 1, k - 1} \\ c _ {i} = c _ {i} - r _ {i, k - 1} c _ {k - 1} \end{array} \right. \\ \left[ \begin{array}{c} \text {For} j = k, k + 1, \dots , n _ {\mathrm{eq}} \\ A _ {i j} = A _ {i j} - r _ {i, k - 1} A _ {k - 1, j} \end{array} \right. \end{array} \right.

Back-Substitution Phase


\begin{array}{r l} & x _ {n _ {\mathrm{eq}}} = c _ {n _ {\mathrm{eq}}} / A _ {n _ {\mathrm{eq}} n _ {\mathrm{eq}}} \\ & \left[ \begin{array}{c} \text {For} k = n _ {\mathrm{eq}} - 1, n _ {\mathrm{eq}} - 2, \dots , 1 \\ x _ {k} = \frac {1}{A _ {k k}} \left(c _ {k} - \sum_ {j = k + 1} ^ {n _ {\mathrm{eq}}} A _ {k j} x _ {j}\right) \end{array} \right. \end{array}

Figure B.2-1. Algorithm for Gauss elimination solution of the system of n_{eq} simultaneous linear algebraic equations [A]\{x\} = \{c\} , where \{c\} is specified; [A] = A_{ij} , \{c\} = c_i , \{x\} = x_i . In this figure, “=” means “is replaced by,” as in Fortran.


\begin{array}{r l} & \text { DETLN } = 0. \text { DO } \\ & \text { DO } 1 5 \text { I } = 1, \text { NEQ } \\ & 1 5 \text { DETLN } = \text { DETLN } + \text { DLOG } (\text { A(I,I) }) \end{array} \tag {B.2-4}

which calculate the natural logarithm of the determinant.

Band-Symmetric Matrix [A]. Let [A] be symmetric and banded [A.1, pp. 5256]. With b the semibandwidth, coefficients in [A] to the right of its diagonal can be stored in a rectangular array of size n_{eq} by b, with all diagonal matrix coefficients A_{ii} in column 1 of the array (see Fig. 2.8-3b). A Gauss elimination equation solver for this storage format appears in Fig. B.2-3. It requires about n_{eq}b^{2}/2 multiplications for forward-reduction of [A] and about n_{eq}b multiplications each for forward-reduction of {c} and for back-substitution.

Figure B.2-3 exploits the fact that the “uneliminated” portion of [A] (i.e., the southeast corner of [A], below the eliminated equations) remains symmetric at all stages of reduction (see Eq. B.2-2). Thus the equation solver may use A_{ij} where one expects to see A_{ji} .

During elimination of a row of [A], coefficients in this row “cast a shadow” of width b below the row in which reside all coefficients that are modified by that elimination (Fig. B.2-4a). Accordingly, in Fig. B.2-3, the DO 780 and DO 750 statements carry calculations

SUBROUTINE SOL (A,C,X,NEQ)
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
DIMENSION A(NEQ,NEQ),C(NEQ),X(NEQ)
C--- Forward reduction phase.
DO 10 K=2,NEQ
DO 10 I=K,NEQ
R = A(I,K-1)/A(K-1,K-1)
C(I) = C(I) - R*C(K-1)
DO 10 J=K,NEQ
10 A(I,J) = A(I,J) - R*A(K-1,J)
C--- Back substitution phase (results stored in X).
X(NEQ) = C(NEQ)/A(NEQ,NEQ)
DO 30 K=NEQ-1,1,-1
X(K) = C(K)
DO 20 J=K+1,NEQ
20 X(K) = X(K) - A(K,J)*X(J)
30 X(K) = X(K)/A(K,K)
RETURN
END 

Figure B.2-2. Fortran statements for the Gauss elimination algorithm given in Fig. B.2-1.

SUBROUTINE SOLVER (A,C,NEQ,MBAND,IFLAG)
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
DIMENSION A(NEQ,1),C(1)
C--- Treat the case of one or more independent equations.
IF (MBAND ,GT. 1) GO TO 690
DO 680 N=1,NEQ
680 C(N) = C(N)/A(N,1)
RETURN
690 NEQP = NEQ + 1
NEQM = NEQ - 1
GO TO (700,800), IFLAG
C--- Forward reduction of the coefficient matrix [A].
700 DO 790 N=1,NEQM
LIM = MIN(MBAND,NEQP-N)
DO 780 L=2,LIM
DUM = A(N,L)/A(N,1)
I = N + L - 1
J = 0
DO 750 K=L,LIM
J = J + 1
750 A(I,J) = A(I,J) - DUM*A(N,K)
A(N,L) = DUM
780 CONTINUE
790 CONTINUE
C--- Forward reduction of the constant vector {c}.
800 DO 830 N=1,NEQM
LIM = MIN(MBAND,NEQP-N)
DO 820 L=2,LIM
I = N + L - 1
C(I) = C(I) - A(N,L)*C(N)
820 CONTINUE
830 C(N) = C(N)/A(N,1)
C(NEQ) = C(NEQ)/A(NEQ,1)
C--- Back substitution. Former unknowns {x} overwrite {c}
DO 860 N=NEQM,1,-1
LIM = MIN(MBAND,NEQP-N)
DO 850 L=2,LIM
K = N + L - 1
C(N) = C(N) - A(N,L)*C(K)
850 CONTINUE
860 CONTINUE
RETURN
END

Figure B.2-3. Subroutine for Gauss elimination solution of [A]\{x\} = \{c\} for band-symmetric matrix [A] (see Fig. 2.8-3b). NEQ = number of equations, MBAND = semibandwidth. Except for the case MBAND = 1, start at statement 700 (IFLAG = 1) for the first \{c\} and at statement 800 (IFLAG = 2) for any additional vectors \{c\} .

text_image

"Active triangle" Zero Row i b b n_eq Symmetric (a) b n_eq Zero (b)

Figure B.2-4. The “active triangle”; that is, the triangular patch of coefficients in the stored band affected by elimination of row i during forward reduction, in (a) full matrix format, and (b) band storage format.

to the right and to the bottom, respectively, of the active triangle. The MIN function selects \mathrm{LIM} = \mathrm{MBAND} except when this choice would cause processing to extend into the "zero triangle" in Fig. B.2-4b. Then \mathrm{LIM} = \mathrm{NEQ} + 1 - \mathrm{N} is chosen.

The determinant of [A] can be calculated from Fig. B.2-3 according to statements B.2-3 or B.2-4, but with A(I,I) replaced by A(I,1).

If a new \{c\} is to be processed for the same [A], one can enter Fig. B.2-3 at statement 800. Alternatively, with modest reprogramming, all constant vectors can be placed in a rectangular array and processed in a single pass through the subroutine.

A recommended modification of Fig. B.2-3 is to test for decay of diagonal coefficients (Section 18.4).

A possible modification of Fig. B.2-3 would avoid “do-nothing” computations that occur if DUM happens to be zero. One simply tests DUM in Fig. B.2-3 by an IF statement as soon as it is computed, and transfers to statement 780 if DUM=0. For example, the triangular block of zeros in Fig. B.2-5 remains zero throughout reduction of the matrix, so no purpose is served by exercising the innermost DO loop of Fig. B.2-3 on these coefficients. However, Fig. B.2-3 can be vectorized by a sophisticated compiler. Then the IF test would be of little help, or even detrimental, as it may inhibit vectorization on many compilers.

Another possible modification in Fig. B.2-3 would be to use a semibandwidth appropriate to the row being eliminated; that is, use MBAND(N) rather than taking MBAND as constant throughout the process. Then one must count semibandwidths of rows and be aware that each may change from its initial value when fill-in terms are created by forward-reduction.

Remarks. The Gauss elimination procedure of Fig. B.2-3 is row-oriented and uses a constant semibandwidth b. Some other forms of Gauss elimination are column-oriented and exploit the differing heights above the diagonal exhibited by various columns (see Fig. 2.8-1b). These procedures are known as profile, skyline, or active column solvers [B.2B.6]. Some topologies of coefficient matrix [A] are treated more efficiently by an active column solver than by a band solver. Figure B.2-5 is a case in point. An active column solver can avoid storage and processing of both blocks of zero coefficients. A band solver (Fig. B.2-3) stores and processes the triangular block of zeros, all to no useful purpose.

The wave front or frontal method is an arrangement of Gauss elimination in which assembly of structural equations alternates with their solution. The sequence in which equations are processed is driven by element numbering rather than by node numbering. The first equations to be eliminated are those associated with element 1 only. Then the adjacent element, element 2, makes its contribution of stiffness coefficients to the system of equations. If any additional equations are fully summed—that is, if any additional d.o.f. are shared by elements 1 and 2 only—these equations are eliminated. The next elimination awaits contributions from one or more additional elements. This repetitive alternation between assembly and solution can be viewed as a “wave” that sweeps over the structure

text_image

Zero Zero Symmetric

Figure B.2-5. Matrix topology better suited to an active column solver than to a band solver.

in a pattern dictated by the element numbering. For efficiency, consecutive element numbers should run “across” the structure—that is, in the direction that spans the smallest number of nodes.

If efficiently coded, and if presented with a structure whose nodes (or elements) are numbered for efficient processing, active column solvers and wavefront solvers appear to be equally efficient. Active column solvers appear to be easier to program and understand.

EIGENVALUES AND EIGENVECTORS

This appendix discusses the nature of the eigenproblem and suggests solution methods appropriate to particular forms that may be encountered.

C.1 THE EIGENPROBLEM

Let [A] and [B] be n by n square matrices. In an eigenvalue problem one seeks values of a scalar \lambda such that the matrix equation


([ \mathbf {A} ] - \lambda [ \mathbf {B} ]) \{\mathbf {x} \} = \{\mathbf {0} \} \tag {C.1-1}

has solutions other than the trivial solution \{x\} = \{0\} . There are at most n solutions \lambda_{i} , not necessarily all distinct. The \lambda_{i} are called eigenvalues (other names include characteristic values, latent roots, proper values, and principal values). Corresponding to each \lambda_{i} there is an \{x\}_{i} , called an eigenvector (other names include characteristic vector, proper vector, principal vector, normal mode, natural mode, and principal mode). Equation C.1-1 is called a generalized eigenproblem or simply an eigenproblem. If [B] happens to be the identity matrix, Eq. C.1-1 is called a standard eigenproblem [A.1] and the associated \lambda_{i} are called eigenvalues of [A].

Eigenproblems arise in vibration analysis (where \sqrt{\lambda_{i}} = \omega_{i} is a vibration frequency and \{x\}_{i} is the vibration mode) and in buckling analysis (where \lambda_{i} indicates the critical load and \{x\}_{i} is the buckling mode). In other physical problems the eigenproblem must be solved to obtain information needed for the modal method of time-history analysis. Section 13.5 discusses eigenproblems to the extent needed to solve simple vibration problems.

C.2 THE STANDARD EIGENPROBLEM

Consider an eigenproblem of the form


([ \mathbf {A} ^ {\prime} ] - \lambda [ \mathbf {B} ]) \{\mathbf {x} ^ {\prime} \} = \{\mathbf {0} \} \tag {C.2-1}

where [A'] is an arbitrary n by n square matrix and [B] is diagonal and nonsingular. There are always n eigenvalues of Eq. C.2-1. One may define a diagonal matrix [T] and a transformation of \{x'\} by


T _ {i i} = \frac {1}{\sqrt {B _ {i i}}} \quad \text { and } \quad \{\mathbf {x} ^ {\prime} \} = \lceil \mathbf {T} \rceil \{\mathbf {x} \} \tag {C.2-2}

Premultiplication of Eq. C.2-1 by [T] and substitution from Eq. C.2-2 yields the standard eigenproblem


([ \mathbf {A} ] - \lambda [ \mathbf {I} ]) \{\mathbf {x} \} = \{\mathbf {0} \} \tag {C.2-3}

where [A] = \left[T\right]\left[A'\right]\left[T\right] . Equations C.2-1 and C.2-3 have the same eigenvalues \lambda_{i} . An eigenvector \{x'\}_{i} of the original system is recovered from the corresponding eigenvector \{x\}_{i} by the operation \{x'\}_{i} = \left[T\right]\{x\}_{i} . (The foregoing transformation is convenient if [B] is the diagonal mass matrix of a structural dynamics problem.)

Properties of Eq. C.2-3 that may be useful in engineering applications are as follows. Most of these results can be deduced from [A.1, pp. 243360].

  1. If [A] is real and symmetric, the \lambda_{i} are real.
  2. If [A] is real, symmetric, and positive semidefinite, there are no negative \lambda_{i} . The number of nonzero \lambda_{i} equals the rank of [A].
  3. If [A] is real, symmetric, and positive definite, all \lambda_{i} are positive.
  4. If [\mathbf{A}] is real and positive definite but unsymmetric, the matrix ([{\mathbf{A}}] + [{\mathbf{A}}]^T) has positive eigenvalues.
  5. If \{\mathbf{x}\}_i is an eigenvector, so is c\{\mathbf{x}\}_i , where c is an arbitrary nonzero scalar.
  6. If all \lambda_{i} are distinct, all eigenvectors are distinct and linearly independent.
  7. A \lambda_{i} repeated k times may or may not have k independent associated eigenvectors.
  8. Let [G] be a square matrix, nonsingular and the same order as [A] but otherwise arbitrary. A matrix [C], obtained by the “similarity transformation” [C] = [G]⁻¹[A][G], has the same eigenvalues as [A]. If eigenvectors of [C] are {x_c}, eigenvectors of [A] are [G]{x_c}.
  9. If [A] is real and [\mathbf{A}]^T [\mathbf{A}] = [\mathbf{A}][\mathbf{A}]^T (e.g., [A] is real and symmetric), then eigenvectors are orthogonal, that is, \{\mathbf{x}\}_{j}^{T}\{\mathbf{x}\}_{j} = 0 if i\neq j .
  10. If eigenvectors are scaled so that \{\mathbf{x}\}_{i}^{T}\{\mathbf{x}\}_{i} = 1 , then \{\mathbf{x}\}_{i}^{T}[\mathbf{A}]\{\mathbf{x}\}_{i} = \lambda_{i} (see the Rayleigh quotient for the real symmetric case, Eq. 13.5-4 or Eq. C.3-9).
  11. If eigenvectors are scaled so that \{\mathbf{x}\}_{i}^{T}\{\mathbf{x}\}_{i} = 1 and [A] is symmetric and nonsingular, then

[ \mathbf {A} ] = \sum_ {i = 1} ^ {n} \lambda_ {i} \{\mathbf {x} \} _ {i} \{\mathbf {x} \} _ {i} ^ {T} \quad \text { and } \quad [ \mathbf {A} ] ^ {- 1} = \sum_ {i = 1} ^ {n} \frac {1}{\lambda_ {i}} \{\mathbf {x} \} _ {i} \{\mathbf {x} \} _ {i} ^ {T} \tag {C.2-4}

where n is the order of [A].

C.3 THE GENERAL EIGENPROBLEM

Lumping and condensation procedures can result in eigenproblems of the form of Eq. C.1-1 in which [A] and particularly [B] may be of a more general nature than considered thus far. However, we will assume that [A] and [B] are symmetric. The following terminology and observations are useful in understanding these problems.

  1. The matrix of linear polynomials A_{ij} - \lambda B_{ij} , that is,

[ \mathbf {A} ] - \lambda [ \mathbf {B} ] \tag {C.3-1}

is called a pencil (of [A] and [B]).

  1. Eigenvalues of the pencil arise from nontrivial solutions of Eq. C.1-1 and thus are values of \lambda that make the determinant of the pencil vanish,

\det ([ \mathbf {A} ] - \lambda [ \mathbf {B} ]) = 0 \tag {C.3-2}

(as in Eq. 13.5-3, for example).

  1. The polynomial of degree n or less

q (\lambda) = \det ([ \mathbf {A} ] - \lambda [ \mathbf {B} ]) \tag {C.3-3}

is called the characteristic polynomial of the pencil.

  1. In the case described by Eq. C.2-1, and consequently in the standard eigenproblem, q(\lambda) is of degree n and has n eigenvalues as roots (counting multiplicity).
  2. In general, q(\lambda) may be of degree less than n . Matrix [B] must be singular for this to occur. In the most extreme case it is possible (when [A] also is singular) to have q(\lambda) = 0 for all \lambda . Fortunately this rarely happens in practical problems [C.1-C.3]. The roots of q(\lambda) are called the finite eigenvalues. Infinite eigenvalues, if any, do not correspond to roots of q(\lambda) .
  3. Let [R] and [S] be nonsingular matrices of numbers (not involving \lambda ). The transformed pencil

[ \mathbf {R} ] [ \mathbf {A} ] [ \mathbf {S} ] - \lambda [ \mathbf {R} ] [ \mathbf {B} ] [ \mathbf {S} ] \tag {C.3-4a}

has the same characteristic polynomial as Eq. C.3-1, that is,


\det ([ \mathbf {R} ] [ \mathbf {A} ] [ \mathbf {S} ] - \lambda [ \mathbf {R} ] [ \mathbf {B} ] [ \mathbf {S} ]) = \det ([ \mathbf {A} ] - \lambda [ \mathbf {B} ]) = q (\lambda) \tag {C.3-4b}
  1. The pencil of Eq. C.3-1 in general may have fewer than n independent eigenvectors. The case of Eq. C.2-1 ([B] diagonal, B_{ii} > 0 ) is one in which there is a complete set of independent eigenvectors [Q], whose n columns are the independent solutions of Eq. C.1-1.
  2. Whenever there is a complete set of eigenvectors [Q], the pencil of Eq. C.3-1 is called diagonalizable. The special case of [B] positive definite is discussed in [A.1, pp. 343-346].
  3. In the most common cases of diagonalizable pencils (when [B] is positive definite) the eigenvectors are orthogonal with respect to [B], and may be normalized so that [Q] simultaneously diagonalizes [A] and [B],

[ \mathbf {Q} ] ^ {T} [ \mathbf {A} ] [ \mathbf {Q} ] = [ \Lambda ] \tag {C.3-5a}

[ \mathbf {Q} ] ^ {T} [ \mathbf {B} ] [ \mathbf {Q} ] = [ \mathbf {I} ] \tag {C.3-5b}

where [\Lambda] is a diagonal matrix with \Lambda_{ii} = \lambda_{i} . A set of [B]-orthogonal vectors, [Q], that satisfies Eq. C.3-5b is called orthonormal with respect to [B]. As a special case, if [B] is a unit matrix [I], then [Q] contains orthogonal unit vectors.

When [B] is positive definite, case 9 applies. This can be seen by transforming the pencil to standard form by using the Cholesky decomposition [A.1, p. 195],


[ \mathbf {B} ] = [ \mathbf {L} ] [ \mathbf {L} ] ^ {T} \tag {C.3-6}

and applying Eqs. C.3-4 with [R] = [L]^{-1} and [S] = [L]^{-T} to obtain the pencil


[ \mathbf {L} ] ^ {- 1} [ \mathbf {A} ] [ \mathbf {L} ] ^ {- \tau} - \lambda [ \mathbf {I} ] \tag {C.3-7}

Note that [L]^{-1}[A][L]^{-T} is symmetric and there are n independent and orthonormal eigenvectors. If [X] is a matrix whose columns are these eigenvectors, then the matrix of eigenvectors of the original pencil, Eq. C.3-1, is


[ \mathbf {Q} ] = [ \mathbf {L} ] ^ {- T} [ \mathbf {X} ] \tag {C.3-8}