n次元ベクトルの外積の定義はどういうものなのでしょうか?
そもそもできるのでしょうか?外積は3次元特有のものでしょうか?

例えば、n次元ベクトルの内積は、例えば
(a1,a2,.....,an)・(b1,b2,.......,bn)
=a1*b1+a2*b2+......+an*bn
と定義できると思っています。

こういう感じでn次元ベクトルの外積は定義できますか?
ご教授ください。

このQ&Aに関連する最新のQ&A

A 回答 (16件中11~16件)

なんだかsiegmund先生に呼ばれたような気がした数学屋のoodaikoです。


内積の一般化については chukanshi さんの定義の通りです。
一方「外積」と「ベクトル積」は3次元では同じものになりますが、一般次元では異なったものになります。
詳しいことは後ほど書きますので、まだ閉じないで下さい。
    • good
    • 0
この回答へのお礼

ありがとうございます。oodaikoさんのご登場を密かに期待しておりました。よろしくご指導お願い申し上げます。m(_ _)m
実は、「外積」と「ベクトル積」をちゃんと意識的に区別しないで質問してしまったので、申し訳ないです。そのへんが「わかっていない」証拠なのです。

お礼日時:2002/01/06 08:14

No.4のコメントでchukanshiさんが仰るとおり、starfloraさんの方法とsiegmund先生の方法は結局同じ事です。


例えば4次元の場合、starfloraさんの方法で
3行目を<1 0 0 0>4行目を<1 0 0 0>としたもの
3行目を<0 1 0 0>4行目を<1 0 0 0>としたもの
3行目を<0 0 1 0>4行目を<1 0 0 0>としたもの
3行目を<0 0 0 1>4行目を<1 0 0 0>としたもの
が、siegmund先生の二階テンソルの1行目の行ベクトルの成分を表しています。
同様に
3行目を<1 0 0 0>4行目を<0 1 0 0>としたもの
3行目を<0 1 0 0>4行目を<0 1 0 0>としたもの
3行目を<0 0 1 0>4行目を<0 1 0 0>としたもの
3行目を<0 0 0 1>4行目を<0 1 0 0>としたもの
がテンソルの2行目の行ベクトル、
3行目を<1 0 0 0>4行目を<0 0 1 0>としたもの
3行目を<0 1 0 0>4行目を<0 0 1 0>としたもの
3行目を<0 0 1 0>4行目を<0 0 1 0>としたもの
3行目を<0 0 0 1>4行目を<0 0 1 0>としたもの
がテンソルの3行目の行ベクトル、
3行目を<1 0 0 0>4行目を<0 0 0 1>としたもの
3行目を<0 1 0 0>4行目を<0 0 0 1>としたもの
3行目を<0 0 1 0>4行目を<0 0 0 1>としたもの
3行目を<0 0 0 1>4行目を<0 0 0 1>としたもの
がテンソルの4行目の行ベクトルです。

 同様にn次元の場合にも、(n-2)階テンソルのn^(n-2)個の要素がシステマティックに得られる(検算して確かめてはいません)。
    • good
    • 0
この回答へのお礼

ありがとうございます。starfloraさんが、幾何学的(+ベクトル空間内で演算を閉じさせる)アプローチ、siegmund先生が代数的アプローチをお取りになったということで、結果的には同じことになりそうですね。

お礼日時:2002/01/06 08:19

昔,フェルミオン系の経路積分の勉強をしたときに,


グラスマン代数(=外積代数?)や微分形式をちょこっとかじりました.
途中で挫折した上にもう記憶が定かでありません.

3次元ベクトル間の外積はよく知られているように
ベクトル(すなわち1階のテンソル)で,
A×B=(A[2]B[3]-A[3]B[2],A[3]B[1]-A[1]B[3],A[1]B[2]-A[2]B[1])
です.
A[1] はベクトル A の第1成分.
これは基本反対称テンソルεを使って
(A×B)[i]=Σε[i,p,q] A[p] B[q]
と書けます.Σはよくやるように,p,q についての和.

この方式で拡張するのだったと思います.
2次元なら,結果は0階のテンソル,すなわちスカラーで
(A×B) = A[1]B[2] - A[2]B[1]

4次元だと,結果は2階のテンソルで
(A×B)[i,j]=Σε[i,j,p,q] A[p] B[q]
で,成分表示すれば
A×B=
  ┌                               ┐
  │ 0,A[4]B[3]-A[3]B[4],A[2]B[4]-A[4]B[2],A[3]B[2]-A[2]B[3] │
  │ A[3]B[4]-A[4]B[3],0,A[4]B[1]-A[1]B[4],A[1]B[3]-A[3]B[1] │
  │ A[4]B[2]-A[2]B[4],A[1]B[4]-A[4]B[2],0,A[2]B[1]-A[1]B[2] │
  │ A[2]B[3]-A[3]B[2],A[3]B[1]-A[1]B[3],A[1]B[2]-A[2]B[1],0 │
  └                               ┘
のようですね(計算大丈夫かな,テンソル演算はよく間違うので).

以下同様で,n次元ベクトル同士の外積は n-2 階のテンソルです.

上の話でOKなら,3次元だけが特別です.
すなわち,3次元の時だけ外積演算結果がまたそのベクトル空間の要素になっています.
adept さんの引用された記述はそういう意味でしょうか.

余り自信がありません,数学のプロの方,よろしくお願いします.
    • good
    • 0
この回答へのお礼

ありがとうございます。そういえば、フェルミオンの経路積分でグラスマン代数なんていうのが、ありましたね。微分形式も、そのからみでありましたし。微分形式自体は、一般相対性理論を勉強したときに勉強した記憶があります。そういえば、
外積みたいなのを、基本反対称テンソル、なんかレビ=チビタテンソルとかいうの(ε)を使って定義していました。アインシュタインの略記とかいってサンメーション略していましたっけ。(なんか思い出話になって申し訳ない。)
そうですね、このこの式を高次元に拡張すればよいわけですね。なるほど、代数的には非常に自然な感じがします。こう考えると、なるほど3次元だけが、おなじベクトル空間内で演算が閉じていることがわかりますね。このテンソルの「行」かなにかを取り出してくると、starfloraさんのベクトルになるような気がしますが。
siegmundさんの回答もよく拝見しますが、いろいろご存知で凄いですね。

お礼日時:2002/01/06 00:58

Theory and Problems of Linear Algebra (3rd) (McGrowHill)



という教科書によれば、

There is a special operation for vectors u and v in R^3 that is not defined in R^n for n!=3.

ということで、3次元以外での一般的な定義はないそうです。
    • good
    • 0
この回答へのお礼

ありがとうございます。「a special operation」の具体的な演算式が、そのご本でどう書かれているのか、わかるとありがたいのですが。
確かに、3次元は「特殊」という気はしますが。

お礼日時:2002/01/06 00:44

 


  はたしてこれが、n次元空間の「外積」の定義になるのかどうか分かりませんが、三次元での外積を延長して考えてみることはできます。
 
  直感的なイメージでは、n次元空間のなかの独立したn-1個のヴェクトルが構成する「超菱形超立体」の超体積をスカラー量として、その大きさとし、n-1個のヴェクトルの張る空間に独立な、つまり直交するヴェクトルで、先のスカラー量の長さを持つヴェクトル・プロダクトが、n次元の外積になるのではないでしょうか。この場合、三次元のような意味の右手系とか左手系はありませんが、しかし、n-1次のヴェクトルについて、外積計算プロダクトの手順で、順序付けが行えるはずで、ここから、鏡像反転によって二つの値を取るヴェクトルの二つの方向が出てきます(つまり、n次元でも、右手系と左手系が定義できるのです)。どちらかを指定できるということです。
 
  行列式で表現すると、わたしの記憶間違いでなければ、三次元での外積は、少し変則的な表現ですが、三次の正方行列を考え、その第一行に、ヴェクトルAの成分を入れ、第二行に、ヴェクトルBの成分を入れ、第三行には、独立単位ヴェクトルi,j,kを入れて、これで行列式を計算すると、i,j成分はゼロ、そしてk成分が外積のスカラー量、つまりヴェクトルの大きさとなり、kが、そのヴェクトルの方向です。AとBは、i,jが張る空間に載る訳で、従って、A,B共に、kに当たる第三列成分はゼロのはずです。式で書くと、A(a1,a2,0),B(b1,b2,0)で、kヴェクトルの大きさは、(a1b2-a2b1)となります。ここで、A,Bという風にヴェクトルを第何列にいれるかで、一意的に、kの正負が決まってきます。i→j→kという風に右手系が定義されます。
 
  n次元の場合、n次の正方行列を考え、この行列式を考えるのです。第一行にヴェクトルA1、第二行にA2……と入れて行きます。単位ヴェクトルu(i)は、i=nの時、すべての成分が、この第n列でゼロになるように定義します。
 
  こうすると、まさに、ヴェクトルA(i)の順序で、右手系か左手系が、n次元で定義されます。また、u(n)の上の要素つまり、第n列要素が、すべてのヴェクトルでゼロであることが、まさに、それらのヴェクトルの張る空間と、単位ヴェクトルu(n)が独立であることを意味するので、この行列式は、u(n)以外の単位ヴェクトルの成分が結果的にすべてゼロになり(なぜなら、n列要素がすべてゼロなので、行列式の定義から云って、u(n)以外の単位ヴェクトルの成分はゼロになるのです。また、方向付けも、A(i)というヴェクトルの並べ方で、一意的に決まってきます。
 
  これで、n次元のヴェクトルの「外積」の定義になると思うのですが、この用語は、もっと別の数学的概念を表現するのに使われているかも知れません。
 
    • good
    • 0
この回答へのお礼

ありがとうございます。starfloraさんは、いろいろなことをご存知で凄いですね。ポイント成績いつもトップクラスですし。
starfloraさんの幾何学的なイメージは、わかりやすく、とっても気にいりました。たぶん、同じベクトル空間内で演算を閉じようとするとこうなるのでしょうね。「外積」ってやはりこういうイメージですよね。数学的には、starfloraさんのおっしゃっていることは、「純r-ベクトル」というものの特殊な場合になるようです。が、外積のイメージに近いですよね。

お礼日時:2002/01/06 00:40

参考URLの先頭に書かれている


「ここでは外積の応用を3次元空間に限ります.他の空間には外積のやさしい一般化がないのです. 」
を信用すると、
「3次元ベクトル空間以外でも定義できることはできる、が、非常にややこしい」
ようです。

参考URL:http://next1.cc.it-hiroshima.ac.jp/MULTIMEDIA/se …
    • good
    • 0
この回答へのお礼

ありがとうございます。確かに3次元での外積をそのまま拡張はできずに、複雑になることは、覚悟しています。

お礼日時:2002/01/06 00:32

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「ノルム、絶対値、長さ」の違いについて

あじぽんと申します。よろしくお願いします。

ベクトルや複素数などに出てくる「ノルムと絶対値と長さ」というのは同じことを違う言葉で表現しているのでしょうか?
手元にある書籍などには全てが同じ式で求められています。
同じ式で表現されていても意味は少しづつ違っていたりするのでしょうか?

よろしくお願いします。

Aベストアンサー

どれも同じような性質を持ちますが、違いの1つとして定義される空間が違います。

「絶対値」は、実数や複素数といった「数」に対して定義されます。
定義は、一通りしかありません。
ベクトルに対して、絶対値を求めるという言い方をする場合もあるかもしれませんが、それはベクトルの長さを表す記号に絶対値の記号を利用する場合があるからであり、参考書にも文章として「ベクトルの絶対値」という言い方はあまりされていないのではないでしょうか?



「長さ」というのは、空間にある「線」に対して定義できます。
数に対しては「長さ」という言い方はあまり聞かないと思います。
例えば、「3」の長さというような言い方は耳になじまないと思います。
一方、ベクトルの場合は、「矢印」という「線」になりますので「長さ」が定義できます。



最後の「ノルム」は、線形空間に対して定義できます。(もちろん実数、複素数やベクトルも線形空間です)
ノルムの条件を満たせばノルムになるため、複数のノルムが考えられます。
そのため、「(1,1)というベクトルに対するノルムは?」
という質問に対しては、「どのノルムを使うか?」という条件が欠けているため厳密に言うと「解答はできません」。
例としてよく扱われるノルムは「ユークリッドノルム」と言われ、通常のベクトルの長さと等しくなります。

ベクトルに対するノルムでは、「最大値ノルム」というのが他の例としてよく使われます。
これは、ベクトルの各要素の最大値で定義されます。
(例:(3,1,5)というベクトルの最大値ノルムは、3つの数字の最大値である5になります)

ノルムというと、線形空間であれば定義できるため、
f(x) = 3x^2+5x
という数式に対するノルムというのも考えられます。
(数式は、定数倍したり、足し算したりできますよね)
数式に対して「絶対値」とか「長さ」と言ってもピンと来ないですよね。

しかし、まだやられていないかもしれませんが、数式に対するノルムというのは存在します。


そうすると、なんでこんなんがあるねん。って話になると思います。

ここで、ベクトルに対してある定理があったとします。

それがさっきのような数式など他の線形空間でも成り立つんだろうか?
というのを考えるときに「ノルム」の登場です。

その定理の証明で、「ベクトル」として性質を使わずに「ノルム」の性質だけを使って証明ができれば、
それは「ベクトル」に対する証明でなくて「ノルムを持つもの」に対する証明になります。
(ちょっと難しいかな?)


このようにして、定理の応用範囲を広げるために「長さ」や「絶対値」の考え方をベクトルだけでなく「線形空間」という広い考え方に適用できるようにしたのが「ノルム」になります。

どれも同じような性質を持ちますが、違いの1つとして定義される空間が違います。

「絶対値」は、実数や複素数といった「数」に対して定義されます。
定義は、一通りしかありません。
ベクトルに対して、絶対値を求めるという言い方をする場合もあるかもしれませんが、それはベクトルの長さを表す記号に絶対値の記号を利用する場合があるからであり、参考書にも文章として「ベクトルの絶対値」という言い方はあまりされていないのではないでしょうか?



「長さ」というのは、空間にある「線」に対して...続きを読む

Qエクセルで計算すると2.43E-19などと表示される。Eとは何ですか?

よろしくお願いします。
エクセルの回帰分析をすると有意水準で2.43E-19などと表示されますが
Eとは何でしょうか?

また、回帰分析の数字の意味が良く分からないのですが、
皆さんは独学されましたか?それとも講座などをうけたのでしょうか?

回帰分析でR2(決定係数)しかみていないのですが
どうすれば回帰分析が分かるようになるのでしょうか?
本を読んだのですがいまいち難しくて分かりません。
教えてください。
よろしくお願いします。

Aベストアンサー

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるための指数表記のことですよ。
・よって、『2.43E-19』とは?
 2.43×1/(10の19乗)で、
 2.43×1/10000000000000000000となり、
 2.43×0.0000000000000000001だから、
 0.000000000000000000243という数値を意味します。

補足:
・E+数値は 10、100、1000 という大きい数を表します。
・E-数値は 0.1、0.01、0.001 という小さい数を表します。
・数学では『2.43×10』の次に、小さい数字で上に『19』と表示します。→http://ja.wikipedia.org/wiki/%E6%8C%87%E6%95%B0%E8%A1%A8%E8%A8%98
・最後に『回帰分析』とは何?下の『参考URL』をどうぞ。→『数学』カテゴリで質問してみては?

参考URL:http://ja.wikipedia.org/wiki/%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるた...続きを読む

Q4次元空間の3つのベクトルが互いに直交する条件

以前、
4次元空間の4つのベクトルが張る空間が1次元、2次元、3次元、4次元である条件
http://oshiete1.goo.ne.jp/qa3519203.html
において、いろいろ教えていただけました。

同様にすれば、4次元空間の3つのベクトルが張る空間が1次元、2次元、3次元である条件、が成分を用いて書けることになります。

ところで、いくつかのベクトルが張る空間が1次元というのは、すべてのベクトルが平行ということです。
今回、それとは逆に「すべてのベクトルが互いに直交する」という条件を考えてみたいと思います。

4次元空間にゼロベクトルでない4つのベクトルを考えます。
a↑=(a[1],a[2],a[3],a[4])
b↑=(b[1],b[2],b[3],b[4])
c↑=(c[1],c[2],c[3],c[4])
d↑=(d[1],d[2],d[3],d[4])
とします。

a↑、b↑、c↑、d↑の4つのベクトルが互いに直交する条件は、
4つのベクトルでできる立体=超立方体
なので、行列式の絶対値は、各辺の積と等しく、
|a↑ b↑ c↑ d↑|^2=|a↑|^2* |b↑|^2* |c↑|^2*| d↑|^2
とかけます。成分でも書けます。

a↑、b↑の2つのベクトルが互いに直交する条件は、
内積を用いて、
a↑・b↑=0
とかけます。成分でも書けます。

最後に、a↑、b↑、c↑の3つのベクトルが互いに直交する条件を、できるだけ簡素に書きたいとき、どういった書き方になるのでしょうか?

すべての組の内積が0というのより、なんらかの行列式を用いて書きたいのですが。

以前、
4次元空間の4つのベクトルが張る空間が1次元、2次元、3次元、4次元である条件
http://oshiete1.goo.ne.jp/qa3519203.html
において、いろいろ教えていただけました。

同様にすれば、4次元空間の3つのベクトルが張る空間が1次元、2次元、3次元である条件、が成分を用いて書けることになります。

ところで、いくつかのベクトルが張る空間が1次元というのは、すべてのベクトルが平行ということです。
今回、それとは逆に「すべてのベクトルが互いに直交する」という条件を考えてみたいと思います。
...続きを読む

Aベストアンサー

普通に、「すべての組の内積が0」
a・b = b・c = c・a = 0
だと思います。これより簡単な表示はないと思います。
どうしても、行列の形で書きたければ、
a,b,cを列ベクトルとして、
(a, b, c)^T * (a, b, c) = diag(a・a, b・b, c・c)
ですかね。diagは対角行列を表してます。

Q一本のベクトルに直交するベクトルについて

あじぽんと申します。質問があります。

3次元空間にベクトルAが一本だけあるとします。
さらにベクトルAに直交するベクトルがいくつもあるとします。

ベクトルAの座標がわかっている時に、
ベクトルAに直交するベクトルの座標を、どれか一つだけ計算にて求めることは出来るのでしょうか?

よろしくお願いします。

Aベストアンサー

こんばんは。

ちょっと待ってください。

「3次元空間にベクトルAが一本だけある」
と書かれていますが、
ベクトルというのは、向きと大きさ、言い換えれば、始点と終点の関係があるだけであって、
「空間にベクトルがある」
という言葉自体がおかしいです。

そして、
「ベクトルAの座標がわかっている時」
と書かれていますが、
ベクトルには座標というものは存在しません。
成分があるだけです。(上記で言った、向きと大きさ(始点と終点の関係)のことです。)


とはいえ、
成分が(a1、b1、c1)という3次元ベクトルがあるとしましょうか。
それに垂直なベクトルの成分を(a2、b2、c2)と置きます。
このとき、両者の内積はゼロになるわけですから、
a1,b1,c1,a2、b2、c2には、次の関係が成り立ちます。

内積 = a1・a2 + b1・b2 + c1・c2 = 0

>>>ベクトルAに直交するベクトルの座標を、どれか一つだけ計算にて求めることは出来るのでしょうか?

上の式を満たすようなベクトルを作ればよいだけです。
たとえば、b2とc2をゼロにしちゃえば、いとも簡単に1つ作れます。


以上、ご参考になりましたら。

こんばんは。

ちょっと待ってください。

「3次元空間にベクトルAが一本だけある」
と書かれていますが、
ベクトルというのは、向きと大きさ、言い換えれば、始点と終点の関係があるだけであって、
「空間にベクトルがある」
という言葉自体がおかしいです。

そして、
「ベクトルAの座標がわかっている時」
と書かれていますが、
ベクトルには座標というものは存在しません。
成分があるだけです。(上記で言った、向きと大きさ(始点と終点の関係)のことです。)


とはいえ、
成分が(...続きを読む

Qlim[n→∞](1-1/n)^n=1/e について

こんにちは

lim[n→∞](1+1/n)^n=e
が成り立つことは簡単に示せるのですが、
lim[n→∞](1-1/n)^n=1/e
となることの証明はどのようにすればいいのでしょうか?
ご存知の方がいらっしゃいましたらご回答よろしくお願いします。

Aベストアンサー

e=lim(1+t)^(1/t)   〔t→0〕
がeの定義なので、(t→+0でもt→-0でもOK)
-1/n=tとおきます。

n→∞のとき、t→-0なので、
(与式)=lim(1+t)^(-1/t)   〔t→-0〕

これを変形すると、
=lim{(1+t)^(1/t)}^-1   〔t→-0〕
=e^-1
=1/e

高校の範囲なら、この証明で大丈夫です。

Qベクトルの外積 

ベクトルの外積の2次元の計算で

r×(r2-r1)

の計算を考えているのですが
外積の定義を見ていると2次元では考えられないような気がするのですが
この計算はできるのでしょうか??

誰か詳しい方がいらっしゃればアドバイスお願いします。

Aベストアンサー

つい最近,ある2次元幾何学に関する質問に対して,2次元の外積を使って
答えるために検索していてたった今ここに漂着しました.

遅い回答なのでもう誰もここを見ていないかもしれませんが,一応コメントします.

普通,ベクトルの外積は3次元で教えられることが多いので,
3次元以外の外積はありえないと考えている人が多いと思いますが,
外積は一般のn次元で定義できます.
ただし3次元以外では,n次元ベクトル同士の外積は
N次元ベクトルではありません.

3次元外積の各成分の定義を思い出せばわかると思いますが,
一つの成分は2つの座標軸に関する成分から計算されます.
例えば外積 C=A×B の x 成分は,A と B の y および z 成分から計算されます.
(Cx = Ay * Bz - Az * By)
2つの座標軸の組合せに対して外積の1つの成分が決まるので,
n次元の外積には nC2 個の独立な成分があります.
3次元の場合は 3C2=3 なので,たまたま外積をベクトルとして表現できます.
2次元の場合は 2C2=1 なので,たまたま外積をスカラーとして表現できます.

一般のn次元では,ベクトル A=(A1, A2, …, An) と B=(B1, B2, …, Bn) の
外積 C=A×B はベクトルでもスカラーでもなく,
次のような行列 (正しくは「2階のテンソル」) になります.

Cij = Ai * Bj - Aj * Bi

ちなみに「n階のテンソル」は,ごく大雑把にいえば「n次元行列」のようなものです.
0階のテンソルがスカラー,1階のテンソルがベクトルです.

↓冒頭に書いた質問に対する答えをまとめたページです.ご参考まで.

参考URL:http://www5d.biglobe.ne.jp/~noocyte/Programming/2DGeometry.html#RotationDirection

つい最近,ある2次元幾何学に関する質問に対して,2次元の外積を使って
答えるために検索していてたった今ここに漂着しました.

遅い回答なのでもう誰もここを見ていないかもしれませんが,一応コメントします.

普通,ベクトルの外積は3次元で教えられることが多いので,
3次元以外の外積はありえないと考えている人が多いと思いますが,
外積は一般のn次元で定義できます.
ただし3次元以外では,n次元ベクトル同士の外積は
N次元ベクトルではありません.

3次元外積の各成分の定義を思...続きを読む

QLNK2019: 未解決の外部シンボルのエラーが出る

Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5 SP1
----------------------------------------------------------------
新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す)
----------------------------------------------------------------
 プログラム

 mymain.cpp
#include "myhelper.h"
#include "mymain.h"

//自キャラのデータ
Point2D g_jikipos = {40, 400};//自キャラの座標

//画像ハンドル
int g_jikiimage[11];

//色々なファイルの読み込み
int LoadFiles(){
//画像ファイル読み込み
if(LoadDivGraph("media\\player01.bmp",
11,11,1,64,64,g_jikiimage) == -1) return -1;

return 1;
}


 mymain.h
//他から呼び出させるMyMainの関数
void MyMain();
int LoadFiles();


 myhelper.h(サンプルなので打ちミスはない)
#include "DxLib.h"
#include <limits.h>
#include <math.h>

//構造体宣言
//座標またはベクトルを記録する構造体
struct Vector{
float x,y;
};
typedef Vector Point2D;
//線を記録する構造体
struct Line2D{
Point2D startpos, endpos;
float katamuki;//傾きをラジアン値で記録
Vector speed;//移動している場合は速度をセット
};
//球体を記録する構造体
struct Ball2D{
Point2D position;
float hankei;//半径
};
//四角形を記録する構造体
struct Rect2D{
Point2D lefttop;
Point2D rightbottom;
float width;
float height;
};


//ライブラリ関数
Point2D PosInView(Point2D in);
int XInView(float inx);
int YInView(float iny);
void ScrollToLeft(float jikiposx);
void ScrollToRight(float jikiposx);
void ScrollToUp(float jikiposy);
void ScrollToDown(float jikiposy);
void DrawLineInView(float x1, float y1, float x2, float y2, int Color, int Thickness);
void DrawCircleInView(float x, float y, float r, int Color, int FillFlag);
void DrawAnimation(float x, float y, double ExtRate, double Angle,int TurnFlag,
int *imgarray, int allframe, float fps);
//ベクトル関数
Vector CreateVector(Vector in, float veclen);
Vector AddVector(Vector v1, Vector v2);
Vector SubVector(Vector v1, Vector v2);
Vector AddVectorInFrameTime(Vector pos, Vector speed);
Vector AddVectorInFrameTime2(Vector pos, Vector speed, Vector accel);
Vector Normalize(Vector in);
Vector RotateVector(Vector in, float radian);
float VectorLengthSquare(Vector in);
float DotProduct(Vector v1, Vector v2);
float CrossProduct(Vector v1, Vector v2);
void SetLine2DKatamuki(Line2D *in);
void DrawLine2D(Line2D in, int Color, int Thickness);
void DrawBall2D(Ball2D in, int Color, int Fill);
//当たり判定関数
bool HitTestLineAndBall(Line2D linein, Ball2D ballin);
bool IsPointAtLineFace(Line2D linein, Point2D ptin);
bool HitTestLineAndLine(Line2D line1, Line2D line2);
bool HitTestBallAndBall(Ball2D a, Ball2D b);
bool HitTestPointAndBox(Rect2D rect, Point2D pt);
//タイマー関数
void SetSimpleTimer(int idx, int time);
int GetPassedTime(int idx);


//グローバル変数
extern float g_frametime;
extern Rect2D g_framerect;//画面領域(当たり判定)
extern Point2D g_current_field_pos;//現在の左上座標
extern Rect2D g_stagesize;//ステージサイズ

//定数宣言
const float ZEROVALUE = 1e-10f;
const float PIE = 3.1415926f;
const int SCROLL_LIMIT = 200;
----------------------------------------------------------------
 エラー内容
1>myhelper.obj : error LNK2019: 未解決の外部シンボル "void __cdecl MyMain(void)" (?MyMain@@YAXXZ) が関数 _WinMain@16 で参照されました
1>C:\Documents and Settings\Owner\My Documents\Visual Studio 2008\Projects\my\Debug\my.exe : fatal error LNK1120: 外部参照 1 が未解決です
1>my - エラー 2、警告 0
ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ
----------------------------------------------------------------
画像を貼り付けときます
(見えにくい場合→http://www.dotup.org/uploda/www.dotup.org154142.jpg.html)
初心者なのでわかりやすくお願いします

Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5 SP1
----------------------------------------------------------------
新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す)
----------------------------------------------------------------
 プログラム

 mymain.cpp
#include "myhelper.h"
#include "mymain.h"

//自...続きを読む

Aベストアンサー

ファイル構成から推測するに
mymain.cpp というファイルに
void MyMain(void) {
// ここに処理を書く
}
という関数が必要なようです。

Q積分で1/x^2 はどうなるのでしょうか?

Sは積分の前につけるものです
S dx =x
S x dx=1/2x^2
S 1/x dx=loglxl
まではわかったのですが
S 1/x^2 dx
は一体どうなるのでしょうか??

Aベストアンサー

まず、全部 積分定数Cが抜けています。また、積分の前につけるものは “インテグラル”と呼び、そう書いて変換すれば出ます ∫

積分の定義というか微分の定義というかに戻って欲しいんですが
∫f(x)dx=F(x)の時、
(d/dx)F(x)=f(x)です。

また、微分で
(d/dx)x^a=a*x^(a-1)になります …高校数学の数3で習うかと
よって、
∫x^(a-1)dx=(1/a)*x^a+C
→∫x^adx={1/(a+1)}*x^(a+1)+C
となります。

つまり、
∫1/x^2 dx=∫x^(-2)dx
={1/(-2+1)}*x^(-2+1)+C
=-x^(-1)+C
=-1/x+C

です。

QベクトルAとBに垂直なベクトルCを求めるには?

ベクトルAとBがあり、その両方に垂直なベクトルを求めたいのですが、
どうすれば良いのでしょうか?
内積を計算した結果で0になるものが直行しているというのはわかるのですが・・・

Aベストアンサー

rei00 です。先程の回答違ってますね。alfeim さんがお書きの様に A, B の外積が求めるものですね。

で,あえて内積で頑張るなら次の様になると思います。A, B を三次元ベクトル A (a1, a2, a3), B (b1, b2, b3) とし,求めるベクトルを X (x, y, z) とすると。

垂直=内積0より
 a1・x + a2・y + a3・z = 0
 b1・x + b2・y + b3・z = 0

これを解いて
 x = z・(b3・a2 - a3・b2)/(a1・b2 - b1・a2)
 y = z・(b3・a1 - a3・b1)/(a2・b1 - b2・a1)

今,求めるベクトルの大きさが決まっていませんので,x, y, z の比を使って,求めるベクトルは (a2・b3 - b2・a3, a3・b1 - b3・a1, a1・b2 - b1・a2) となります。

つまり A, B の外積になります。なお,3次元上の次元でも同様に出来ると思います(たぶん・・・)。

Qジョルダン標準形ってなんのため?

線形代数の本を読んでいると、後ろのほうにジョルダン標準形がでてきます。
書いてあることをなぞることはなんとかできるのですが、固有値の次にいきなり前触れもなく現れるので、これが
・どういう(歴史的)要請・経由で
・何のために
現れたのかがわかりません。

ジョルダン標準形の本質は何でしょうか?

Aベストアンサー

ジョルダンは線形代数の最終関門でこの証明を一度は理解していたほうがいいでしょう
証明は灯台出版から単行本が出ていて何種類か乗っています
私は単因子(あるいは行列子因子)による方法を一度は理解しましたが忘れました
でも必要があれば読み返せばすぐに思い出せるようにはなっています
定理は簡単なのですが重要です
制御理論で使います
ジョルダンの標準形は正則行列で対角化できない行列を準対角行列に分解するものです
x(t)を要素がtの関数の列ベクトルとし
Aを要素が定数の正方行列とし
v(t)を要素がtの関数の列ベクトルとし
x’(t)=A・x(t)+v(t)としたときに
正則行列PによってP^(-1)・A・Pが対角行列になるならば
x(t)を簡単に求めることができます
しかし正則行列PによってP^(-1)・A・Pが対角行列にならなくても
正則行列PによってP^(-1)・A・Pがジョルダンの標準形になれば
少し複雑になりますが簡単にx(t)を求めることができます
本質が何打という質問は何回で答えることができる人はいないのでは?

ジョルダンは線形代数の最終関門でこの証明を一度は理解していたほうがいいでしょう
証明は灯台出版から単行本が出ていて何種類か乗っています
私は単因子(あるいは行列子因子)による方法を一度は理解しましたが忘れました
でも必要があれば読み返せばすぐに思い出せるようにはなっています
定理は簡単なのですが重要です
制御理論で使います
ジョルダンの標準形は正則行列で対角化できない行列を準対角行列に分解するものです
x(t)を要素がtの関数の列ベクトルとし
Aを要素が定数の正方行列とし
...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング