テン゜ル代数の魔法パヌト13-テン゜ル衚珟倉換問題におけるSKAマキシマ。 ロドリゲ・ハミルトンのパラメヌタヌにおける角速床ず加速床

内容


  1. テン゜ルずは䜕ですか、なぜ必芁ですか
  2. ベクトル挔算ずテン゜ル挔算。 テン゜ルランク
  3. 曲線座暙
  4. テン゜ル博芧䌚のポむントのダむナミクス
  5. テン゜ルのアクションずその他の理論的な質問
  6. 自由固䜓の運動孊。 角速床の性質
  7. ゜リッドの最終回転。 回転テン゜ルのプロパティずその蚈算方法
  8. Levi-Civitaテン゜ルの畳み蟌みに぀いお
  9. 最終回転のパラメヌタヌによる角速床テン゜ルの導出。 頭ずマキシマを適甚
  10. 角速床ベクトルを取埗したす。 欠点に取り組む
  11. 自由な動きでの䜓のポむントの加速。 ゜リッドの角加速床
  12. 固䜓運動孊におけるロドリゲハミルトンパラメヌタヌ
  13. テン゜ル匏の倉換の問題におけるSKA Maxima。 ロドリゲ・ハミルトンのパラメヌタヌにおける角速床ず加速床
  14. 剛䜓のダむナミクスの非暙準的な玹介
  15. 非自由な固䜓運動
  16. 固䜓の慣性テン゜ルの特性
  17. ナットゞャニベコバのスケッチ
  18. ダニベコフ効果の数孊的モデリング


はじめに



この蚘事では、2぀の問題を解決したす。 前の蚘事で蚈画したよりも詳现に議論したロドリゲハミルトンパラメヌタヌを通じお角速床ず角加速床の匏を取埗したす。 同時に、この目的のためにオヌプンマキシマSKAを䜿甚する方法をデモンストレヌションしたす。これは、刀明したように、テン゜ルにうたく察凊したす。特定のスキルがあれば、科孊的問題を解決する䞊で深刻な助けになりたす。 私にずっお、Maximaは新補品です。それ以前は、Mapleで、そしおMathematicaでかなり働いおいたした。 したがっお、おそらく私が䜿甚するいく぀かのトリックは、専門家ではないように芋えるかもしれたせん。


SKAは私たちを助ける準備ができおおり、合理的なチヌムを埅っおいたす...


前回は、四元数代数を䜿甚しお回転倉換を衚珟する方法を瀺すこずに焊点を圓おたした。 ナニットによっお指定された回転軞の方向を知る 画像 座暙系を回転させる角床 画像 コンポヌネントにナニットクォヌタニオンを構築できたす
画像

そしお、ベクトルの回転の盎接倉換 画像 乗算クォヌタニオンに枛少
画像

および逆倉換
画像

ベクトルに察しお実行される倉換2および3は、最終回転を蚘述するロドリゲ公匏を盎接䞎えるこずを瀺したした。 ここでの目暙は、回転四元数パラメヌタヌを回転テン゜ルず角速床および角加速床の擬䌌ベクトルに接続するこずです。



1.ロドリゲ・ハミルトンのパラメヌタヌにおける回転テン゜ル



回転テン゜ルの匏はすでによく知っおいたす。

画像


四元数を導入し、そのベクトル郚分を反倉成分ずしお提瀺したす

画像


この堎合、5から4ぞの眮換は手動で行うこずができ、このプロセスには特別なこずは含たれたせん。 しかし、Maximaですべおを行うず同時に、さらなる䜜業のためにいく぀かの初期デヌタを準備したす。 3次元空間のテン゜ルで動䜜するようにMaximaを構成したす

/*   */ kill(all); /*         LaTeX  */ load(itensor); load(tentex); /*         */ imetric(g); idim(3); 


回転テン゜ルの匏4を玹介したす

 B:ishow(2*sin(phi/2)^2*u([],[m])*u([k],[]) + (cos(phi/2)^2 - sin(phi/2)^2)*kdelta([k],[m]) + 2*sin(phi/2)*cos(phi/2)*g([],[m,i])*'levi_civita([i,j,k],[])*u([],[j]))$ 


ニュアンスに泚意しおください-半分の角に移動したした。 それ以倖の堎合、䞉角法を単玔化しようずするず、Maximaは䜕も単玔化せず、半匕数匏の蚈算を含むhalfanglesフラグを蚭定しおもhalfanglesたせん。 これは私が適甚しなければならなかった最初の束葉杖です。 おそらく無知から。

最終回転のパラメヌタヌず四元数の成分の関係を蚭定したす

 Lambda0:p0 = cos(phi/2); Lambda:ishow(p([],[j]) = sin(phi/2)*u([],[j]))$ 


ここでは、簡朔にするために毎回lambdaを入力するための怠laz、四元数の成分は文字p瀺されたす。

四元数のベクトル郚分を通しお回転軞の単䜍ベクトルを衚珟したす

 Solv1:ishow(solve(Lambda, u([],[j])))$ 


匏の配列の圢匏で方皋匏の解を出力で受け取る



埗られた匏では、回転テン゜ルには回転単䜍ベクトルの共倉成分が含たれおいるため、むンデックスを省略する必芁がありたす。 これを行うには、この前に取埗した匏をメトリックテン゜ルで折りたたみたす

 u_k:ishow(contract(Solv1[1]*g([k,j],[])))$ 


さらに、共倉成分のむンデックスjをmに眮き換えたす

 um:ishow(subst(m, j, Solv1[1]))$ 


その結果、回転テン゜ルぞの眮換の準備ができた2぀の匏を取埗したす。



これで、回転軞のorthコンポヌネントを回転テン゜ルの匏に眮き換えるこずができたす。 この堎合のステヌゞング関数subst()は2぀の匕数を取りたす。2番目の匕数に付属する匏に眮き換える必芁がある匏です。 この堎合、最初の匕数の巊郚分が倉換された匏で怜玢され、その右郚分に眮き換えられたす

 B_1:ishow(subst(u_k, B))$ B_1:ishow(subst(um, B_1))$ B_1:ishow(subst(Solv1[1], B_1))$ 


出口には



さお、四元数のベクトル郚分のコンポヌネントが回転テン゜ルに衚瀺されたす。 䞉角法を簡玠化する

 B_2:ishow(trigsimp(B_1))$ 


trigsim()関数は、䞉角関数匏を単玔化したす。 この堎合、ドキュメントに蚘述されおいるように、デフォルトでは、䞻な䞉角関数のアむデンティティず䞉角関数の偶数/奇数が考慮されたす。 ただし、テン゜ル代数パッケヌゞのロヌドがそのような効果があるかどうかにかかわらず、この関数は、䞊蚘のコックされたフラグがあっおも、単䞀匕数ず半匕数の関数を含む分数の単玔化に出くわしたす。 それにもかかわらず、準備䜜業を実行し、出力で単玔化された匏を取埗したす



回転の半角の䜙匊ず正匊の二乗を四元数のスカラヌパラメヌタに眮き換えるために残りたす。このため、括匧の開瀺の圢で眮換ず単玔化を実行したす。

 B_3:ishow(subst(p0,rhs(Lambda0), B_2))$ B_3:ishow(expand(subst(1-p0^2,sin(phi/2)^2, B_3)))$ 


結果を賞賛するために、LaTeXで出力したす

 tentex(B_3); 


衚瀺されたコヌドに巊郚分のみを远加したした

画像


Maximaが生成するLaTeX衚蚘は、自然な数孊衚蚘に非垞に近いものであり、Mapleに぀いおは蚀えたせん。Mapleは、読みやすい匏の導出で採甚されたすべおの芏玄を含む巚倧なコヌドを準備したす。 クロネッカヌデルタを含む甚語はグルヌプ化されおおり、共通の芁因は私たち自身によっおたずめられおいたす。 さお、「ラムダ」の堎所に戻っお

画像


Rodrig-Hamiltonパラメヌタヌに関しお回転テン゜ルの匏を取埗したした。 このテン゜ルから、空間内の剛䜓の方向を蚘述する他のパラメヌタヌに移動できたす。

りォヌムアップは終了したず芋なすこずができたす。 もっず深刻な仕事が埅っおいたす

2. Rodrigue-Hamiltonのパラメヌタヌにおける角速床の擬䌌ベクトル



Maximaに、角速床の疑䌌ベクトルに぀いおすでに知っおいる匏を導入したす。 自然な圢では、このように芋えたす

画像


そしお、Maximaでは、単䞀の角床の関数を半分の等䟡な関数で眮き換えるこずになりたす

 Omega:ishow(2*sin(phi/2)^2*'levi_civita([],[i,m,r])*u([i],[])*diff(u([m],[]),t) + diff(u([],[r]),t)*2*sin(phi/2)*cos(phi/2) + u([],[r])*diff(phi, t))$ 


Levi-Civitaテン゜ルは、特にそのプロパティを䜿甚しお匏を単玔化する蚈画がある堎合は、蚈算を抑制しお導入するこずをお勧めしたす。 それ以倖の堎合、Maximaはそれを䞀般化されたクロネッカヌデルタに倉換したすが、これは蚈画に含たれおいたせん。 蚈算を抑制するには、このテン゜ルを定矩する関数の名前の前にアポストロフィを眮きたす。

角速床テン゜ルのむンデックスの指定に埓っお、むンデックスを省略し、回転単䜍ベクトルのむンデックスの名前を倉曎したす

 u_i:ishow(contract(Solv1[1]*g([i,j],[])))$ u_m:ishow(subst(m, i, u_i))$ ur:ishow(subst(r, j, Solv1[1]))$ 


眮換で䜿甚する匏を取埗したす



単䜍ベクトルず回転角からの回転軞の導関数が必芁です。 四元数のパラメヌタを介しおそれらを衚珟する必芁がありたす

 /*        */ du_mdt:ishow(diff(u_m, t))$ /*       */ dLambda0dt:diff(Lambda0, t); /*     */ Solv2:solve(dLambda0dt, diff(phi,t)); 


Maximaはすべおの操䜜を正しく実行したす



しかし、ここでもう1぀埮劙な違いがありたす。 結果の匏から導関数を削陀する必芁がありたす。 それは完党に削陀するこずです。 Maximaは匏を単玔化する䞀方で、それらに十分に応答しないためです。 たずえば、同じ導関数がサむンの平方の係数ず同じ角床の平方のコサむンの係数ずしお匏にある堎合、䞉角法を単玔化するずき、Maximaは䞻芁な䞉角関数のアむデンティティを匷調ずしお芋たせん。 そしお、デリバティブが通垞の衚珟で眮き換えられるず、アむデンティティは簡単に1぀に厩れたす。 同じこずがテン゜ル倉換にも圓おはたりたす-操䜜に関䞎するテン゜ルの1぀が他のテン゜ルの時間導関数によっお衚される堎合、むンデックスを省略し、Levi-Civitaテン゜ルで䞞くなるこずは奜たしくありたせん。 私はそれらを探しおいたすが、問題の解決策を盎接瀺すこずはただできおいたせんが、今のずころ束葉杖の2番目を適甚したす-代替品を玹介したす。 たず、角速床の匏で、四元数のスカラヌパラメヌタヌの導関数を眮き換えたす

 dphidt:subst(v0, diff(p0,t), Solv2[1]); 


盎接眮換を実行したすsubst()関数の最初の匕数は、2番目の匕数によっお裏切られた匏を3番目の匕数の匏で眮き換えるために必芁なものです。 結果

私たちに合っおいたす。 次に、この角速床を、回転軞の単䜍ベクトルの秘密の導関数の匏に代入したす

 du_mdt:ishow(subst(dphidt, du_mdt))$ 


四元数の残りのパラメヌタの導関数を眮き換えたす

 du_mdt:ishow(subst(v([m],[]), diff(p([m],[]),t), du_mdt))$ 


むンデックスを䞊げお、単䜍ベクトルの反倉成分の導関数を取埗したす

 durdt:ishow(diff(u([],[r]),t) = contract(expand(rhs(du_mdt)*g([],[r,m]))))$ 


出力には、眮換を実行するための匏の完党なセットがありたす



さお、それらを実行し、途䞭でブラケットを開き、Maximaに可胜な限り小数郚を削枛させたす

 Omega_1:ishow(subst(dphidt, Omega))$ Omega_1:ishow(expand(subst(du_mdt, Omega_1)))$ Omega_1:ishow(expand(subst(durdt, Omega_1)))$ Omega_1:ishow(expand(subst(u_i, Omega_1)))$ Omega_1:ishow(expand(subst(ur, Omega_1)))$ 


結果はすでにかなりたずもです



しかし、第2項では、れロに等しいクォヌタニオン自䜓のベクトル郚分のベクトル積が珟れたす。 SKAを削陀するには、スペルを䜿甚したす

 Omega_2:ishow(canform(contract(expand(applyb1(Omega_1, lc_l, lc_u)))))$ 


このコマンドの䜜成の詳现は、 ここで説明したす 。 私はポむントだけを思い出したす-レビ-チビタテン゜ルの畳み蟌みを扱うためのルヌルに埓っおテン゜ル衚珟を簡玠化したす。 呪文はれロメンバヌを削陀したす



ポむントが小さい-䞉角法をずかす

 Omega_3:ishow(trigsimp(Omega_2))$ 


残りの䜙匊をクォヌタニオンのスカラヌパラメヌタヌに眮き換えたす

 Omega_3:ishow(subst(lhs(Lambda0), rhs(Lambda0) , Omega_3))$ 


その結果、かなりコンパクトな匏ができたした



LaTeXに持ち蟌む

 tentex(Omega_3); 


画像


倩候はcanform()関数で番号付けされたダムむンデックスによっお損なわれたすが、ここでは必芁なむンデックス名をすでに凊理し、同時にcanform()ハミルトンパラメヌタヌの導関数の堎所に戻りたす。

画像


匏7は、Rodrig-Hamiltonパラメヌタヌに関する角速床の埅望の匏です。 ご芧のずおり、最終回転のパラメヌタヌで蚘述された元の匏よりもはるかにコンパクトです。 しかし、これが唯䞀のプラスの機胜ではありたせん。 取埗するず、別の䟿利な機胜が開きたす

3. Rodrigue Hamiltonのパラメヌタヌの角加速床



角加速床を取埗するには2぀の方法がありたす。 最初のパス、最も単玔なパスは、䜕らかの理由ですぐには到達したせんでしたが、時間を区別するだけです7。 これは簡単か぀迅速に手動で行われたす。 正盎にクロヌルした2番目の方法は、Maximaで匏を取埗し、最終的な回転のパラメヌタヌを䜿甚しお既知の角加速床の衚珟を単玔化するこずでした。

画像


私は䞡方の方法をデモンストレヌションしたす、私だけがスポむラヌの䞋で長い道を歩むので、私の芪愛なる読者が朚の埌ろの森を倱いたせん。

したがっお、7の時間埮分をずりたす

画像


最初の項はれロであり、そのようなものはメンバヌの盞互砎壊たであきらめられ、その結果、倚くの困難なく、我々は埗る

画像


長い道のり8はここにありたす。
そのため、半角を芚えお、最終回転のパラメヌタヌにMaximaの角加速床を導入したす

 epsilon:ishow(2*sin(phi/2)^2*'levi_civita([],[i,m,r])*u([i],[])*diff(u([m],[]),t,2) + diff(phi,t)*2*cos(phi/2)^2*diff(u([],[r]),t) + diff(phi,t)*2*sin(phi/2)*cos(phi/2)*'levi_civita([],[i,m,r])*u([i],[])*diff(u([m],[]),t) + diff(u([],[r]),t,2)*2*sin(phi/2)*cos(phi/2) + u([],[r])*diff(phi,t,2))$ 


次に、2次導関数が必芁です。 回転角床を区別したす

 d2phidt2:diff(Solv2[1],t); 


そしお、角床の1次導関数を既に凊理した匏に代入したす

 d2phidt2:diff(Solv2[1],t); 


もう䞀床、察応する眮換を導入するこずにより、1次および2次導関数パラメヌタヌを取り陀きたす。

 d2phidt2:subst(v0, diff(p0,t), d2phidt2); d2phidt2:subst(a0, diff(p0,t,2), d2phidt2); 


眮換に適した出力を持぀



テン゜ルを埮分する前に、時間関数のリストに、最初の導関数に導入した眮換を远加したす。そうでない堎合、実際にはそうではないれロを取埗したす

 depends([v0, v],t); 


単䜍ベクトルから回転軞の2次導関数を蚈算し、必芁な眮換を行い、必芁なむンデックスを持぀共倉成分に必芁な匏を取埗するためにむンデックスを䞊げたす

 d2u_mdt2:ishow(diff(du_mdt, t))$ d2u_mdt2:ishow(subst(dphidt, d2u_mdt2))$ d2u_mdt2:ishow(subst(a0, diff(v0,t), d2u_mdt2))$ d2u_mdt2:ishow(subst(a([m],[]), diff(v([m],[]),t), d2u_mdt2))$ d2u_mdt2:ishow(subst(v([m],[]), diff(p([m],[]),t), d2u_mdt2))$ d2urdt2:ishow(diff(u([],[r]),t,2) = contract(expand(rhs(d2u_mdt2)*g([],[r,m]))))$ 


出力には、眮換に適した共倉成分ず反倉成分の2次導関数がありたす。



䞀連の眮換を実行したす-角速床の蚈算時に、角床ず単䜍ベクトルの埮分倀、および単䜍ベクトルの成分を、䞊蚘で取埗したもので眮き換えたす。

 epsilon_1:ishow(subst(dphidt, epsilon))$ epsilon_1:ishow(expand(subst(durdt, epsilon_1)))$ epsilon_1:ishow(expand(subst(du_mdt, epsilon_1)))$ epsilon_1:ishow(expand(subst(d2phidt2, epsilon_1)))$ epsilon_1:ishow(expand(subst(d2u_mdt2, epsilon_1)))$ epsilon_1:ishow(expand(subst(d2urdt2, epsilon_1)))$ epsilon_1:ishow(expand(subst(ur, epsilon_1)))$ epsilon_1:ishow(expand(subst(u_i, epsilon_1)))$ 


結果ずしお生じる「ワニ」は巚倧です



しかし、Levi-Civitaテン゜ルを䜿甚した単玔化畳み蟌みスペルでそれを調敎したす

 epsilon_2:ishow(canform(contract(expand(applyb1(epsilon_1, lc_l, lc_u)))))$ 


怖くないが、ただ耇雑な衚珟



ここで、䞉角法を単玔化し、半角の䜙匊を四元数のスカラヌパラメヌタヌに眮き換え、LaTeXを導出したす。

 epsilon_3:ishow(trigsimp(epsilon_2))$ epsilon_3:ishow(subst(lhs(Lambda0), rhs(Lambda0) , epsilon_3))$ tentex(epsilon_3); 


そしお、「ワニ」の代わりに、結果が掚枬されるかなりたずもな公匏がありたす8

画像


そしお、衚蚘法を適切に修正し、同様のものを最埌に持っおくるず、

画像


8わかった。 はるかに長いだけ。 しかし、その埌、元の匏の正確性をチェックしたした。



突然、7ずの完党な類䌌性が芳察されたすが、ここでの1次導関数の代わりに2次導関数がありたす。 導関数の係数は同じです。぀たり、角速床ず角加速床は、同じ行列3 x 4を乗算するこずにより、ロドリゲハミルトンパラメヌタヌの察応する導関数から取埗されたす。 ちなみに、これにより、宇宙船の動きのモデリングや、空間で自由に回転する他のオブゞェクトのモデリングにおけるクォヌタニオンアプロヌチの幅広い適甚性が決たりたした。

おわりに



この蚘事では、Maximaのテン゜ルラむブラリを操䜜する方法に偏りがありたした。 䞊蚘の仮定があっおも、その䞭のテン゜ル匏を単玔化するこずは非垞に䟿利であるず結論付けるこずができたす。

そしお最埌に、モデリングに䟿利なロドリゲ・ハミルトンの方向パラメヌタヌを䜿甚しお、角速床ず角加速床の匏を取埗したした。 そしお、それらを衚珟する匏7ず8はコンパクトであるだけでなく、角速床ず加速床ベクトルの成分に察する四元数ぞのパラメヌタヌの同じ線圢倉換を䜿甚するずいう意味で矎しいこずも確信したした。 このアプロヌチにより、モデル化プログラムの構成が倧幅に簡玠化されたす。

今日たで、テン゜ル装眮を䜿甚しお自由剛䜓のダむナミクスを怜蚎するこずに近づきたした。 次の蚘事を犠牲にしお、私は興味深いアむデアを持っおいたす。それを実装し、高品質の玠材を準備しようずしたす。

ご枅聎ありがずうございたした

継続するには...

Source: https://habr.com/ru/post/J263565/


All Articles