A scalar is an eigenvalue of an matrix if there is a nonzero vector such that
Any such vector is an eigenvector corresponding to . The requirement that an eigenvector be nonzero is essential: the zero vector would satisfy the equation for every scalar and would convey no information.
The reduced row echelon form gives , , and . With free parameter ,
The displayed nonzero vector therefore forms a basis for the null space:
This agrees with the rank-nullity theorem: there are four columns and matrix rank three.
An eigenvalue and eigenvector pair for a square matrix satisfies
The scalar and the coordinates of belong to the chosen field, usually or . The nonzero condition is essential: the zero vector satisfies the equation for every and therefore cannot define an eigenvalue.
The vectors are linearly independent if
They are linearly dependent if some such relation has at least one nonzero coefficient. All coefficients lie in the underlying field. Thus linear independence means that only the trivial linear combination gives zero; linear dependence means that a nontrivial one does.
Interpret “distinct eigenvalues” as pairwise distinct eigenvalues in the chosen field. Select a nonzero eigenvector for each. A single nonzero vector is linearly independent. Suppose inductively that are linearly independent. If adding made the set linearly dependent, its nontrivial relation would have a nonzero coefficient of , since otherwise it would contradict the induction hypothesis. Solving for would place it in the linear span of the first eigenvectors.
Part (c) would then force for some , contradicting pairwise distinctness. Mathematical induction therefore proves that all selected eigenvectors are linearly independent, forming a basis. If the field is , the assertion requires real eigenvalues; a real matrix can instead have nonreal eigenvalues and a eigenvector basis over the complex numbers.
For , the triangular matrix formula gives the characteristic polynomial
The three eigenvalues are distinct, so part (d) already proves the existence of an eigenvector basis. Explicit choices, ordered by eigenvalues , are
Their column matrix has determinant one, and direct multiplication gives respectively one, three and two times the indicated vector.
For , expansion along the last row gives
Again the three eigenvalues are distinct. An explicit eigenvector basis, ordered by eigenvalues , is
Its column matrix has determinant . In particular, 's diagonal entries are not its eigenvalues: it is not a triangular matrix.
Finally , so every nonzero vector is an eigenvector with eigenvalue one. Choose the standard basis . These are linearly independent even though their eigenvalues coincide. Distinct eigenvalues are sufficient for an eigenvector basis, and are not necessary.
Only the list header is present: h.next eq h, h.prev eq h, and h.index is the dimension. This represents every coordinate as zero, including the unique zero-dimensional vector when the dimension is zero. The header is never treated as a nonzero coordinate.
Use an immutable index and mutable value and links:
class Node(var value: Double, val index: Int,
           var prev: Node = null, var next: Node = null)
For the sparse linked vector representation, a header h has h.index >= 0, records that vector's dimension, and lies on a finite circular linked list. Every ordinary linked list node has an index in [0,h.index), a nonzero finite value, and a unique index; indices increase strictly from h.next to h.prev. For every reachable linked list node, including h, p.next.prev eq p and p.prev.next eq p. The abstraction function fills unspecified coordinates with zero. The header's value has no meaning. Finite real coordinates are assumed throughout; infinities and NaN are not ordinary real number coordinates for a mathematical inner product.
The runtime precondition check rules out negative dimensions:
def makeZeroVector(size: Int): Node = {
  require(size >= 0)
  val h = new Node(0.0, size)
  h.prev = h
  h.next = h
  h
}
Both links point to the fresh list header, so all reciprocal-link conditions hold and there are no ordinary entries to violate ordering or nonzero-value requirements. The abstraction function therefore yields the zero vector of dimension size. Construction uses constant time and constant space.
Append entries in increasing index order, keeping a tail reference so that repeated searches do not make construction quadratic:
def makeVector(elems: Array[Double]): Node = {
  require(elems != null)
  val h = makeZeroVector(elems.length)
  var tail = h
  var i = 0
  while (i < elems.length) {
    val v = elems(i)
    require(!java.lang.Double.isNaN(v) &&
            !java.lang.Double.isInfinite(v))
    if (v != 0.0) {
      val fresh = new Node(v, i, tail, h)
      tail.next = fresh
      h.prev = fresh
      tail = fresh
    }
    i += 1
  }
  h
}
The loop invariant is , a valid circular representation of the nonzero entries in elems[0..i), a fixed header dimension elems.length, and tail eq h.prev. The next nonzero index is greater than every stored index; appending the fresh linked list node preserves reciprocal links, including tail.next eq h. The loop variant is elems.length-i. At exit the abstraction function yields exactly the input array as a vector. There is one pass and constant work per entry: time complexity for , including emptiness, and output storage for nonzero entries. Both signs of floating-point zero are represented by absence.
Use the sorted sparse dot product merge, processing a coordinate only when it appears in both supports of a vector:
def dotProduct(vec1: Node, vec2: Node): Double = {
  require(vec1 != null && vec2 != null)
  require(vec1.index == vec2.index)
  var p = vec1.next
  var q = vec2.next
  var result = 0.0
  while ((p ne vec1) && (q ne vec2)) {
    if (p.index < q.index) p = p.next
    else if (q.index < p.index) q = q.next
    else {
      result += p.value * q.value
      p = p.next
      q = q.next
    }
  }
  result
}
Both structures must satisfy the representation invariant; equal dimension is checked explicitly. The loop invariant says that result contains exactly the products for all matching indices already passed, and that every skipped unequal index has zero in the other vector. The latter follows from sortedness: if p.index < q.index, that index cannot appear at q or later, and all earlier entries of the other vector have already been settled. Equality contributes its product exactly once. The total number of remaining ordinary entries is a loop variant; every iteration advances at least one cursor. Once either cursor reaches its header, all remaining entries pair with zeros. Thus the exact-arithmetic result is . With stored entries, time complexity is and auxiliary space is constant. Floating-point products and additions may round or overflow even when input coordinates are finite; no exact real-arithmetic accuracy claim is made for Double.
Suppose a vector lies outside the span of . Then is linearly independent: in an equation , a nonzero would express in that span, and with the independence of forces every .
This would give linearly independent vectors in a space with an -vector basis, contrary to the supplied claim. Therefore spans . Independence plus spanning makes a basis.
For the equal-cardinality basis criterion, because spans , repeatedly remove a vector whenever it is a linear combination of the others. Such a removal does not change the span. The finite process ends with a linearly independent spanning subset , hence a basis of .
If the original were linearly dependent, at least one removal would occur and . But a basis of an -dimensional vector space has vectors. Equivalently, apply the allowed claim to the basis and any fixed -vector basis of : the latter would wrongly be linearly dependent. Thus no removal was possible. The original spanning set is linearly independent and therefore a basis.
Associativity of matrix multiplication identifies . Thus each matrix has the required action and .
Consequently for every . Taking successively as the standard basis vectors shows that every column of this difference is zero. Hence . Equality on one selected vector would not suffice; here it holds on all vectors.
For a sum of mutually orthogonal projectors, orthonormality gives for and one for . Therefore equals zero for different indices and for equal indices. Expanding the finite sum yields
Thus every stated partial sum is a projector. Its image of a linear map is the span of the first orthonormal set of vectors; arbitrary sums of idempotent matrices would not have this conclusion.
Rotate the specified line onto the horizontal axis, stretch horizontally by two while leaving the orthogonal component unchanged, then rotate back. With and counterclockwise rotation matrix , the requested product is
The rightmost rotation acts first. In particular, and . For the unit direction , the same transformation is . It sends to and fixes every orthogonal vector, verifying that the product is a directional stretch rather than a shear mapping or scaling in every direction. The constructed second panel in the geometric figure in Question 5 illustrates this separation.
Subtract the first vertex from the other two, giving side vectors and . Their determinant is , the signed area of the corresponding parallelogram. The triangle occupies half that area, hence its area is . Taking the absolute value would remove any sign change caused by reversing the vertex order. This is the determinant formula for triangle area.
The independent-column representation gives . Thus a vector lies in the kernel of a linear map represented by this matrix precisely when and . Writing the two free coordinates separately gives
The two displayed vectors are linearly independent, so they form a basis of the kernel. Its dimension two also agrees with the rank-nullity theorem, .
Let and . The remaining columns are and , so these two vectors span the column space. They are linearly independent: the determinant of their first two coordinates is . Therefore is a basis of the range, and the matrix rank is two.
Equivalently the range is the plane : both displayed basis vectors satisfy this equation, and their two-dimensional span fills that plane.