Mi sono guardato intorno, ma tutto quello che ho potuto trovare era come trovare la derivata di una matrice usando diff(d)
, dove d
è una matrice. Questo non mi dà i vettori, solo un mucchio di scalari. Non sono davvero sicuro di cosa fare con quelli.Come si calcola il gradiente di una matrice per disegnare un campo vettoriale in R?
Mi piacerebbe trovare un modo per calcolare il gradiente in pochi punti su tutta la superficie rappresentata da una matrice. Questo gradiente può essere visualizzato come un campo vettoriale. C'è un question here sulla creazione di campi vettoriali in R, ma non so come calcolare il gradiente.
Modifica: cercherò di elaborare quello che sto cercando. Diciamo che ho una matrice simile a questo:
X0 X1.5 X3.1 X4.3 X5.9 X7.3 X8.6 X9.8 X11 X12.3 X13.6 X14.9 X16.4 X17.9 X20
[1,] 0 1.4 3.0 4.5 6.0 7.3 8.6 9.7 10.9 12.2 13.4 14.9 16.4 18.1 20
[2,] 0 1.6 3.2 4.9 6.4 7.6 8.7 9.6 10.6 11.8 13.2 14.7 16.4 18.1 20
[3,] 0 1.7 3.5 5.2 7.0 8.3 9.0 9.4 9.9 11.1 12.7 14.6 16.3 18.2 20
[4,] 0 1.8 3.7 5.8 8.0 9.3 9.3 9.3 9.4 10.2 12.1 14.1 16.2 18.0 20
[5,] 0 1.7 3.9 6.0 8.8 9.3 9.3 9.4 9.6 9.9 11.8 14.0 16.2 18.1 20
[6,] 0 1.8 3.8 5.7 8.1 9.3 9.3 9.4 9.6 10.1 12.3 14.4 16.3 18.0 20
[7,] 0 1.6 3.5 5.2 7.0 8.4 9.1 9.5 10.1 11.3 13.0 14.6 16.4 18.2 20
[8,] 0 1.5 3.2 4.9 6.4 7.7 8.7 9.7 10.7 11.9 13.3 14.9 16.5 18.3 20
[9,] 0 1.5 3.1 4.6 6.0 7.4 8.6 9.7 10.9 12.1 13.5 15.1 16.6 18.3 20
[10,] 0 1.5 3.0 4.6 6.0 7.3 8.5 9.7 10.9 12.4 13.6 13.1 16.6 18.2 20
Sembra qualcosa di simile quando si traccia è:
Ora, quello che voglio è semplicemente questo: a determinati intervalli di xe y, mi piacerebbe essere in grado di trovare la pendenza della superficie. Quindi, per esempio, iniziando con x = 0, y = 0, vorrei trovare la pendenza sotto forma di un vettore che posso usare per tracciare in seguito. Quindi, trova la pendenza in x = 0, y = 1 e così via per tutti i valori di y. Quindi trova tutti i valori di y per x = 1 e così via.
Lo scopo di questo è di avere un gruppo di vettori che possono essere tracciati in un campo vettoriale like this.
Questo può essere fatto in R?
puoi essere un po 'più specifico/dare un esempio riproducibile? Vuoi calcolare i gradienti solo nei punti della griglia, o vuoi essere in grado di calcolare i gradienti in punti arbitrari? Interpolazione lineare (assume linearità a tratti)? Cosa vuoi assumere riguardo alle condizioni al contorno? –
@BenBolker Ho ampliato un po 'la mia domanda. – Hassan
Forse vuoi la funzionalità 'slope' e' aspect' dalla funzione 'terrain' nel pacchetto' raster'? La "pendenza" ti dà la grandezza e "aspetto" la direzione. – Spacedman