Chuẩn hóa vector

Ta có vector x và y. Phép nhân hoặc chia làm thay đổi chiều dài của vector mà không ảnh hướng đến phương và hướng. OK, câu hỏi ở đây là làm thế nào chúng ta biết được chiều dài của một vector? Nếu biết trước các thành phần (x và y).

Hiểu được cách tính chiều dài (hay còn gọi là độ lớn) của vector là vô cùng quan trọng và hữu ích.

9150ff25c140f6abd6da845d59533880324158a9

Chiều dài hoặc độ lớn của vector v được ký hiệu là ss_15

Hình vẽ trên cho thấy mũi tên nối 2 điểm x,y tạo thành một tam giác vuông. Các cạnh bên là các thành phần với cạnh huyền chính là mũi tên. Với tam giác vuông này chúng ta có thể áp dụng công thức của nhà toán học Pythagoras mô tả mối quan hệ giữa các cạnh và cạnh huyền trong một tam giác vuông.

Trong tam giác vuông, bình phương cạnh huyền bao giờ cũng bằng tổng bình phương hai cạnh còn lại.

f400c601f9a8be82ce642b4d0fc6f4962802bbd9

Áp dụng công thức trên ta có mã hiện thực như sau:

/**
 * Compute magnitude of vector
 */
public double length() {
    return Math.sqrt(dX * dX + dY * dY);
}

Việc tính toán được độ lớn của vector mở ra nhiều khả năng, đầu tiên là chuẩn hóa vector. Trong một số trường hợp ta chỉ quan tâm đến hướng của vector đó mà bỏ qua độ lớn của nó. Với trường hợp như vậy ta thay đổi độ lớn của vector đó về 1. Những vector có tính chất như trên ta gọi chúng là vector đơn vị. 

6ade290db694921cc465883fb070d8a1dbb3447e

Ta chuẩn hóa vector bằng cách chia mỗi thành phần cho độ lớn cuả nó. Kí hiệu làss_18:

ss_17

/**
 * Normalize a vectors length....
 *
 * @return normal vector
 */
public Vector normalize() {
    Vector vn = new Vector();

    double length = Math.sqrt(this.dX * this.dX + this.dY * this.dY);
    if (length != 0) {
        vn.dX = this.dX / length;
        vn.dY = this.dY / length;
    }
    return vn;
}

Tích vô hướng hai vector

Giả sử ta có 2 vector
ss_8

ss_10

tích vô hướng của hai vector này (hay còn gọi là dot product vì được biểu diến bằng một dấu chấm) được tính bởi công thức sau:

ss_19

Bằng việc áp dụng các phương pháp hình học, ta chứng minh được mối quan hệ giữa tích vô hướng và góc giữa các vector này như sau:

ss_20

Dựa theo công thức trên, ta có thể suy ra một số đặc điểm của 2 vector khi có tích vô hướng của chúng:

  • Nếu ss_22 : 2 vector vuông góc với nhau.
  • Nếu ss_23 : góc giữa 2 vector nhỏ hơn 90 độ.
  • Nếu ss_24: góc giữa 2 vector lớn hơn 90 độ.

Giả sử ta có 2 vector
ss_8

ss_10

tích vô hướng của hai vector này (hay còn gọi là dot product vì được biểu diến bằng một dấu chấm) được tính bởi công thức sau:

ss_19

Bằng việc áp dụng các phương pháp hình học, ta chứng minh được mối quan hệ giữa tích vô hướng và góc giữa các vector này như sau:

ss_20

Dựa theo công thức trên, ta có thể suy ra một số đặc điểm của 2 vector khi có tích vô hướng của chúng:

  • Nếu ss_22 : 2 vector vuông góc với nhau.
  • Nếu ss_23 : góc giữa 2 vector nhỏ hơn 90 độ.
  • Nếu ss_24: góc giữa 2 vector lớn hơn 90 độ.
Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Google photo

Bạn đang bình luận bằng tài khoản Google Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s