0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「テンソルの第1、第2、第3の定義の違いを教えて下さい。」をAI先生へ。sympyで教えて下さい。???「ベクトルを食べる関数」

0
Last updated at Posted at 2026-05-25

・???「ベクトルを食べる関数」
・??? 全て未確認です。
・??? 私は、以下適当?に転写しています。申し訳ありません。

(本日の)ChatGPT先生へ

テンソルの第1、第2、第3の定義の違いを教えて下さい。

(以下抜粋) 小見出しを表示。何となくわかった部分のみ表示。

第1の定義:成分変換で定義する(物理系で多い)...
第2の定義:多重線形写像として定義する(現代数学)...
第3の定義:テンソル積の元として定義する(最も抽象的)...
3つの定義の関係...
ざっくり比較...
物理と数学の違い...
直感的には
ベクトル 矢印
テンソル 矢印を複数入力すると、長さ 面積 応力 曲率 などを返す装置
SymPy 的には
一言でいうと
第1定義:「変換則で見る」
第2定義:「多重線形写像として見る」
第3定義:「テンソル積空間の元として見る」

???

(続けて)ChatGPT先生へ

sympy で説明お願いします。

 以下、結果を省略です。私がわかっていないため。

第1の定義:成分変換で見るテンソル

 2階テンソルの変換

from sympy import Matrix, symbols

# 座標変換行列
a, b, c, d = symbols('a b c d')

A = Matrix([
    [a, b],
    [c, d]
])

# 2階テンソル
T = Matrix([
    [1, 2],
    [3, 4]
])

# テンソル変換
Tp = A * T * A.T

print("A =")
print(A)

print("\nT =")
print(T)

print("\nT' = A T A^T")
print(Tp)

第2の定義:多重線形写像としてのテンソル

 双線形写像の例

from sympy import Matrix

# 双線形写像を定める行列
A = Matrix([
    [1, 2],
    [3, 4]
])

# ベクトル
u = Matrix([1, 2])
v = Matrix([3, 4])

# 双線形写像
Tuv = (u.T * A * v)[0]

print("A =")
print(A)

print("\nT(u,v) = u^T A v")
print(Tuv)

線形性確認

from sympy import Matrix

A = Matrix([
    [1,2],
    [3,4]
])

u1 = Matrix([1,0])
u2 = Matrix([0,1])

v = Matrix([5,6])

lhs = ((u1 + u2).T * A * v)[0]

rhs = (u1.T * A * v)[0] + (u2.T * A * v)[0]

print(lhs)
print(rhs)
print(lhs == rhs)

第3の定義:テンソル積空間の元

 TensorProduct を使う

from sympy import Matrix
from sympy.physics.quantum import TensorProduct

u = Matrix([1,2])
v = Matrix([3,4])

T = TensorProduct(u, v)

print(T)

 行列形に直す 

from sympy import Matrix

u = Matrix([1,2])
v = Matrix([3,4])

T = u * v.T

print(T)

3つの違いをコードで比較
実は全部つながる
イメージでいうと
第1「座標変換しても壊れない成分」
第2「ベクトルを食べる関数」
第3「テンソルを作るための空間そのもの」
数学的には...

「ベクトルを食べる関数」とは何ですか。

...テンソルの説明でよく出る言い方です。...
...ベクトルを食べる関数...
...内積は「ベクトルを2個食べる関数」...
...例えば計量テンソル...
...応力テンソルも同じ..
「食べる」の意味...「ベクトルを食べる」と言います。
線形性が重要...
さらに抽象化すると...

??? 私には無理。

(さらに続けて)ChatGPT先生へ

「ベクトルを食べる関数」 を専門的な英語に翻訳お願いします。事例のurlを教えてください。

「ベクトルを食べる関数」は、専門的には状況によって次のように言います。

  1. 最もテンソル論に近い表現
    multilinear map(多重線形写像)
    multilinear functional(多重線形汎関数)
    英語で自然な説明
    A tensor can be viewed as a multilinear map acting on vectors and covectors.
    (テンソルは、ベクトルや共変ベクトルに作用する多重線形写像と見なせる。)
  2. 1個のベクトルを食べる場合
    linear functional(線形汎関数)
  3. ベクトルを返すなら
    vector-valued function(ベクトル値関数)
  4. テンソル論で最も自然な専門表現
    テンソル第2定義なら:multilinear map
    テンソル論 A tensor is a multilinear map.
    線形代数 A bilinear form takes two vectors as inputs and returns a scalar. (双線形形式は2つのベクトルを入力として取り、スカラーを返す。)
    ...以下省略

いつもと違うおすすめです。

Qiita内

・多数
 ありがとうございます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?