Gradiente discreto?
Sto cercando di capire come ottenere il gradiente discreto di una mesh che viene utilizzata come input di qualche funzione $f$. In altre parole per ogni vertice$v$ c'è una quantità scalare $s$ associati ad esso.
Sto cercando di capire come calcolare il gradiente discreto di $f$sulla superficie. A tale scopo stavo controllando queste diapositive:
http://www.hao-li.com/cs599-ss2015/slides/Lecture04.1.pdf
Ma non sta facendo clic. La notazione saggia del pezzo che sto assumendo è solo un tentativo di formalizzare "non abbiamo idea di quali sarebbero i valori nei triangoli, quindi interpoleremo linearmente usando coordinate baricentriche".
Ma poi le diapositive raggiungono questa formula finale per il gradiente:

Capisco la parte inferiore, che sembra indicare la base del gradiente $i$ è un vettore ortogonale al bordo opposto diviso per 2 volte l'area del triangolo (presumo), ma come è stata derivata la formula in alto?
Risposte
Definisce il gradiente in termini di coordinate baricentriche. È simile alla derivazione in questa risposta , riorganizzata solo un po 'algebricamente utilizzando il fatto che le tre coordinate baricentriche si sommano a una.$$ \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} $$
Un'area è composta da 2 componenti, il gradiente normalizzato della base_i fornisce la velocità costante nella direzione di uno dei componenti che dipende solo dai vertici.
La formula evidenziata è lo stato intermedio di trasformazione della funzione che utilizza completamente i vertici.