質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Mathematica

Mathematicaは、ウルフラム・リサーチによって開発されている数式処理システムです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

0回答

378閲覧

Mathematicaで慣性行列を求めたい

okome_i

総合スコア1

Mathematica

Mathematicaは、ウルフラム・リサーチによって開発されている数式処理システムです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/12/16 12:49

前提・実現したいこと

mathematicaを用いて6自由度マニピュレータの慣性行列を求めたい

発生している問題・エラーメッセージ

一つ目の反復の式でi=1から6まで、k=1から6まで繰り返し計算をして、2つ目の反復の式でMm[i,k]の行列の対角要素Mm[i,k][j,j]のj=1から4までを取り出して和を求めたい。しかし、T[j]とJ[j]の中にそれぞれの数値の行列が入らない。

該当のソースコード1(server側)

Mathematica

1T[1] = {{Cos[[Theta][1][t]], -Sin[[Theta][1][t]], 0, 2 0}, {Sin[[Theta][1][t]], Cos[[Theta][1][t]], 0, 0}, {0, 0, 1, 3 d1}, {0, 0, 0, 1}} 4T12 = {{Cos[[Theta][2][t]], -Sin[[Theta][2][t]], 0, 0}, {0, 0, -1, 5 0}, {Sin[[Theta][2][t]], Cos[[Theta][2][t]], 0, 0}, {0, 0, 0, 6 1}}; 7T23 = {{Cos[[Theta][3][t]], -Sin[[Theta][3][t]], 0, 8 a2}, {Sin[[Theta][3][t]], Cos[[Theta][3][t]], 0, 0}, {0, 0, 1, 9 0}, {0, 0, 0, 1}}; 10T34 = {{Cos[[Theta][4][t]], -Sin[[Theta][4][t]], 0, 11 a3}, {Sin[[Theta][4][t]], Cos[[Theta][4][t]], 0, 0}, {0, 0, 1, 12 d4}, {0, 0, 0, 1}}; [Theta] 13T45 = {{Cos[[Theta][5][t]], -Sin[[Theta][5][t]], 0, 0}, {0, 0, -1, 14 d5}, {Sin[[Theta][5][t]], Cos[[Theta][5][t]], 0, 0}, {0, 0, 0, 15 1}}; 16T56 = {{Cos[[Theta][6][t]], -Sin[[Theta][6][t]], 0, 0}, {0, 0, 1, 17 d6}, {Sin[[Theta][6][t]], Cos[[Theta][6][t]], 0, 0}, {0, 0, 0, 18 1}}; 19T[2] = T[1].T12 20T[3] = T[2].T23 21T[4] = T[3].T34 22T[5] = T[4].T45 23T[6] = T[5].T56 24J[1] = {{(-Ix1 + Iy1 + Iz1)/2, 0, 0, 0}, {0, (Ix1 - Iy1 + Iz1)/2, 0, 25 0}, {0, 0, (Ix1 + Iy1 - Iz1)/2, 0}, {0, 0, 0, 0}} 26J[2] = {{(-Ix2 + Iy2 + Iz2)/2, 0, 0, 0}, {0, (Ix2 - Iy2 + Iz2)/2, 0, 27 0}, {0, 0, (Ix2 + Iy2 - Iz2)/2, 0}, {0, 0, 0, 0}} 28J[3] = {{(-Ix3 + Iy3 + Iz3)/2, 0, 0, 0}, {0, (Ix3 - Iy3 + Iz3)/2, 0, 29 0}, {0, 0, (Ix3 + Iy3 - Iz3)/2, 0}, {0, 0, 0, 0}} 30J[4] = {{(-Ix4 + Iy4 + Iz4)/2, 0, 0, 0}, {0, (Ix4 - Iy4 + Iz4)/2, 0, 31 0}, {0, 0, (Ix4 + Iy4 - Iz4)/2, 0}, {0, 0, 0, 0}} 32J[5] = {{(-Ix5 + Iy5 + Iz5)/2, 0, 0, 0}, {0, (Ix5 - Iy5 + Iz5)/2, 0, 33 0}, {0, 0, (Ix5 + Iy5 - Iz5)/2, 0}, {0, 0, 0, 0}} 34J[6] = {{(-Ix6 + Iy6 + Iz6)/2, 0, 0, 0}, {0, (Ix6 - Iy6 + Iz6)/2, 0, 35 0}, {0, 0, (Ix6 + Iy6 - Iz6)/2, 0}, {0, 0, 0, 0}} 36 37Do[Do[Subscript[M, m][i, k] = \!( 38*UnderoverscriptBox[([Sum]), (j = Max[i, k]), (6)](( 39*SubscriptBox[([PartialD]), (([Theta][k])[t])]\ T[j] . J[j] . 40*SubscriptBox[([PartialD]), (([Theta][i])[t])]Transpose[ 41 T[j]]))), {i, 1, 6}], {k, 1, 6}] 42Do[Do[Subscript[M, m][i, k] = 43 Sum[Subscript[M, m][i, k][[j.j]], {j, 4}], {i, 1, 6}], {k, 1, 6}]

試したこと

少しずつ書き換えたができなかった。

補足情報(FW/ツールのバージョンなど)

Wolfram Mathematica 12.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問