Gradient rời rạc?

Aug 22 2020

Tôi đang cố gắng hiểu cách lấy gradient rời rạc của lưới đang được sử dụng làm đầu vào của một số hàm $f$. Nói cách khác cho mọi đỉnh$v$ có một số lượng vô hướng $s$ Liên kết với nó.

Tôi đang cố gắng hiểu cách tính toán gradient rời rạc của $f$trên bề mặt. Vì mục đích đó, tôi đã kiểm tra các trang trình bày này:

http://www.hao-li.com/cs599-ss2015/slides/Lecture04.1.pdf

Nhưng nó không nhấp chuột. Kí hiệu thông minh mà tôi đang giả định chỉ là một nỗ lực chính thức hóa "chúng tôi không biết giá trị của các tam giác sẽ như thế nào, vì vậy chúng tôi sẽ nội suy tuyến tính bằng cách sử dụng tọa độ Barycentric".

Nhưng sau đó các trang trình bày đạt đến công thức cuối cùng này cho gradient:

Tôi gần như hiểu được phần dưới cùng, có vẻ như nói lên cơ sở gradient ở $i$ là một vector trực giao với cạnh đối diện chia cho 2 lần diện tích tam giác (tôi giả sử), nhưng công thức đỉnh được suy ra như thế nào?

Trả lời

1 NathanReed Sep 23 2020 at 01:06

Nó xác định gradient theo tọa độ trung tâm. Nó tương tự như suy ra trong câu trả lời này , chỉ được sắp xếp lại một chút theo phương pháp đại số sử dụng thực tế là ba tọa độ trung tâm cộng lại bằng một.$$ \begin{aligned} f(\mathbf{u}) &= f_i B_i(\mathbf{u}) + f_j B_j(\mathbf{u}) + f_k B_k(\mathbf{u}) \\ &= f_i (1 - B_j(\mathbf{u}) - B_k(\mathbf{u})) + f_j B_j(\mathbf{u}) + f_k B_k(\mathbf{u}) \\ &= f_i + (f_j - f_i) B_j(\mathbf{u}) + (f_k - f_i) B_k(\mathbf{u}) \\ \nabla f(\mathbf{u}) &= (f_j - f_i) \nabla B_j(\mathbf{u}) + (f_k - f_i) \nabla B_k(\mathbf{u}) \\ \end{aligned} $$

xer-rex Aug 22 2020 at 14:42

Một khu vực bao gồm 2 thành phần, gradient chuẩn hóa của base_i cho tốc độ không đổi theo hướng của một trong các thành phần chỉ phụ thuộc vào các đỉnh.

Công thức được đánh dấu là trạng thái trung gian của việc biến đổi hàm sử dụng đầy đủ các đỉnh.