#set document(title: "3.4 Eigenvalue Method", author: "Jiří Lebl") #set page(width: 8.5in, height: auto, margin: 1in) #import "@preview/cetz:0.5.2" #set text(font: ("STIX Two Text", "Libertinus Serif", "New Computer Modern"), size: 10.5pt, lang: "en") #show math.equation: set text(font: ("STIX Two Math", "New Computer Modern Math")) #set par(justify: true, leading: 0.62em, spacing: 0.9em) #set enum(spacing: 1.1em) // room between list items so tall inline fractions don't collide #set list(spacing: 1.1em) #set table(stroke: 0.5pt + rgb("#c7ccd3")) #let BLUE = rgb("#183B6F") // brand navy — section bars + example/solution labels (white on navy 11.09:1) #let ORANGE = rgb("#A94509") // brand primary-700 — AA-safe deep orange for TEXT (5.93:1 on white; raw brand #F37021 is 2.94:1 and must never carry text) #let RED = rgb("#DC2626") // brand error-600 #let GREEN = rgb("#059669") // brand success-600 (decoration only; small green text uses green-text #007942) #show heading.where(level: 1): it => block(width: 100%, above: 0pt, below: 16pt, fill: gradient.linear(BLUE, rgb("#2C5AA0")), inset: (x: 14pt, y: 12pt), radius: 3pt, text(fill: white, weight: "bold", size: 19pt, it.body)) #show heading.where(level: 2): it => block(width: 100%, above: 18pt, below: 10pt, fill: BLUE, inset: (x: 10pt, y: 6pt), radius: 2pt, text(fill: white, weight: "bold", size: 12pt, it.body)) #show heading.where(level: 3): it => text(fill: ORANGE, weight: "bold", size: 12.5pt, it.body) #show heading.where(level: 4): it => text(fill: BLUE, weight: "bold", size: 10.5pt, it.body) #let examplebox(label, title, body) = block(width: 100%, breakable: true, fill: rgb("#EFF1F5"), stroke: 0.5pt + rgb("#CFDDF0"), radius: 4pt, inset: 10pt, above: 12pt, below: 12pt)[ #block(below: 6pt)[#box(fill: BLUE, inset: (x: 6pt, y: 2pt), radius: 2pt, text(fill: white, weight: "bold", size: 8.5pt, label)) #h(0.4em) #strong[#title]] #body] // rail = decorative left rule (raw brand token); labelcolor = AA-safe label text shade #let notebox(label, rail, labelcolor, tint, body) = block(width: 100%, breakable: true, fill: tint, stroke: (left: 3pt + rail), inset: (left: 10pt, rest: 8pt), radius: (right: 4pt), above: 11pt, below: 11pt)[ #text(fill: labelcolor, weight: "bold", size: 7.5pt, tracking: 0.5pt)[#upper(label)] #linebreak() #body] #let solutionbox(body) = block(above: 4pt, below: 8pt)[ #text(fill: BLUE, weight: "bold", size: 8.5pt)[Solution] #linebreak() #body] #let figph(msg) = block(width: 100%, height: 60pt, fill: rgb("#f6f7f9"), stroke: (paint: rgb("#c7ccd3"), dash: "dashed"), radius: 4pt, inset: 10pt)[ #align(center + horizon, text(fill: rgb("#889"), style: "italic", size: 9pt, msg))] // Standardize inlined figure sizes: measure the natural CeTZ canvas, then scale to a // consistent envelope (aspect-aware; see build_typst.py FIG_* constants). Unlike the // print preamble, dimensions are FLOORED: in an editor a user can trim a figure to a // degenerate 1-D shape (a bare line), and w/h or tw/w would then divide by zero. #let _STD_W = 3.5 #let _WIDE_W = 5.6 #let _MAX_H = 3.4 #let _ASPECT_WIDE = 2.2 #let _UPSCALE_MAX = 1.15 #let stdfig(body) = context { let m = measure(body) let w = calc.max(m.width / 1in, 0.01) let h = calc.max(m.height / 1in, 0.01) let tw = if w / h > _ASPECT_WIDE { _WIDE_W } else { _STD_W } let s = calc.min(tw / w, _MAX_H / h, _UPSCALE_MAX) align(center, box(scale(x: s * 100%, y: s * 100%, reflow: true, body))) } #show figure: set block(breakable: false) #set figure(gap: 8pt) #show figure.caption: set text(size: 8.5pt, fill: rgb("#555")) == 3.4#h(0.6em)Eigenvalue Method In this section we will learn how to solve linear homogeneous constant coefficient systems of ODEs by the eigenvalue method. Suppose we have such a system #math.equation(block: true, alt: "x → prime equals P x → ,")[$arrow(x)^(′) = P arrow(x) ,$] where #math.equation(block: false, alt: "P")[$P$] is a constant square matrix. We wish to adapt the method for the single constant coefficient equation by trying the function #math.equation(block: false, alt: "e to the power λ t")[$e^(λ t)$]. However, #math.equation(block: false, alt: "x →")[$arrow(x)$] is a vector. So we try #math.equation(block: false, alt: "x → equals v → e to the power λ t")[$arrow(x) = arrow(v) e^(λ t)$], where #math.equation(block: false, alt: "v →")[$arrow(v)$] is an arbitrary constant vector. We plug this #math.equation(block: false, alt: "x →")[$arrow(x)$] into the equation to get #math.equation(block: true, alt: "λ v → e to the power λ t ⏟ x → prime equals P v → e to the power λ t ⏟ P x → .")[$limits(underbrace(λ arrow(v) e^(λ t)))_(arrow(x)^(′)) = limits(underbrace(P arrow(v) e^(λ t)))_(P arrow(x)) .$] We divide by #math.equation(block: false, alt: "e to the power λ t")[$e^(λ t)$] and notice that we are looking for a scalar #math.equation(block: false, alt: "λ")[$λ$] and a vector #math.equation(block: false, alt: "x →")[$arrow(x)$] that satisfy the equation #math.equation(block: true, alt: "λ v → equals P v → .")[$λ arrow(v) = P arrow(v) .$] To solve this equation we need a little bit more linear algebra, which we now review. === Eigenvalues and Eigenvectors of a Matrix Let #math.equation(block: false, alt: "A")[$A$] be a constant square matrix. Suppose there is a scalar #math.equation(block: false, alt: "λ")[$λ$] and a nonzero vector #math.equation(block: false, alt: "v →")[$arrow(v)$] such that #math.equation(block: true, alt: "A v → equals λ v → .")[$A arrow(v) = λ arrow(v) .$] We then call #math.equation(block: false, alt: "λ")[$λ$] an #emph[eigenvalue] of #math.equation(block: false, alt: "A")[$A$] and #math.equation(block: false, alt: "x →")[$arrow(x)$] is said to be a corresponding #emph[eigenvector]. #examplebox("Example 1")[][ The matrix #math.equation(block: false, alt: "2 1; 0 1")[$2 1 \ 0 1$] has an eigenvalue of #math.equation(block: false, alt: "λ equals 2")[$λ = 2$] with a corresponding eigenvector #math.equation(block: false, alt: "1; 0")[$1 \ 0$] because #math.equation(block: true, alt: "2 1; 0 1")[$2 1 \ 0 1$] Let us see how to compute the eigenvalues for any matrix. We rewrite the equation for an eigenvalue as #math.equation(block: true, alt: "open parenthesis A minus λ I close parenthesis v → equals 0 → .")[$( A − λ I ) arrow(v) = arrow(0) .$] We notice that this equation has a nonzero solution #math.equation(block: false, alt: "v →")[$arrow(v)$] only if #math.equation(block: false, alt: "A minus λ I")[$A − λ I$] is not invertible. Were it invertible, we could write #math.equation(block: false, alt: "open parenthesis A minus λ I close parenthesis to the power minus 1 open parenthesis A minus λ I close parenthesis v → equals open parenthesis A minus λ I close parenthesis to the power minus 1 0 → ,")[$( A − λ I )^(− 1) ( A − λ I ) arrow(v) = ( A − λ I )^(− 1) arrow(0) ,$] which implies #math.equation(block: false, alt: "v → equals 0 → .")[$arrow(v) = arrow(0) .$] Therefore, #math.equation(block: false, alt: "A")[$A$] has the eigenvalue #math.equation(block: false, alt: "λ")[$λ$] if and only if #math.equation(block: false, alt: "λ")[$λ$] solves the equation #math.equation(block: true, alt: "d e t open parenthesis A minus λ I close parenthesis equals 0 .")[$d e t ( A − λ I ) = 0 .$] Consequently, we will be able to find an eigenvalue of #math.equation(block: false, alt: "A")[$A$] without finding a corresponding eigenvector. An eigenvector will have to be found later, once #math.equation(block: false, alt: "λ")[$λ$] is known. ] #examplebox("Example 2")[][ Find all eigenvalues of #math.equation(block: false, alt: "2 1 1; 1 2 0; 0 0 2")[$2 1 1 \ 1 2 0 \ 0 0 2$]. #solutionbox[ We write #math.equation(block: true, alt: "d e t open parenthesis [ 2, 1, 1; 1, 2, 0; 0, 0, 2 ] minus λ [ 1, 0, 0; 0, 1, 0; 0, 0, 1 ] close parenthesis equals d e t open parenthesis [ 2 minus λ, 1, 1; 1, 2 minus λ, 0; 0, 0, 2 minus λ ] close parenthesis; equals open parenthesis 2 minus λ close parenthesis open parenthesis open parenthesis 2 minus λ close parenthesis squared minus 1 close parenthesis equals minus open parenthesis λ minus 1 close parenthesis open parenthesis λ minus 2 close parenthesis open parenthesis λ minus 3 close parenthesis .")[$d e t ( [ 2 & 1 & 1 \ 1 & 2 & 0 \ 0 & 0 & 2 ] − λ [ 1 & 0 & 0 \ 0 & 1 & 0 \ 0 & 0 & 1 ] ) = d e t ( [ 2 − λ & 1 & 1 \ 1 & 2 − λ & 0 \ 0 & 0 & 2 − λ ] ) \ = ( 2 − λ ) ( ( 2 − λ )^(2) − 1 ) = − ( λ − 1 ) ( λ − 2 ) ( λ − 3 ) .$] So the eigenvalues are #math.equation(block: false, alt: "λ equals 1 , λ equals 2 ,")[$λ = 1 , λ = 2 ,$] and #math.equation(block: false, alt: "λ equals 3")[$λ = 3$]. ] ] Note that for an #math.equation(block: false, alt: "n times n")[$n × n$] matrix, the polynomial we get by computing #math.equation(block: false, alt: "d e t open parenthesis A minus λ I close parenthesis")[$d e t ( A − λ I )$] will be of degree #math.equation(block: false, alt: "n")[$n$], and hence we will in general have #math.equation(block: false, alt: "n")[$n$] eigenvalues. Some may be repeated, some may be complex. To find an eigenvector corresponding to an eigenvalue #math.equation(block: false, alt: "λ")[$λ$], we write #math.equation(block: true, alt: "open parenthesis A minus λ I close parenthesis v → equals 0 → ,")[$( A − λ I ) arrow(v) = arrow(0) ,$] and solve for a nontrivial (nonzero) vector #math.equation(block: false, alt: "v →")[$arrow(v)$]. If #math.equation(block: false, alt: "λ")[$λ$] is an eigenvalue, there will be at least one free variable, and so for each distinct eigenvalue #math.equation(block: false, alt: "λ")[$λ$], we can always find an eigenvector #examplebox("Example 3")[][ Find an eigenvector of #math.equation(block: false, alt: "2 1 1; 1 2 0; 0 0 2")[$2 1 1 \ 1 2 0 \ 0 0 2$] corresponding to the eigenvalue #math.equation(block: false, alt: "λ equals 3")[$λ = 3$]. #solutionbox[ We write #math.equation(block: true, alt: "2 1 1; 1 2 0; 0 0 2")[$2 1 1 \ 1 2 0 \ 0 0 2$] It is easy to solve this system of linear equations. We write down the augmented matrix #math.equation(block: true, alt: "minus 1 0 0 0; 1 minus 1 0 0; 0 0 minus 1 0")[$− 1 0 0 0 \ 1 − 1 0 0 \ 0 0 − 1 0$] and perform row operations (exercise: which ones?) until we get: #math.equation(block: true, alt: "1 minus 1 0 0; 0 0 1 0; 0 0 0 0")[$1 − 1 0 0 \ 0 0 1 0 \ 0 0 0 0$] The entries of #math.equation(block: false, alt: "v →")[$arrow(v)$] have to satisfy the equations #math.equation(block: false, alt: "v sub 1 minus v sub 2 equals 0 , v sub 3 equals 0")[$v_(1) − v_(2) = 0 , v_(3) = 0$] and #math.equation(block: false, alt: "v sub 2")[$v_(2)$] is a free variable. We can pick #math.equation(block: false, alt: "v sub 2")[$v_(2)$] to be arbitrary (but nonzero), let #math.equation(block: false, alt: "v sub 1 equals v sub 2 ,")[$v_(1) = v_(2) ,$] and of course #math.equation(block: false, alt: "v sub 3 equals 0 .")[$v_(3) = 0 .$] For example, if we pick #math.equation(block: false, alt: "v sub 2 equals 1 ,")[$v_(2) = 1 ,$] then #math.equation(block: false, alt: "1; 1; 0")[$1 \ 1 \ 0$] Let us verify that #math.equation(block: false, alt: "v →")[$arrow(v)$] really is an eigenvector corresponding to #math.equation(block: false, alt: "λ equals 3")[$λ = 3$]: #math.equation(block: true, alt: "2 1 1; 1 2 0; 0 0 2")[$2 1 1 \ 1 2 0 \ 0 0 2$] Yay! It worked. ] ] #notebox("Your Turn", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ #emph[(easy)] Are eigenvectors unique? Can you find a different eigenvector for #math.equation(block: false, alt: "λ equals 3")[$λ = 3$] in the example above? How are the two eigenvectors related? ] #notebox("Your Turn", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ Note that when the matrix is #math.equation(block: false, alt: "2 times 2")[$2 × 2$] you do not need to write down the augmented matrix and do row operations when computing eigenvectors (if you have computed the eigenvalues correctly). Can you see why? Try it for the matrix #math.equation(block: false, alt: "v sub 2")[$v_(2)$]. ] === 3.4.2Eigenvalue Method with Distinct Real Eigenvalues We have the system of equations #math.equation(block: true, alt: "x → prime equals P x → .")[$arrow(x)^(′) = P arrow(x) .$] We find the eigenvalues #math.equation(block: false, alt: "λ sub 1 , λ sub 2 , … , λ sub n")[$λ_(1) , λ_(2) , … , λ_(n)$] of the matrix #math.equation(block: false, alt: "P")[$P$], and corresponding eigenvectors #math.equation(block: false, alt: "x → sub 1 , x → sub 2 , … , x → sub n .")[$arrow(x)_(1) , arrow(x)_(2) , … , arrow(x)_(n) .$] Now we notice that the functions #math.equation(block: false, alt: "v → sub 1 e to the power λ sub 1 t , v → sub 2 e to the power λ sub 2 t , … , v → sub n e to the power λ sub n t")[$arrow(v)_(1) e^(λ_(1) t) , arrow(v)_(2) e^(λ_(2) t) , … , arrow(v)_(n) e^(λ_(n) t)$] are solutions of the system of equations and hence #math.equation(block: false, alt: "x → equals c sub 1 v → sub 1 e to the power λ sub 1 t plus c sub 2 v → sub 2 e to the power λ sub 2 t plus ⋯ plus c sub n v → sub n e to the power λ sub n t")[$arrow(x) = c_(1) arrow(v)_(1) e^(λ_(1) t) + c_(2) arrow(v)_(2) e^(λ_(2) t) + ⋯ + c_(n) arrow(v)_(n) e^(λ_(n) t)$] is a solution. #notebox("Note", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ Take #math.equation(block: false, alt: "x → prime equals P x →")[$arrow(x)^(′) = P arrow(x)$]. If #math.equation(block: false, alt: "P")[$P$] is an #math.equation(block: false, alt: "n times n")[$n × n$] constant matrix that has #math.equation(block: false, alt: "n")[$n$] distinct real eigenvalues #math.equation(block: false, alt: "λ sub 1 , λ sub 2 , … , λ sub n ,")[$λ_(1) , λ_(2) , … , λ_(n) ,$] then there exist #math.equation(block: false, alt: "n")[$n$] linearly independent corresponding eigenvectors#math.equation(block: false, alt: "v → sub 1 , v → sub 2 , … , v → sub n ,")[$arrow(v)_(1) , arrow(v)_(2) , … , arrow(v)_(n) ,$] and the general solution to #math.equation(block: false, alt: "x → prime equals P x →")[$arrow(x)^(′) = P arrow(x)$] can be written as #math.equation(block: true, alt: "x → equals c sub 1 v → sub 1 e to the power λ sub 1 t plus c sub 2 v → sub 2 e to the power λ sub 2 t plus ⋯ plus c sub n v → sub n e to the power λ sub n t .")[$arrow(x) = c_(1) arrow(v)_(1) e^(λ_(1) t) + c_(2) arrow(v)_(2) e^(λ_(2) t) + ⋯ + c_(n) arrow(v)_(n) e^(λ_(n) t) .$] ] The corresponding fundamental matrix solution is #math.equation(block: true, alt: "X open parenthesis t close parenthesis equals [ v → sub 1 e to the power λ sub 1 t v → sub 2 e to the power λ sub 2 t ⋯ v → sub n e to the power λ sub n t ] .")[$X ( t ) = [ arrow(v)_(1) e^(λ_(1) t) " " " " " " arrow(v)_(2) e^(λ_(2) t) " " " " " " ⋯ " " " " " " arrow(v)_(n) e^(λ_(n) t) ] .$] That is, #math.equation(block: false, alt: "X open parenthesis t close parenthesis")[$X ( t )$] is the matrix whose #math.equation(block: false, alt: "j to the power t h")[$j^(upright(t) upright(h))$] column is #math.equation(block: false, alt: "v → sub j e to the power λ sub j t")[$arrow(v)_(j) e^(λ_(j) t)$]. #examplebox("Example 4")[][ Consider the system #math.equation(block: true, alt: "2 1 1; 1 2 0; 0 0 2")[$2 1 1 \ 1 2 0 \ 0 0 2$] Find the general solution. #solutionbox[ Earlier, we found the eigenvalues are #math.equation(block: false, alt: "1 , 2 , 3 .")[$1 , 2 , 3 .$] We found the eigenvector #math.equation(block: false, alt: "1; 1; 0")[$1 \ 1 \ 0$] for the eigenvalue 3. Similarly we find the eigenvector #math.equation(block: false, alt: "1; minus 1; 0")[$1 \ − 1 \ 0$] for the eigenvalue 1, and #math.equation(block: false, alt: "0; 1; minus 1")[$0 \ 1 \ − 1$] for the eigenvalue 2 (exercise: check). Hence our general solution is #math.equation(block: true, alt: "1; minus 1; 0")[$1 \ − 1 \ 0$] In terms of a fundamental matrix solution #math.equation(block: true, alt: "e to the power t 0 e to the power 3 t; minus e to the power t e to the power 2 t e to the power 3 t; 0 minus e to the power 2 t 0")[$e^(t) 0 e^(3 t) \ − e^(t) e^(2 t) e^(3 t) \ 0 − e^(2 t) 0$] ] ] #notebox("Your Turn", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ Check that this #math.equation(block: false, alt: "x →")[$arrow(x)$] really solves the system. Note: If we write a homogeneous linear constant coefficient #math.equation(block: false, alt: "n to the power t h")[$n^(upright(t) upright(h))$] order equation as a first order system (as we did in #link("https://math.libretexts.org/Bookshelves/Differential_Equations/Differential_Equations_for_Engineers_(Lebl)/3%3A_Systems_of_ODEs/3.1%3A_Introduction_to_Systems_of_ODEs")[Section 3.1]), then the eigenvalue equation #math.equation(block: true, alt: "d e t open parenthesis P minus λ I close parenthesis equals 0")[$d e t ( P − λ I ) = 0$] is essentially the same as the characteristic equation we got in #link("https://math.libretexts.org/Bookshelves/Differential_Equations/Differential_Equations_for_Engineers_(Lebl)/2%3A_Higher_order_linear_ODEs/2.2%3A_Constant_coefficient_second_order_linear_ODEs")[Section 2.2] and #link("https://math.libretexts.org/Bookshelves/Differential_Equations/Differential_Equations_for_Engineers_(Lebl)/2%3A_Higher_order_linear_ODEs/2.3%3A_Higher_order_linear_ODEs")[Section 2.3]. ] === Complex Eigenvalues A matrix might very well have complex eigenvalues even if all the entries are real. For example, suppose that we have the system #math.equation(block: true, alt: "1 1; minus 1 1")[$1 1 \ − 1 1$] Let us compute the eigenvalues of the matrix #math.equation(block: false, alt: "1 1; minus 1 1")[$1 1 \ − 1 1$] #math.equation(block: true, alt: "1 minus λ 1; minus 1 1 minus λ")[$1 − λ 1 \ − 1 1 − λ$] Thus #math.equation(block: false, alt: "λ equals 1 ± i .")[$λ = 1 ± i .$] The corresponding eigenvectors are also complex. First take #math.equation(block: false, alt: "λ equals 1 minus i ,")[$λ = 1 − i ,$] #math.equation(block: true, alt: "open parenthesis P minus open parenthesis 1 minus i close parenthesis I close parenthesis v → equals 0 → ,; [ i, 1; minus 1, i ] v → equals 0 → .")[$( P − ( 1 − i ) I ) arrow(v) = arrow(0) , \ [ i & 1 \ − 1 & i ] arrow(v) = arrow(0) .$] The equations #math.equation(block: false, alt: "i v sub 1 plus v sub 2 equals 0")[$i v_(1) + v_(2) = 0$] and #math.equation(block: false, alt: "minus v sub 1 plus i v sub 2 equals 0")[$− v_(1) + i v_(2) = 0$] are multiples of each other. So we only need to consider one of them. After picking #math.equation(block: false, alt: "v sub 2 equals 1")[$v_(2) = 1$], for example, we have an eigenvector #math.equation(block: false, alt: "i; 1")[$i \ 1$]. In similar fashion we find that #math.equation(block: false, alt: "minus i; 1")[$− i \ 1$] is an eigenvector corresponding to the eigenvalue #math.equation(block: false, alt: "1 plus i")[$1 + i$]. We could write the solution as #math.equation(block: true, alt: "i; 1")[$i \ 1$] We would then need to look for complex values #math.equation(block: false, alt: "c sub 1")[$c_(1)$] and #math.equation(block: false, alt: "c sub 2")[$c_(2)$] to solve any initial conditions. It is perhaps not completely clear that we get a real solution. We could use #link("http://www.jirka.org/diffyqs/htmlver/diffyqsse11.html#x16-36005r2")[Euler’s formula] and do the whole song and dance we did before, but we will not. We will do something a bit smarter first. We claim that we did not have to look for a second eigenvector (nor for the second eigenvalue). All complex eigenvalues come in pairs (because the matrix #math.equation(block: false, alt: "P")[$P$] is real). First a small side note. The real part of a complex number #math.equation(block: false, alt: "z")[$z$] can be computed as #math.equation(block: false, alt: "the fraction z plus z ¯ over 2")[$frac(z + overline(z), 2)$], where the bar above #math.equation(block: false, alt: "z")[$z$] means #math.equation(block: false, alt: "a plus i b ― equals a minus i b")[$limits(a + i b)^(―) = a − i b$]. This operation is called the complex conjugate. If #math.equation(block: false, alt: "a")[$a$] is a real number, then #math.equation(block: false, alt: "a ¯ equals a")[$overline(a) = a$]. Similarly we can bar whole vectors or matrices by taking the complex conjugate of every entry. If a matrix #math.equation(block: false, alt: "P")[$P$] is real, then #math.equation(block: false, alt: "P ¯ equals P")[$overline(P) = P$]. We note that #math.equation(block: false, alt: "P x → ― equals P ¯ x → ¯ equals P x → ¯ .")[$limits(P arrow(x))^(―) = overline(P) overline(arrow(x)) = P overline(arrow(x)) .$]. Also the complex conjugate of #math.equation(block: false, alt: "0")[$0$] is still #math.equation(block: false, alt: "0")[$0$], therefore, #math.equation(block: true, alt: "0 → equals 0 → ― equals open parenthesis P minus λ I close parenthesis v → ― equals open parenthesis P minus λ ¯ I close parenthesis v → ¯ .")[$arrow(0) = limits(arrow(0))^(―) = limits(( P − λ I ) arrow(v))^(―) = ( P − overline(λ) I ) overline(arrow(v)) .$] So if #math.equation(block: false, alt: "v →")[$arrow(v)$] is an eigenvector corresponding to the eigenvalue #math.equation(block: false, alt: "λ equals a plus i b")[$λ = a + i b$], then #math.equation(block: false, alt: "v → ¯")[$overline(arrow(v))$] is an eigenvector corresponding to the eigenvalue #math.equation(block: false, alt: "λ ¯ equals a minus i b")[$overline(λ) = a − i b$]. Suppose that #math.equation(block: false, alt: "a plus i b")[$a + i b$] is a complex eigenvalue of #math.equation(block: false, alt: "P")[$P$], and #math.equation(block: false, alt: "v →")[$arrow(v)$] is a corresponding eigenvector. Then #math.equation(block: true, alt: "x → sub 1 equals v → e to the power open parenthesis a plus i b close parenthesis t")[$arrow(x)_(1) = arrow(v) e^(( a + i b ) t)$] is a solution (complex valued) of #math.equation(block: false, alt: "x → prime equals P x →")[$arrow(x)^(′) = P arrow(x)$]. Euler’s formula shows that #math.equation(block: false, alt: "e to the power a plus i b ― equals e to the power a minus i b")[$limits(e^(a + i b))^(―) = e^(a − i b)$], and so #math.equation(block: true, alt: "x → sub 2 equals x sub 1 → ― equals v → ¯ e to the power open parenthesis a plus i b close parenthesis t")[$arrow(x)_(2) = limits(arrow(x_(1)))^(―) = overline(arrow(v)) e^(( a + i b ) t)$] is also a solution. As #math.equation(block: false, alt: "x sub 1 →")[$arrow(x_(1))$] and #math.equation(block: false, alt: "x sub 2 →")[$arrow(x_(2))$] are solutions, the function #math.equation(block: true, alt: "x → sub 3 equals R e x → sub 1 equals R e v → e to the power open parenthesis a plus i b close parenthesis t equals the fraction x → sub 1 plus x sub 1 → ― over 2 equals the fraction x → sub 1 plus x sub 2 → over 2 equals the fraction 1 over 2 x sub 1 → plus the fraction 1 over 2 x sub 2 →")[$arrow(x)_(3) = upright(R) upright(e) " " arrow(x)_(1) = upright(R) upright(e) " " arrow(v) e^(( a + i b ) t) = frac(arrow(x)_(1) + limits(arrow(x_(1)))^(―), 2) = frac(arrow(x)_(1) + arrow(x_(2)), 2) = frac(1, 2) arrow(x_(1)) + frac(1, 2) arrow(x_(2))$] is also a solution. And #math.equation(block: false, alt: "x → sub 3")[$arrow(x)_(3)$] is real-valued! Similarly as #math.equation(block: false, alt: "I m z equals the fraction z minus z ¯ over 2 i")[$upright(I) upright(m) " " z = frac(z − overline(z), 2 i)$] is the imaginary part, we find that #math.equation(block: true, alt: "x → sub 4 equals I m x → sub 1 equals the fraction x → sub 1 minus x sub 1 → ― over 2 i equals the fraction x → sub 1 minus x sub 2 → over 2 i")[$arrow(x)_(4) = upright(I) upright(m) " " arrow(x)_(1) = frac(arrow(x)_(1) − limits(arrow(x_(1)))^(―), 2 i) = frac(arrow(x)_(1) − arrow(x_(2)), 2 i)$] is also a real-valued solution. It turns out that #math.equation(block: false, alt: "x → sub 3")[$arrow(x)_(3)$] and #math.equation(block: false, alt: "x → sub 4")[$arrow(x)_(4)$] are linearly independent. We will use #link("http://www.jirka.org/diffyqs/htmlver/diffyqsse11.html#x16-36005r2")[Euler’s formula] to separate out the real and imaginary part. Returning to our problem, #math.equation(block: true, alt: "x → sub 1 equals [ i; 1 ] e to the power open parenthesis 1 minus i close parenthesis t equals [ i; 1 ] open parenthesis e to the power t cos t minus i e to the power t sin t close parenthesis equals [ i e to the power t cos t plus e to the power t sin t; e to the power t cos t minus i e to the power t sin t ] equals [ e to the power t sin t; e to the power t cos t ] plus i [ e to the power t cos t; minus e to the power t sin t ] .")[$arrow(x)_(1) = [ i \ 1 ] e^(( 1 − i ) t) = [ i \ 1 ] ( e^(t) cos t − i e^(t) sin t ) = [ i e^(t) cos t + e^(t) sin t \ e^(t) cos t − i e^(t) sin t ] = [ e^(t) sin t \ e^(t) cos t ] + i [ e^(t) cos t \ − e^(t) sin t ] .$] Then #math.equation(block: true, alt: "e to the power t sin t; e to the power t cos t")[$e^(t) sin t \ e^(t) cos t$] are the two real-valued linearly independent solutions we seek. #notebox("Your Turn", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ Check that these really are solutions. ] The general solution is #math.equation(block: true, alt: "e to the power t sin t; e to the power t cos t")[$e^(t) sin t \ e^(t) cos t$] This solution is real-valued for real #math.equation(block: false, alt: "c sub 1")[$c_(1)$] and #math.equation(block: false, alt: "c sub 2")[$c_(2)$]. At this point, we would solve for any initial conditions we may have to find #math.equation(block: false, alt: "c sub 1")[$c_(1)$] and #math.equation(block: false, alt: "c sub 2")[$c_(2)$]. Let us summarize the discussion as a theorem. #notebox("Note", rgb("#8a94a6"), rgb("#556666"), rgb("#f7f8fa"))[ Let #math.equation(block: false, alt: "P")[$P$] be a real-valued constant matrix. If #math.equation(block: false, alt: "P")[$P$] has a complex eigenvalue #math.equation(block: false, alt: "a plus i b")[$a + i b$] and a corresponding eigenvector #math.equation(block: false, alt: "v →")[$arrow(v)$], then #math.equation(block: false, alt: "P")[$P$] also has a complex eigenvalue #math.equation(block: false, alt: "a minus i b")[$a − i b$] with a corresponding eigenvector #math.equation(block: false, alt: "v → ¯")[$overline(arrow(v))$]. Furthermore, #math.equation(block: false, alt: "x → prime equals P x →")[$arrow(x)^(′) = P arrow(x)$] has two linearly independent real-valued solutions #math.equation(block: true, alt: "x → sub 1 equals R e v → e to the power open parenthesis a plus i b close parenthesis t , a n d x → sub 2 equals I m v → e to the power open parenthesis a plus i b close parenthesis t .")[$arrow(x)_(1) = upright(R) upright(e) " " arrow(v) e^(( a + i b ) t) , " " " " " " " " italic(a) italic(n) italic(d) " " " " " " " " arrow(x)_(2) = upright(I) upright(m) " " arrow(v) e^(( a + i b ) t) .$] ] For each pair of complex eigenvalues #math.equation(block: false, alt: "a plus i b")[$a + i b$] and #math.equation(block: false, alt: "a minus i b")[$a − i b$], we get two real-valued linearly independent solutions. We then go on to the next eigenvalue, which is either a real eigenvalue or another complex eigenvalue pair. If we have #math.equation(block: false, alt: "n")[$n$] distinct eigenvalues (real or complex), then we end up with #math.equation(block: false, alt: "n")[$n$] linearly independent solutions. If we had only two equations #math.equation(block: false, alt: "open parenthesis n equals 2 close parenthesis")[$( n = 2 )$] as in the example above, then once we found two solutions we are finished, and our general solution is #math.equation(block: true, alt: "x → equals c sub 1 x → sub 1 plus c sub 2 x → sub 2 equals c sub 1 open parenthesis Re v → e to the power open parenthesis a plus i b close parenthesis t close parenthesis plus c sub 2 open parenthesis Im v → e to the power open parenthesis a plus i b close parenthesis t close parenthesis .")[$arrow(x) = c_(1) arrow(x)_(1) + c_(2) arrow(x)_(2) = c_(1) ( "Re " arrow(v) e^(( a + i b ) t) ) + c_(2) ( "Im " arrow(v) e^(( a + i b ) t) ) .$] We can now find a real-valued general solution to any homogeneous system where the matrix has distinct eigenvalues. When we have repeated eigenvalues, matters get a bit more complicated and we will look at that situation in#link("https://math.libretexts.org/Bookshelves/Differential_Equations/Differential_Equations_for_Engineers_(Lebl)/3%3A_Systems_of_ODEs/3.7%3A_Multiple_Eigenvalues")[Section 3.7].