0

ソース: http://datasciencelab.wordpress.com/2014/01/10/machine-learning-classics-the-perceptron/

「その中の 2 点が与えられた直線の一般式 ,は , ,を2点(x1,y2)に関して書くことができます。ベクトル を定義すると、任意の点は, ここで.プラスは線の片側に落ち、マイナスは反対側に落ちる。」(x2,y2)A + Bx + Cy = 0ABCV = (A, B, C)(x,y)V'x = 0x = (1,x,y)

仕組みがよくわかりません。また、特にこの行:

self.V = np.array([xB*yA-xA*yB, yB-yA, xA-xB])

Bxによって決定されるのはなぜyb-yaですか?

その価値のために、私は線形代数を学んでいるので、数学の概念に精通しています (それが法線であることを理解しています) が、それがどのように行われるかはわかりません。

4

1 に答える 1

0

B が yb - ya で決まるのはなぜですか? (または、この例では y2 - y1 )

このテキストでは、直線の式が次のように仮定されています。A + B*x + C*y = 0

P1(x1, y1)その線から 2 つの点があるとしましょう。P2(x2, y2)

直線方程式 の 2 点形式を使用すると、(およびy - y1 = [(y2 - y1)/(x2 - x1)] * (x - x1)に基づいて)が得られます。P1P2

同じ方程式は、次のように展開できます。[(x2 -x1)*y1 + (y1 - y2)*x1] + (y2 - y1) * x + (x1 - x2) * y = 0

を見るとA + B*x + C*y = 0、次のことがわかります。

  • A、 は[(x2 -x1)*y1 + (y1 - y2)*x1] = x2*y1 - y2*x1

  • B、の係数x(y2 - y1)

  • C、の係数y(x1 - x2)

したがって、np.array([A, B, C])ソースコードの値は次のように表示されますnp.array([xB*yA - xA*yB, yB - yA, xA - xB])

于 2014-10-12T05:54:35.470 に答える