パスワードを忘れた? アカウント作成
404126 journal
Linux

Quest of Mathの日記: 連立微分方程式(5) 2

日記 by Quest of Math

連立微分方程式(3),(4)から一般の場合を考える。

n次正方行列Aが対角化可能であるとする。
今、未知関数x=τ(x1,x2,...,xn)について、

dx/dt = A*x

を解く。この一連の流れを説明せよ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Quest of Math (20493) on 2004年03月08日 4時48分 (#509541) 日記
    Aのn個の固有値を

    λ1,λ2,...,λn (重複を含む)

    とすると、これに対応するn個の固有ベクトルが存在して、

    v1,v2,...,vn (すべてn次列ベクトル)

    としておく。n次正方行列P

    P = (v1 v2 ... vn)

    とする。またその逆行列をQとする。
    (Qの存在は、上のn個の固有ベクトルが一次独立であることからわかる)

    そうすると、Aを対角化した行列Jは

    J = Q*A*P

    である。

    今、与えられた微分方程式について

    dx/dt = A*x
    dx/dt = P*Q*A*P*Q*x
    Q*(dx/dt) = Q*P*Q*A*P*Q*x
    d(Q*x)/dt = (Q*A*P)*(Q*x) = J*(Q*x)

    であるので、Q*xを新たな未知関数yと置いて

    dy/dt = J*y

    を解く。JはJの(i,j)成分について、正方行列Pの定義から
    i=jであればAの固有値λiを持ち、i≠jであれば0であるので、

    dyi/dt = λi*yi (i=1,2,...,n)

    という簡単な常微分方程式になり、この解は

    yi = Ci*e^(λi*t) (i=1,...,n、Ciは積分定数)

    となる。したがって未知関数yは

    y = τ(C1*e^(λ1*t),...,Cn*e^(λn*t))

    である。このことからyは、
    i=jの(i,j)成分がe^(λi*t),i≠jであれば0であるn次正方行列Yと
    n次列ベクトルC=τ(C1,...,Cn)により、

    y = Y*C

    である。Cがt=0におけるyの値、すなわち初期値y(0)であることは、
    実際にt=0をyに代入してみれば明らかである。

    yi(0) = Ci*e^(λi*0) = Ci*e^0 = Ci

    したがって、y=Q*xであるので、y(0)=Q*x(0)である。

    よって求める微分方程式の解は

    x = P*y = P*Y*y(0) = P*Y*Q*x(0) = (P*Y*Q)*x(0)
  • by Quest of Math (20493) on 2004年03月08日 5時30分 (#509546) 日記
    捕捉しておかなければないことが一つある。
    それは、Aを正方行列Pと、それに対応する対角化した行列Jのことである。
    Pの取り方によっては、Aを対角化した行列は異なる対角行列になるので、
    元の微分方程式の解が同じであることを証明しなければならない。

    異なる正方行列P,P'と、それぞれの逆行列Q,Q'とする。
    また、P,P'に対応するAを対角化した行列をそれぞれJ,J'とする。

    J = Q*A*P より、A = P*J*Q
    J'= Q'*A*P' より、A = P'*J'*Q'

    である。したがって、P*J*Q=P'*J'*Q'であり、元の微分方程式

    dx/dt = A*x = P*J*Q*x = P'*J'*Q'*x

    と同じであるので、解も同じである
typodupeerror

計算機科学者とは、壊れていないものを修理する人々のことである

読み込み中...