ベクトル解析/内積と正射影
をテンプレートにして作成
Unity学習帳2冊目
ベクトル解析/内積と正射影 をテンプレートにして作成
[
トップ
] [
差分
|
バックアップ
|
リロード
] [
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
[ ]
開始行:
TITLE:内積
#jsmath
#contents
**内積
二つのベクトルの内積計算は\(\overrightarrow { A } \cdot \...
\(\overrightarrow { A } =\left( \begin{matrix} x_{ A } \\...
\(\overrightarrow { A } \cdot \overrightarrow { B } =x_{ ...
計算結果の値はベクトルにならずにスカラー(量:大きさ)にな...
\(\mathbf { A } \cdot \mathbf { B } =x_{ A }\times x_{ B ...
#code(csharp){{
Vector3 a, b, dot;
a = new Vector3 (1, 2, 3);
b = new Vector3 (4, 5, 6);
dot = Vector3.Dot (a, b); //unity標準の内積計算関数
}}
このベクトルの内積は[[高校数学/余弦定理]]と密接な関係があ...
この事を利用してベクトルの正射影などが可能となる。これは...
\( \mathbf{A} \cdot \mathbf{B} =\left| \mathbf{A} \right...
この式の性質を利用する事により、ベクトル\(\mathbf { A }\)...
-&font(Red){\(\mathbf { A } \cdot \mathbf { B }\)が正の場...
-&font(Red){\(\mathbf { A } \cdot \mathbf { B }\) が0の場...
-&font(Red){\(\mathbf { A } \cdot \mathbf { B }\)が負の場...
これは式の右辺に \(\cos { \theta } \)がある事に起因する...
**内積の証明
#jsmath
内積 \(\mathbf { A } \cdot \mathbf { B }\) の計算結果は ...
(ベクトルとスカラーが式内で混じるので混乱しないようにする...
三角形を構成する3つのベクトル\(\mathbf{abc}\)を描く
&ref(dot1.png);
このベクトル\(\mathbf{c}\)は \(\mathbf{c=b-a}\) により表...
この\(\mathbf{c}\)を三平方の定理によりベクトルのスカラー...
\(\left| \mathbf{c} \right| =\sqrt { { (\mathbf{b-a}) }^{...
\(\rightarrow \left| \mathbf{c} \right| =\sqrt { \mathbf...
\( \rightarrow { \left| \mathbf{c} \right| }^{ 2 }=\mat...
となる。ここでベクトルの大きさの二乗は単ベクトルの内積計...
\(\left| \mathbf{ r } \right| =\sqrt { { x }_{ r }^{ 2 }+...
①の単ベクトルの内積計算をベクトルの大きさに変換すると
\({ \left| { \mathbf{c} } \right| }^{ 2 }={ { \left| \ma...
どこがスカラーになっていて、どこからベクトルかしっかり認...
&font(Red){\(c^{ 2 }={ a }^{ 2 }+b^{ 2 }-2\)};&font(Blue)...
辺cの大きさを求める余弦定理の式を②として③を代入する
\(c^{ 2 }=a^{ 2 }+b^{ 2 }-2ab\cos { C }\) …②
\(c^{ 2 }={ a }^{ 2 }+b^{ 2 }-2\mathbf{a\cdot b}\) …③
\(a^{ 2 }+b^{ 2 }-2ab\cos { C } ={ a }^{ 2 }+b^{ 2 }-2\ma...
余弦定理の\(ab\)はスカラーなのでベクトルで考えると\(\left...
\(\mathbf{a\cdot b}=\left| \mathbf{a} \right| \left| \mat...
#hr
上記のやりかた以外に下記のやり方もある
\(\mathbf{a}=\left( \begin{matrix} { x }_{ a } \\ y_{ a }...
#hr
<補足>
\({ \mathbf{A} }\cdot { \mathbf{B} }=\left| { \mathbf{A} ...
#code(csharp){{
using UnityEngine;
using System.Collections;
public class VectorDot1 : MonoBehaviour
{
Vector3 vec1, vec2;
float angle;
void Start ()
{
vec1 = new Vector3 (3, 0, 0);
vec2 = new Vector3 (5, 0, 0);
vec1 = Quaternion.AngleAxis (30, Vector3.forward) * v...
angle = Vector3.Dot (vec1, vec2) / (vec1.magnitude * ...
print ("a・b/(|a||b|) = cosθ = " + angle);
}
}
}}
出力: a・b/(|a||b|) = cosθ = 0.8660254
コードではvec1をvec2に対して+30°傾けている。計算結果は0.8...
つまり斜辺の長さ1。隣辺の長さcosθの計算が出来た事を意味...
証明どおりに内積の値の中にcosθが内包されている事が確認出...
**正射影
\(\mathbf{a}\)に\(\mathbf{b}\)を正射影したベクトル\(\math...
&ref(proj2.png);
この場合の射影ベクトルを求める式は以下になる
&font(Red){\(\mathbf{ p }=\frac { \mathbf{a}\cdot \mathbf...
この正射影の計算はルート(平方根)の計算が混じっていない...
#code(csharp){{
using UnityEngine;
using System.Collections;
public class projection1 : MonoBehaviour
{
Vector3 a, b, proj, proj2;
void Start ()
{
a = new Vector3 (10, 4);
b = new Vector3 (3, 7);
proj = Vector3.Project (b, a);
proj2 = (Vector3.Dot (a, b) / Vector3.Dot (a, a)) * a;
print ("正射影unity標準機能=" + proj + " 正射影自分...
}
}
}}
**正射影の証明
#jsmath
まず、正射影の式を作る
&ref(proj1.png);
\(\mathbf{a}\)に\(\mathbf{b}\)を正射影したベクトル\(\math...
このベクトルは投影されるベクトル\(\mathbf{a}\)と直交関係...
\(\left(\mathbf{ p-b} \right) \cdot \mathbf{a} =0\) ・...
と表せる。&font(Red){(★:直交の関係を持つふたつのベクト...
また、ベクトル\(\mathbf{p}\)はベクトル\(\mathbf{a}\)と方...
\(\mathbf{p}=x\mathbf{a}\) ・・・②
となる。この②を①に代入すると
\(\left( x\mathbf{a-b} \right) \cdot \mathbf{a}=0\) とな...
&font(Red){\(\mathbf{p}=\frac { \mathbf{a}\cdot \mathbf{b...
#hr
この式が何故正射影になるのかを調べてみる
\(\mathbf{p}=\frac { \mathbf{a}\cdot \mathbf{b} }{ \mathb...
まず、内積は\(\mathbf{a\cdot b}=\left| \mathbf{a} \right|...
\(\displaystyle\mathbf{p}=\frac { \left| \mathbf{a} \righ...
\(\displaystyle\rightarrow \quad \mathbf{p}=\left| \mathb...
\(\displaystyle\rightarrow \quad \mathbf{p}=\left| \mathb...
\(\displaystyle\rightarrow \quad \mathbf{p}=\left| \mathb...
\(\displaystyle\frac { \mathbf{a} }{ \left| \mathbf{a} \r...
&font(Blue){\(\displaystyle\rightarrow \quad \mathbf{p}=\...
この最後の状態まで変形させると式の意味がわかりやすくなる...
#navi
終了行:
TITLE:内積
#jsmath
#contents
**内積
二つのベクトルの内積計算は\(\overrightarrow { A } \cdot \...
\(\overrightarrow { A } =\left( \begin{matrix} x_{ A } \\...
\(\overrightarrow { A } \cdot \overrightarrow { B } =x_{ ...
計算結果の値はベクトルにならずにスカラー(量:大きさ)にな...
\(\mathbf { A } \cdot \mathbf { B } =x_{ A }\times x_{ B ...
#code(csharp){{
Vector3 a, b, dot;
a = new Vector3 (1, 2, 3);
b = new Vector3 (4, 5, 6);
dot = Vector3.Dot (a, b); //unity標準の内積計算関数
}}
このベクトルの内積は[[高校数学/余弦定理]]と密接な関係があ...
この事を利用してベクトルの正射影などが可能となる。これは...
\( \mathbf{A} \cdot \mathbf{B} =\left| \mathbf{A} \right...
この式の性質を利用する事により、ベクトル\(\mathbf { A }\)...
-&font(Red){\(\mathbf { A } \cdot \mathbf { B }\)が正の場...
-&font(Red){\(\mathbf { A } \cdot \mathbf { B }\) が0の場...
-&font(Red){\(\mathbf { A } \cdot \mathbf { B }\)が負の場...
これは式の右辺に \(\cos { \theta } \)がある事に起因する...
**内積の証明
#jsmath
内積 \(\mathbf { A } \cdot \mathbf { B }\) の計算結果は ...
(ベクトルとスカラーが式内で混じるので混乱しないようにする...
三角形を構成する3つのベクトル\(\mathbf{abc}\)を描く
&ref(dot1.png);
このベクトル\(\mathbf{c}\)は \(\mathbf{c=b-a}\) により表...
この\(\mathbf{c}\)を三平方の定理によりベクトルのスカラー...
\(\left| \mathbf{c} \right| =\sqrt { { (\mathbf{b-a}) }^{...
\(\rightarrow \left| \mathbf{c} \right| =\sqrt { \mathbf...
\( \rightarrow { \left| \mathbf{c} \right| }^{ 2 }=\mat...
となる。ここでベクトルの大きさの二乗は単ベクトルの内積計...
\(\left| \mathbf{ r } \right| =\sqrt { { x }_{ r }^{ 2 }+...
①の単ベクトルの内積計算をベクトルの大きさに変換すると
\({ \left| { \mathbf{c} } \right| }^{ 2 }={ { \left| \ma...
どこがスカラーになっていて、どこからベクトルかしっかり認...
&font(Red){\(c^{ 2 }={ a }^{ 2 }+b^{ 2 }-2\)};&font(Blue)...
辺cの大きさを求める余弦定理の式を②として③を代入する
\(c^{ 2 }=a^{ 2 }+b^{ 2 }-2ab\cos { C }\) …②
\(c^{ 2 }={ a }^{ 2 }+b^{ 2 }-2\mathbf{a\cdot b}\) …③
\(a^{ 2 }+b^{ 2 }-2ab\cos { C } ={ a }^{ 2 }+b^{ 2 }-2\ma...
余弦定理の\(ab\)はスカラーなのでベクトルで考えると\(\left...
\(\mathbf{a\cdot b}=\left| \mathbf{a} \right| \left| \mat...
#hr
上記のやりかた以外に下記のやり方もある
\(\mathbf{a}=\left( \begin{matrix} { x }_{ a } \\ y_{ a }...
#hr
<補足>
\({ \mathbf{A} }\cdot { \mathbf{B} }=\left| { \mathbf{A} ...
#code(csharp){{
using UnityEngine;
using System.Collections;
public class VectorDot1 : MonoBehaviour
{
Vector3 vec1, vec2;
float angle;
void Start ()
{
vec1 = new Vector3 (3, 0, 0);
vec2 = new Vector3 (5, 0, 0);
vec1 = Quaternion.AngleAxis (30, Vector3.forward) * v...
angle = Vector3.Dot (vec1, vec2) / (vec1.magnitude * ...
print ("a・b/(|a||b|) = cosθ = " + angle);
}
}
}}
出力: a・b/(|a||b|) = cosθ = 0.8660254
コードではvec1をvec2に対して+30°傾けている。計算結果は0.8...
つまり斜辺の長さ1。隣辺の長さcosθの計算が出来た事を意味...
証明どおりに内積の値の中にcosθが内包されている事が確認出...
**正射影
\(\mathbf{a}\)に\(\mathbf{b}\)を正射影したベクトル\(\math...
&ref(proj2.png);
この場合の射影ベクトルを求める式は以下になる
&font(Red){\(\mathbf{ p }=\frac { \mathbf{a}\cdot \mathbf...
この正射影の計算はルート(平方根)の計算が混じっていない...
#code(csharp){{
using UnityEngine;
using System.Collections;
public class projection1 : MonoBehaviour
{
Vector3 a, b, proj, proj2;
void Start ()
{
a = new Vector3 (10, 4);
b = new Vector3 (3, 7);
proj = Vector3.Project (b, a);
proj2 = (Vector3.Dot (a, b) / Vector3.Dot (a, a)) * a;
print ("正射影unity標準機能=" + proj + " 正射影自分...
}
}
}}
**正射影の証明
#jsmath
まず、正射影の式を作る
&ref(proj1.png);
\(\mathbf{a}\)に\(\mathbf{b}\)を正射影したベクトル\(\math...
このベクトルは投影されるベクトル\(\mathbf{a}\)と直交関係...
\(\left(\mathbf{ p-b} \right) \cdot \mathbf{a} =0\) ・...
と表せる。&font(Red){(★:直交の関係を持つふたつのベクト...
また、ベクトル\(\mathbf{p}\)はベクトル\(\mathbf{a}\)と方...
\(\mathbf{p}=x\mathbf{a}\) ・・・②
となる。この②を①に代入すると
\(\left( x\mathbf{a-b} \right) \cdot \mathbf{a}=0\) とな...
&font(Red){\(\mathbf{p}=\frac { \mathbf{a}\cdot \mathbf{b...
#hr
この式が何故正射影になるのかを調べてみる
\(\mathbf{p}=\frac { \mathbf{a}\cdot \mathbf{b} }{ \mathb...
まず、内積は\(\mathbf{a\cdot b}=\left| \mathbf{a} \right|...
\(\displaystyle\mathbf{p}=\frac { \left| \mathbf{a} \righ...
\(\displaystyle\rightarrow \quad \mathbf{p}=\left| \mathb...
\(\displaystyle\rightarrow \quad \mathbf{p}=\left| \mathb...
\(\displaystyle\rightarrow \quad \mathbf{p}=\left| \mathb...
\(\displaystyle\frac { \mathbf{a} }{ \left| \mathbf{a} \r...
&font(Blue){\(\displaystyle\rightarrow \quad \mathbf{p}=\...
この最後の状態まで変形させると式の意味がわかりやすくなる...
#navi
ページ名: