5 Eylül 2018 Çarşamba

Determinant

Giriş
Açıklaması şöyle
The determinants of  matrices are calculated this way:
det[abcd]=adbc
2x2 bir matriste determinant, alanı verir. Elimizde şöyle bir matris olsun.
1 n
n 1
Determinant'ı bulmak için şöyle yaparız.
1 - n ^ 2

Degenerate Matrix
Determinant'ı 0 olan matristir.
Örnek
Şöyledir.
1 0  1
0 1 -1
0 0  0
Örnek
Şöyledir.
1  1 -2
1 -2  1
-2 1  1
Belirtilen Noktanın Bir Çizginin Sağ veya Solunda Olduğunu Anlamak
Determinant alarak buluruz. Şöyle yaparız.
| x2-x1  x3-x1 |
| y2-y1  y3-y1 |
Alanın artı veya eksi çıkması, son noktanın diğer noktaların sağında veya solunda olmasına göre değişir. Eğer alan >0 ise son nokta diğerlerinin solundadır. < 0 ise sağındadır.

Örnek
Şöyle yaparız.
public bool isLeft(Point a, Point b, Point c){
  return ((b.X - a.X)*(c.Y - a.Y) - (b.Y - a.Y)*(c.X - a.X)) > 0;
}
Örnek
Şöyle yaparız
isLeft = function(ax,ay,bx,by,cx,cy){
 return ((bx - ax)*(cy - ay) - (by - ay)*(cx - ax)) > 0;
}
Örnek
Elimizde şöyle bir enum olsun.
enum class side {
  left,
  right,
  center
};
Şöyle yaparız.
int perpendicular_dot_product(point a, point b, point c) noexcept {
  const auto ab_x = b.x - a.x;
  const auto ab_y = b.y - a.y;
  const auto ac_x = c.x - a.x;
  const auto ac_y = c.y - a.y;

  return ab_x * ac_y - ab_y * ac_x;
}


side determine_side(line l, point p) noexcept {
  const auto per_dot = perpendicular_dot_product(l.from, p, l.to);

  if(per_dot < 0)
  {
    return side::right;
  }
  else if(per_dot > 0)
  {
    return side::left;
  }

  return side::center;
}

Rank 1 Nedir - Satır
Eğer bir matrisin her satırı bir vectör'ün katı ise rank 1'dir. Elimizde şu matris olsun.
 2   0  -20  10  
-3   0   30 -15
 0   0   0   0
Her satır şu vectör'un katıdır.
1 0 -10 5
Rank 1 Nedir - Sütun
Her matris bir çarpma tablosu gibi ise Rank 1'dir. Elimizde şu matris olsun.
*    1   0  -10  5
    ----------------
 2 |  2   0  -20  10  
-3 | -3   0   30 -15
 0 |  0   0   0   0




Hiç yorum yok:

Yorum Gönder