Dot

a.b.c またはDot[a,b,c]

ベクトルや行列,テンソルの積を与える.

詳細

  • a.b は,ab が適切な次元を持ったリストであるときに,具体的な結果を与える.a の最後の指数を b の最初の指数で縮約する.
  • Dotの応用例
  • {a1,a2}.{b1,b2}ベクトルのスカラー積
    {a1,a2}.{{m11,m12},{m21,m22}}
    ベクトルと行列の積
    {{m11,m12},{m21,m22}}.{a1,a2}
    行列とベクトルの積
    {{m11,m12},{m21,m22}}.{{n11,n12},{n21,n22}}
    2個の行列の積
  • Dotを2個のテンソルおよび に適用した結果は,やはりテンソルでとなる.Dot 階のテンソルと 階のテンソルに適用すると,階のテンソルが与えられる. »
  • Dotは,SparseArrayオブジェクトおよび構造化配列オブジェクトに使うことができる.可能な場合は入力と同じタイプのオブジェクトが返される. »
  • Dotはすべての引数において線形である. » ベクトルに対して複素(ハミルトン)内積を定義はしない. »
  • 引数がリストや疎な配列ではない場合,Dotは未評価でおかれる.DotFlat属性を持つ.

例題

すべて開くすべて閉じる

  (4)

3次元ベクトルのスカラー積:

二次元ベクトルのスカラー積:

内積が0のとき,ベクトルは垂直である:

ベクトルを可視化する:

行列とベクトルの積

ベクトルと行列の積 TemplateBox[{v}, Transpose]M

行列と2つのベクトルの積 TemplateBox[{v}, Transpose]Mw

2つの行列の積:

逆の順序で掛け合せる:

矩形行列を使う:

スコープ  (28)

ベクトルのドット積  (7)

機械精度ベクトルのスカラー積:

厳密なベクトルのドット積:

記号ベクトルの内積:

任意精度ベクトルのドット積:

Dotには複素入力も使えるが,それらのいずれも共役しない:

複素(エルミート)内積の計算をする場合は,Conjugateを入力の一つに適用するとよい:

参考文献,特に数学文献の中には,第2引数を共役させるものもある:

2つの内積を使ってuのノルムを計算する:

Normを使って結果を確かめる:

疎なベクトルのドット積:

2つのQuantityArrayベクトルのスカラー積を計算する:

行列とベクトルの乗算  (5)

次元の矩形行列を定義する:

2-ベクトルと3-ベクトルを定義する:

行列は左側の2-ベクトルでしか乗算できない:

逆順で乗算すると互換性がない形状のためにエラーメッセージが出る:

同様に,行列は右側の3-ベクトルでしか乗算できない:

両側から行列を一度に乗算する:

矩形行列と互換ベクトルを定義する:

m.vと積v.mは異なるベクトルを返す:

v.m.vはスカラーである:

列行列cと行行列rvと同じ数値項目で定義する:

mcrを含む積はmvを含む積と同じ項を含むが,すべてが行列である:

さらに,積は行列の形状を尊重する順で行われなければならない:

行列と2つのベクトルを定義する:

はベクトルなので, は許される積である:

これは,事実上,行列の右側ではなく左側の の乗算である:

疎な行列と疎なベクトルの積は疎なベクトルである:

結果を行行列としてフォーマットする:

疎な行列と通常のベクトルの積は法線ベクトルである:

構造化行列とベクトルの積は,可能な場合は構造を保持する:

構造化ベクトルを持つ正規行列の積はベクトルの構造を持つことがある:

行列と行列の乗算  (11)

実数の機械数行列を乗算する:

複素行列の積:

厳密行列の積:

逆順で乗算する:

入出力行列を可視化する:

任意精度の行列を乗算する:

なので,これらの行列は逆順では乗算できない:

記号行列の積:

有限体の元の行列の積:

CenteredInterval行列の積:

mn のランダムな代表である mrepnrep を求める:

mnmrepnrep の積が含まれることを確認する:

疎な行列の積は別の疎な行列である:

結果をフォーマットする:

構造化行列の積は,可能な場合は構造を保持する:

結果をフォーマットする:

行列を3乗する:

MatrixPowerと比較する:

DotApply (@@)およびConstantArrayと組み合せて行列を10乗する:

結果を確かめる:

大きい行列を効率的に乗算する:

高階配列  (5)

Dotは任意の階数の配列に使うことができる:

結果の次元は共通する次元をたたみ込んだ入力の次元である:

積が共通の次元で行われている限り,任意の組合せを使うことができる:

等しい3つの次元を持つ3階配列を作る:

同じ次元の3つのゲクトルを作る:

は, の最後のレベルと, を最初のレベルとペアにする完全な縮約 である:

は, の最初のレベルと, を最後のレベルとペアにする別の縮約 である:

mの両方のレベルをaの2番目と3番目のレベルでそれぞれ縮約する:

2つの疎な配列のDotは,一般に,別の疎な配列である:

疎な配列と通常のリストのDotは,別の疎な配列または通常のリストかもしれない:

3階の配列をフォーマットする:

2つのSymmetrizedArrayオブジェクトの積は,一般に,別の対称化された配列である:

新たな配列の対称性は入力の対称性よりもはるかに複雑かもしれない:

アプリケーション  (16)

写像と基底  (6)

ベクトル をベクトル がまたがった線上に投影する:

とその投影を がまたがった線上で可視化する:

ベクトル をベクトルがまたがった平面上に投影する:

まず,に垂直な平面上のベクトルで置換する:

この平面への投影は への投影の和である:

この平面に垂直な成分を求める:

を平面の法線上に投影することで結果を確認する:

平面,ベクトル,その平行成分と垂直成分を可視化する:

GramSchmidt過程を適用して以下のベクトルから正規直交基底を構築する:

正規直交基底の最初のベクトル は単に正規化された倍数 である:

続くベクトルについては,前の基底ベクトルと平行な成分が正規化の前に引かれる:

Orthogonalizeを使って答を確かめる:

についての基底を定義する:

基底が正規直交であることを確認する:

この新しい基底についての一般ベクトルの成分を求める:

成分を について確認する:

についての基底を定義する:

ベクトルによって形成された行列が非零の行列式を持つことを示すことで,これが基底であることを確認する:

行列の基底変換は列が である行列の逆行列である:

標準基底で座標が であるベクトルは,について座標 を持つ:

これらの座標がベクトル を返すことを確認する:

FrenetSerretの系は,ベクトル基底とスカラー関数におけるすべての空間曲線の特性を符号化する.以下の曲線について考える:

平行投影を減算することで,最初の3つの導関数から正規直交基底を構築する:

基底が確実に右手系であるようにする:

曲線の曲がり方を定量化する曲率 とねじれ を計算する:

FrenetSerretSystemを使って答を確認する:

曲線とフレームとも呼ばれる関連付けられた移動基底を可視化する:

行列と線形演算子  (6)

行列は A TemplateBox[{A}, Transpose]=Idに直交する.回転行列が直交することを示す:

OrthogonalMatrixQを使って確認する:

行列は のユニタリ行列である.Pauli行列がユニタリ行列であることを示す:

UnitaryMatrixQで確認する:

であれば行列は正規行列である.次の行列が正規行列であることを示す:

NormalMatrixQを使って確認する:

正規行列はその他の多くのタイプの行列を特殊ケースとして含む.ユニタリ行列は正規行列である:

A=TemplateBox[{A}, ConjugateTranspose]であるエルミート(Hermite)行列(自己随伴行列とも呼ばれる)もまた,行列 が示すように,正規行列である:

しかし,行列 はユニタリ行列やエルミート行列のように名前が付いた正規行列ではない:

量子力学では,有限個の状態を持つ系は単位ベクトルで,物理量はそれに作用する行列で表される.電子のようなスピン1/2の粒子について考える.この状態は以下のようなものかもしれない:

方向の角運動量は以下の行列で与えられる:

この状態の角運動量は である:

この状態の角運動量における不確定性は である:

方向における不確定性も同じように計算される:

不確定性原理は不確定性の積の下限 を与える:

線形写像 について考える:

の行列表現 を得る:

作用対象となるベクトルを作成する:

別のメソッドを使ってこのベクトルに線形写像を適用する:

Dot を使う方が速い:

複数のベクトルへの単一の行列の適用は{v_i}.TemplateBox[{m}, Transpose]として計算できる:

行列法の方が繰返した適用よりもはるかに速い:

行列と対称性がある配列  (4)

対称実行列 は,式 によって二次形式 q:TemplateBox[{}, Reals]^n->TemplateBox[{}, Reals]を与える:

二次形式は という特性を持つ:

同様に,TemplateBox[{}, Reals]^nの変数において同次二次多項式を定義する:

多項式の範囲は,TemplateBox[{}, NonNegativeReals]TemplateBox[{}, NonPositiveReals]TemplateBox[{}, Reals]またはで,この場合はTemplateBox[{}, Reals]である:

多項式を可視化する:

正定値対称実行列または測度 によって内積を定義する:

正定値であることは関連付けられた二次形式 について正であることを意味する:

Dot自体が恒等行列に関連付けられた内積である点に注意のこと:

GramSchmidt過程を標準基底に適用して正規直交基底を得る:

この基底が内積に関して正規直交であることを確認する:

である反対称行列 はハミルトンの2-形式 を定義する:

についての制約条件を確認する:

は同じように0である:

しかし,この形式は非縮退である.つまり,ということになる:

6つのベクトルを六次元で構築する:

LeviCivitaTensorを使って完全に反対称な配列を六次元で構築する:

完全縮約 sum_( i_1... i_6) epsilon_(i_1,i_2,...,i_6)TemplateBox[{a, {i, _, 1}}, Superscript] TemplateBox[{b, {i, _, 2}}, Superscript]... TemplateBox[{f, {i, _, 6}}, Superscript]を計算する:

これは,ベクトルによって形成された行列の行列式に等しい:

の反対称性のため,逆縮約は次元 においてだけ異なる:

特性と関係  (16)

Dotの各引数は線形である:

実数項を持つベクトル について,Norm[v]に等しい:

複素数値のベクトルについては,ノルムはsqrt(v.TemplateBox[{v}, Conjugate])⩵sqrt(TemplateBox[{v}, Conjugate].v)で与えられる:

実数項を持つ2つのベクトルについて u_1.u_2=TemplateBox[{{u, _, 1}}, Norm] TemplateBox[{{u, _, 2}}, Norm]cos(theta) ,ただし,の間の角である:

ベクトルのスカラー積は回転の下で不変である:

2つの行列について, 番目と 番目の項は 番目の行と 番目の列のドット積である:

行列の乗算は非可換である.すなわち

MatrixPowerを使って繰返し行列の積を計算する:

直接の計算と比較する:

ベクトルに対するbの動作はそのベクトルにaで4回動作することに等しい:

2つのテンソル について, はテンソル である:

Dot 階と 階のテンソルに適用すると 階のテンソルが与えられる:

2つの配列に対するDotInnerの特殊ケースである:

Dotは配列の標準内積を実装する:

Timesを使って要素ごとの乗算を行う:

DotTensorProductTensorContractの組合せとして実装できる:

DotFlattenと組み合せて使ってある配列の複数のレベルを別の配列の複数のレベルで縮約する:

TensorReduceDotを含む式が簡約できる:

2つのベクトルのOuterDotを使って計算できる:

uvに対応する列行列と行行列を構築する:

外積はc.rに等しい:

行行列と列行列のDotは対応するベクトルのKroneckerProductに等しい:

考えられる問題  (2)

Dotは右側から乗算されたベクトルを実質的に列ベクトルとして扱う:

Dotは,実質的に,左側から乗算されたベクトルを行ベクトルとして扱う:

Dotについての標準的な内積は与えない:

1つの引数にConjugateを使ってエルミート内積を得る:

結果がaのノルムの平方と一致することをチェックする:

Wolfram Research (1988), Dot, Wolfram言語関数, https://reference.wolfram.com/language/ref/Dot.html (2024年に更新).

テキスト

Wolfram Research (1988), Dot, Wolfram言語関数, https://reference.wolfram.com/language/ref/Dot.html (2024年に更新).

CMS

Wolfram Language. 1988. "Dot." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/Dot.html.

APA

Wolfram Language. (1988). Dot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Dot.html

BibTeX

@misc{reference.wolfram_2024_dot, author="Wolfram Research", title="{Dot}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/Dot.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_dot, organization={Wolfram Research}, title={Dot}, year={2024}, url={https://reference.wolfram.com/language/ref/Dot.html}, note=[Accessed: 22-November-2024 ]}