[アーカイブ!】純粋数学、物理学、化学など:トレードとは一切関係ない脳トレ問題集 - ページ 558

 
ベクトル1がベクトル2に直交し、ベクトル2がベクトル3に直交する場合、ベクトル1は3次元空間でもベクトル3に直交するとは限らず、ましてやもっと次元の高い空間では直交するとは限らない
 
alsu:
同方向ではなく、単にベクトルのすべてまたは一部に対して斜めの角度になる場合もある
しかし、それはできない!すでに処理されたものに対してはできないが、次の入力に対してはできる、しかし次の反復は同じように処理されるのだ。
 
MetaDriver:
しかし、それはできません!すでに処理されたものに対しては、できませんが、次の入力に対しては、できます。しかし、次の反復では、同じように処理されます。
一般的な場合、次の反復は前の処理されたベクトルに対する方向を保持しません - 前回の記事参照
 
alsu:
ベクトル1がベクトル2に直交し、ベクトル2がベクトル3に直交する場合、ベクトル1は3次元空間でもベクトル3に常に直交しているとは言い難いし、ましてやもっと次元の高い空間では直交しているとは言い難い

だから、あなたはmain pointを理解していないのです。 各ステップでの変換は厳密に平坦で、ベクトルを直前のベクトルと直交する位置に置き、直前のベクトルすべてと直交したままにしておくのです。 最初からそれを狙っていたんです。それが問題だった(現在は解決している)。

もう一度考えてみてください。チェックする。

 
alsu:
次の反復は一般に、前の処理ベクトルとのオロゴナリティを保持しない - 前回の投稿を参照

を保持します。

私の説明が足りなかったかもしれません。 これからフルスキームを書きますが、小さいものです。

 
MetaDriver:

つまり、main pointを理解していないのです。 各ステップでの変換は厳密に平坦で、ベクトルを前のベクトルに直交する位置に置き、前のベクトル全てに直交したままにしておくのです。 最初からそれを狙っていたんです。それが問題だった(現在は解決している)。

もう一度考えてみてください。チェックする。

チェックしました))

もちろん、この変換は厳密に平坦であり、結果は一般に、最初の任意のベクトルの選択とは無関係に正確な符号になる - しかし!この平面内だけである。与えられたベクトルを通る平面を描くのに無限にある選択肢の中から、誰が正しいものを選ぶと言ったのだろう。

以下はその一例です。3次元空間に(1,0,0)と(0,sqrt(2),sqrt(2))という二つのベクトルがあるとする。ご覧のように直交しています。まず、平面z=0に任意のx1をとり、それを使って最初のベクトルに直交するベクトル(0,1,0)を作りましたね。アルゴリズムは完成していることがわかりますが、結果は得られていません。3番目のベクトルは残りの2番目のベクトルに直交していないのです。そして、正しい答えを得るためには、最初の作図で正しい平面を選ぶようにあらかじめ気をつける必要があります。そうすると、(0,-sqrt(2),sqrt(2))、あるいは2番目の可能な解に行き着くことになるのです。

 
double[dim]  GetOrtoVector(int dim, int count, double[][dim] &Input)

  {

    bool error=false;

    double[dim]  Result = RandomInit(dim);

    for (i=0; i<count; i++)  { Result = Ortogonalize(Result, Input[i], error); }
    
    if (error) return GetOrtoVector(dim,count,Input);  else    return Result;

  }

double[dim] Ortogonalize(double[dim] a, double[dim] b, bool &err)

  {

    double SP = sp(a,b);

    if (sp==1.0) {err = true; return a;} else {return  (a-SP*b);  }

  }

スカラー積の求め方と初期ベクトル生成の方法を説明していません。 かなり勝手な言い分ですが。

あと、ベクトルの引き算とベクトルの掛け算を数字で表現していない。 シュードコードは、ちょうど良い...

 
alsu:

チェック済み))

もちろん、この変換は厳密には平面的であり、元の任意のベクトルの選択に関係なく、結果は一般に符号に対して正確である - しかし!この平面においてのみである。あるベクトルを通る平面を描くのに無限にある選択肢の中から、誰が正しいものを選んだと言ったのだろう。

以下はその一例です。3次元空間に(1,0,0)と(0,sqrt(2),sqrt(2))という二つのベクトルがあるとする。ご覧のように直交しています。まず、 平面z=0に 任意のx1をとり、それを使って最初のベクトルに直交するベクトル(0,1,0)を作りましたね。アルゴリズムは完成していることがわかりますが、結果は得られていません。3番目のベクトルは残りの2番目のベクトルに直交していないのです。そして、正しい答えを得るためには、最初の作図で正しい平面を選ぶようにあらかじめ気をつける必要があります。そうすれば、変形(0,-sqrt(2),sqrt(2))または2番目の可能な解に行き着くでしょう。

飛行機Z=0は取り込まない :))

任意のx1 = {random, random, random}とする。

それが平面Z=0に落ちる確率は?

;-))

 
MetaDriver:

Z=0は取らない :))

ランダム x1 = {ランダム、ランダム、ランダム}とする。

が平面 Z=0 に落下する確率は?

;-))

正しい」飛行機に当たる確率と全く同じ、つまりゼロです ))
 
alsu:
正しい」飛行機に当たる確率と全く同じ、つまりゼロです ))
任意のベクトルを選択することで、計算の平面を固定することができます。2つのベクトルを通る1つの平面を描くことができます。私の例では、無限にある平面のどれをとっても、無限の解が得られますが、正しい平面をとるまでは、正しい解は得られないのです。