Gradiente, vettore riga o colonna?
Buonasera ragazzi,
Premetto che si tratta di una pignoleria, ma è da un po' che ci penso ed è meglio togliersi il dubbio. Ammetto di essere andato un po' per le lunghe cercando di esporre le cose chiaramente per cercare di capirmi. Volendo, potete saltare subito alla domanda evidenziata in blu
Nel caso \( \mathbf{f}: \mathbb{R}^n \supseteq \Omega \to \mathbb{R}^m \) chiamiamo derivata di \(f\) in \(\mathbf{x} \in \Omega\), e la indichiamo con $\mathbf{f}'(\mathbf{x})$, l'applicazione lineare rappresentata dalla matrice (\(m \times n\)) Jacobiana:
\[\mathbf{f}'(\mathbf{x}) = \mathbf{J}_{\mathbf{f}}(\mathbf{x}) = \left( \begin{array}{ccc}
D_{x_1}f_1(\mathbf{x}) & D_{x_2}f_1(\mathbf{x}) & ...& ... & D_{x_n}f_1(\mathbf{x}) \\
D_{x_1}f_2(\mathbf{x}) & ... & ... & ... & D_{x_n}f_2(\mathbf{x}) \\
... &... & ... & ... & ... \\
... &... & ... & ... & ... \\
D_{x_1}f_m(\mathbf{x}) & ... & ... & ... & D_{x_n}f_m(\mathbf{x}) \end{array} \right) \]
Nel caso particolare in cui la funzione sia da \( \mathbb{R}^n\) a \(\mathbb{R} \) la derivata di \(f\) sarà rappresentata da un solo vettore riga (\(1 \times n\)) detto gradiente:
\[\mathbf{f}'(\mathbf{x}) = \left( \begin{array}{ccc}
D_{x_1}f(\mathbf{x}) & D_{x_2}f(\mathbf{x}) & ...& ... & D_{x_n}f(\mathbf{x}) \end{array} \right) \]
Nel caso invece che la funzione sia da \( \mathbb{R}\) a \(\mathbb{R}^m \) la derivata di \(f\) sarà un vettore colonna (\(m \times 1\)):
\[\mathbf{f}'(\mathbf{x}) = \mathbf{f}'(x) = \left( \begin{array}{ccc}
f_1'(x)\\
f_2'(x)\\
... \\
... \\
f_m'(x)\end{array} \right) \]
Detto ciò, si può concludere che il gradiente è un vettore riga e che invece la derivata di una funzione vettoriale di variabile reale è un vettore colonna.
Di conseguenza il differenziale nei tre sopra citati casi sarà (ponendo \(\mathbf{h} = d\mathbf{x}\)):
[list=1]
[*:3km61qc6]\( d\mathbf{f}(\mathbf{x}) = J_{\mathbf{f}}(\mathbf{x})d\mathbf{x}\) un vettore[/*:m:3km61qc6]
[*:3km61qc6]\( df(\mathbf{x}) = \nabla f(\mathbf{x})d\mathbf{x}\) uno scalare[/*:m:3km61qc6]
[*:3km61qc6]\( d\mathbf{f}(x) = \mathbf{f}'(x)dx\) un vettore[/*:m:3km61qc6][/list:o:3km61qc6]
Dove si è utilizzato tacitamente il canonico prodotto righe per colonne.
Fino a qui, sperando di non aver commesso errori, tutto bene.
[size=150]Domanda[/size]
Nel mio testo trovo scritto, in riferimento ad una funzione da \( \mathbb{R}^n\) a \(\mathbb{R} \), che il differenziale è uguale a:
\[ df(\mathbf{x}) =\langle \nabla f(\mathbf{x}),d\mathbf{x} \rangle\]
Ma il gradiente è un vettore riga! Non dovremmo invece scrivere così: \( df(\mathbf{x}) =\langle \nabla f(\mathbf{x})^T,d\mathbf{x} \rangle\) ?
Se ciò è corretto, quanto è sbagliato scrivere nel primo modo dimenticandosi di trasporre?
Scusate per la prolissità ma come già detto scrivere pubblicamente mi aiuta ad organizzare i concetti e magari a far emergere qualche errore.
Grazie in anticipo
Marco
Premetto che si tratta di una pignoleria, ma è da un po' che ci penso ed è meglio togliersi il dubbio. Ammetto di essere andato un po' per le lunghe cercando di esporre le cose chiaramente per cercare di capirmi. Volendo, potete saltare subito alla domanda evidenziata in blu

Nel caso \( \mathbf{f}: \mathbb{R}^n \supseteq \Omega \to \mathbb{R}^m \) chiamiamo derivata di \(f\) in \(\mathbf{x} \in \Omega\), e la indichiamo con $\mathbf{f}'(\mathbf{x})$, l'applicazione lineare rappresentata dalla matrice (\(m \times n\)) Jacobiana:
\[\mathbf{f}'(\mathbf{x}) = \mathbf{J}_{\mathbf{f}}(\mathbf{x}) = \left( \begin{array}{ccc}
D_{x_1}f_1(\mathbf{x}) & D_{x_2}f_1(\mathbf{x}) & ...& ... & D_{x_n}f_1(\mathbf{x}) \\
D_{x_1}f_2(\mathbf{x}) & ... & ... & ... & D_{x_n}f_2(\mathbf{x}) \\
... &... & ... & ... & ... \\
... &... & ... & ... & ... \\
D_{x_1}f_m(\mathbf{x}) & ... & ... & ... & D_{x_n}f_m(\mathbf{x}) \end{array} \right) \]
Nel caso particolare in cui la funzione sia da \( \mathbb{R}^n\) a \(\mathbb{R} \) la derivata di \(f\) sarà rappresentata da un solo vettore riga (\(1 \times n\)) detto gradiente:
\[\mathbf{f}'(\mathbf{x}) = \left( \begin{array}{ccc}
D_{x_1}f(\mathbf{x}) & D_{x_2}f(\mathbf{x}) & ...& ... & D_{x_n}f(\mathbf{x}) \end{array} \right) \]
Nel caso invece che la funzione sia da \( \mathbb{R}\) a \(\mathbb{R}^m \) la derivata di \(f\) sarà un vettore colonna (\(m \times 1\)):
\[\mathbf{f}'(\mathbf{x}) = \mathbf{f}'(x) = \left( \begin{array}{ccc}
f_1'(x)\\
f_2'(x)\\
... \\
... \\
f_m'(x)\end{array} \right) \]
Detto ciò, si può concludere che il gradiente è un vettore riga e che invece la derivata di una funzione vettoriale di variabile reale è un vettore colonna.
Di conseguenza il differenziale nei tre sopra citati casi sarà (ponendo \(\mathbf{h} = d\mathbf{x}\)):
[list=1]
[*:3km61qc6]\( d\mathbf{f}(\mathbf{x}) = J_{\mathbf{f}}(\mathbf{x})d\mathbf{x}\) un vettore[/*:m:3km61qc6]
[*:3km61qc6]\( df(\mathbf{x}) = \nabla f(\mathbf{x})d\mathbf{x}\) uno scalare[/*:m:3km61qc6]
[*:3km61qc6]\( d\mathbf{f}(x) = \mathbf{f}'(x)dx\) un vettore[/*:m:3km61qc6][/list:o:3km61qc6]
Dove si è utilizzato tacitamente il canonico prodotto righe per colonne.
Fino a qui, sperando di non aver commesso errori, tutto bene.
[size=150]Domanda[/size]
Nel mio testo trovo scritto, in riferimento ad una funzione da \( \mathbb{R}^n\) a \(\mathbb{R} \), che il differenziale è uguale a:
\[ df(\mathbf{x}) =\langle \nabla f(\mathbf{x}),d\mathbf{x} \rangle\]
Ma il gradiente è un vettore riga! Non dovremmo invece scrivere così: \( df(\mathbf{x}) =\langle \nabla f(\mathbf{x})^T,d\mathbf{x} \rangle\) ?
Se ciò è corretto, quanto è sbagliato scrivere nel primo modo dimenticandosi di trasporre?
Scusate per la prolissità ma come già detto scrivere pubblicamente mi aiuta ad organizzare i concetti e magari a far emergere qualche errore.
Grazie in anticipo

Marco
Risposte
Una matrice \(\displaystyle n \times m \) ha n righe e m colonne. L'hai invertito nella tua spiegazione.
http://en.wikipedia.org/wiki/Matrix_(mathematics)
http://en.wikipedia.org/wiki/Matrix_(mathematics)
"wnvl":
Una matrice \(\displaystyle n \times m \) ha n righe e m colonne. L'hai invertito nella tua spiegazione.
http://en.wikipedia.org/wiki/Matrix_(mathematics)
Corretto! Errore di distrazione. Grazie per la segnalazione

C'è di mezzo l'identificazione di uno spazio euclideo con il suo duale, mediante l'uso del prodotto scalare.
L'idea del gradiente come vettore colonna e l'uso del prodotto scalare sono funzionali al fatto di evitare di parlare di spazio duale, per non spaventare i piccoli.
IMVHO
L'idea del gradiente come vettore colonna e l'uso del prodotto scalare sono funzionali al fatto di evitare di parlare di spazio duale, per non spaventare i piccoli.
IMVHO
"Fioravante Patrone":
C'è di mezzo l'identificazione di uno spazio euclideo con il suo duale, mediante l'uso del prodotto scalare.
L'idea del gradiente come vettore colonna e l'uso del prodotto scalare sono funzionali al fatto di evitare di parlare di spazio duale, per non spaventare i piccoli.
IMVHO
Ti ringrazio per la risposta. Purtroppo io sono tra quei "piccoli"

Ultimamente ovunque mi giri, mi scontro con questo, ormai mitologico, spazio duale. Prima o poi dovrò trovare il tempo di approfondire questi argomenti che sono ovunque come il prezzemolo

Beh, un (aspirante?) ingmat che si considera tra i "piccoli"? Ma va! Oltretutto dopo aver visto il tuo post iniziale.
Sai cos'è? E' che, fintanto che si lavora in $RR^n$, con la solita base canonica e il solito prodotto scalare euclideo, tutti i gatti sono bigi.
Prova a prenderti uno spazio vettoriale un po' diverso. Che so, i polinomi di grado minore o uguale di... 2. Per evitare sia banalità che conti inutili. Scegliti una base e un prodotto scalare e lavoricchiaci un po' su. Ci perdi un po' di tempo, ma magari ti si schiariscono un po' le idee.
Quanto allo spazio duale (di uno spazio vettoriale $V$ su $RR$, diciamo), in sé, non è niente di che: l'insieme delle applicazioni lineari da $V$ in $RR$. Che ha una struttura lui stesso di spazio vettoriale. Amen.
Interessante il fatto che l'operazione si possa iterare, e che in certi casi e in certi sensi $f \circ f = Id$
Interessante l'idea generale di dualità: in geometria proiettiva (http://www.dima.unige.it/~badescu/attiv ... etria2.pdf), in PL... Svela aspetti interessanti e che possono essere istruttivi.
Sai cos'è? E' che, fintanto che si lavora in $RR^n$, con la solita base canonica e il solito prodotto scalare euclideo, tutti i gatti sono bigi.
Prova a prenderti uno spazio vettoriale un po' diverso. Che so, i polinomi di grado minore o uguale di... 2. Per evitare sia banalità che conti inutili. Scegliti una base e un prodotto scalare e lavoricchiaci un po' su. Ci perdi un po' di tempo, ma magari ti si schiariscono un po' le idee.
Quanto allo spazio duale (di uno spazio vettoriale $V$ su $RR$, diciamo), in sé, non è niente di che: l'insieme delle applicazioni lineari da $V$ in $RR$. Che ha una struttura lui stesso di spazio vettoriale. Amen.
Interessante il fatto che l'operazione si possa iterare, e che in certi casi e in certi sensi $f \circ f = Id$

Interessante l'idea generale di dualità: in geometria proiettiva (http://www.dima.unige.it/~badescu/attiv ... etria2.pdf), in PL... Svela aspetti interessanti e che possono essere istruttivi.
Hai fatto algebra lineare/geometria?
"Fioravante Patrone":
Beh, un (aspirante?) ingmat che si considera tra i "piccoli"? Ma va!
Intendevo dire che purtroppo veniamo un po' trattati da tali. Mi piacerebbe che ci venissero almeno accennate queste cose, ma, in genere, non ci vengono dette, come se vi sia una verità celata che non si può donare nella sua interezza a noi "piccoli" studenti

Oltretutto dopo aver visto il tuo post iniziale.
Detto da un Professore mi onora molto

"Fioravante Patrone":
Quanto allo spazio duale (di uno spazio vettoriale $V$ su $RR$, diciamo), in sé, non è niente di che: l'insieme delle applicazioni lineari da $V$ in $RR$. Che ha una struttura lui stesso di spazio vettoriale. Amen.
"Maci86":
Hai fatto algebra lineare/geometria?
La nozione di base la so, ma purtroppo mi manca la teoria sviluppata in modo sistematico. Purtroppo nel mio corso di Algebra Lineare lo spazio duale non è stato trattato (in favore di altri argomenti come la forma canonica di Jordan). Ma diciamo che è in cima alla lista di argomenti da trattare visto che vorrei approfondire l'algebra tensoriale e il calcolo differenziale su varietà.
Ti ringrazio molto della dritta.

Saluti, Marco
Secondo me ha ragione il tuo testo.
Ti mostro il mio punto di vista, forse una voce in più ti può interessare.
Per definizione, se \( \mathbf{x} = (x_1, \dots, x_n) \in \mathbb{R}^n \), si ha
\[ \nabla f(\mathbf{x}) = \left ( \frac{\partial f}{\partial x_1}(\mathbf{x}), \dots, \frac{\partial f}{\partial x_n}(\mathbf{x}) \right ) \in \mathbb{R}^n \]
Siano \( \mathbf{h} \in \mathbb{R}^n \) e \( C_n \), \( C_m \) le basi canoniche di \( \mathbb{R}^n \) e \( \mathbb{R}^m \) rispettivamente.
Allora, per funzioni \( f : \mathbb{R}^n \rightarrow \mathbb{R} \), si ha
\[ {\rm d}f(\mathbf{x})(\mathbf{h}) = \left \langle \nabla f (\mathbf{x}), \mathbf{h} \right \rangle = {}^t[\nabla f (\mathbf{x})]_{C_n} \cdot [\mathbf{h}]_{C_n} = \sum_{k=1}^n \frac{\partial f}{\partial x_k} (\mathbf{x}) h_k \]
dove la scrittura \( [\mathbf{v}]_{C_n} \) denota il vettore colonna delle componenti di \( \mathbf{v} \in \mathbb{R}^n \) rispetto a \( C_n \).
Ora, consideriamo funzioni del tipo \( \mathbf{f} : \mathbb{R}^n \rightarrow \mathbb{R}^m \). La matrice Jacobiana di \( \mathbf{f} \) valutata in \( \mathbf{x} \) (nel seguito denotata con \( \mathbf{Df}(\mathbf{x}) \)) è la matrice associata rispetto alle basi canoniche \( C_n \) e \( C_m \) di \( \mathbb{R}^n \) e \( \mathbb{R}^m \) all'applicazione lineare \( {\rm d} \mathbf{f} (\mathbf{x}) \), cioè il differenziale di \( \mathbf{f} \) valutato in \( \mathbf{x} \). Infatti vale l'uguaglianza
\[ [{\rm d}\mathbf{f}(\mathbf{x})(\mathbf{h})]_{C_m} = \mathbf{Df}(\mathbf{x}) [\mathbf{h}]_{C_n} \]
Per quanto riguarda la questione del vettore riga, infine, non è che il gradiente sia un vettore riga.
Estesamente, essendo \( \mathbf{f}(\mathbf{x}) = (f_1(\mathbf{x}), \dots, f_m(\mathbf{x})) \in \mathbb{R}^m \), tu scrivi
\[ \mathbf{Df}(\mathbf{x}) = \pmatrix{\frac{\partial f_1}{\partial x_1}(\mathbf{x}) & \dots & \frac{\partial f_1}{\partial x_n}(\mathbf{x}) \\ \vdots & \ddots & \vdots \\ \frac{\partial f_m}{\partial x_1}(\mathbf{x}) & \dots & \frac{\partial f_m}{\partial x_n}(\mathbf{x})} \]
e a questo punto osservi che le righe della matrice Jacobiana sono composte dalle componenti dei gradienti \( \nabla f_i (\mathbf{x}) \), cioè che vale l'uguaglianza
\[ {}^t [\nabla f_i(\mathbf{x})]_{C_n} = \mathbf{Df}(x)^{(i)} \]
dove la scrittura \( \mathbf{Df}(x)^{(i)} \) indica l'\( i \)-sima riga di \( \mathbf{Df}(\mathbf{x}) \) (\( i = 1, \dots, m \)).
Ti faccio notare che, se \( m = 1 \), la situazione è identica al caso delle funzioni \( f : \mathbb{R}^n \rightarrow \mathbb{R} \), dato che hai
\[ [{\rm d}\mathbf{f}(\mathbf{x})(\mathbf{h})]_{C_m} = \mathbf{Df}(\mathbf{x}) [\mathbf{h}]_{C_n} = \pmatrix{\frac{\partial f}{\partial x_1}(\mathbf{x}) & \dots & \frac{\partial f}{\partial x_n}(\mathbf{x})} [\mathbf{h}]_{C_n} = \sum_{k=1}^n \frac{\partial f}{\partial x_k} (\mathbf{x}) h_k \]
Che te ne pare?
Ti mostro il mio punto di vista, forse una voce in più ti può interessare.
Per definizione, se \( \mathbf{x} = (x_1, \dots, x_n) \in \mathbb{R}^n \), si ha
\[ \nabla f(\mathbf{x}) = \left ( \frac{\partial f}{\partial x_1}(\mathbf{x}), \dots, \frac{\partial f}{\partial x_n}(\mathbf{x}) \right ) \in \mathbb{R}^n \]
Siano \( \mathbf{h} \in \mathbb{R}^n \) e \( C_n \), \( C_m \) le basi canoniche di \( \mathbb{R}^n \) e \( \mathbb{R}^m \) rispettivamente.
Allora, per funzioni \( f : \mathbb{R}^n \rightarrow \mathbb{R} \), si ha
\[ {\rm d}f(\mathbf{x})(\mathbf{h}) = \left \langle \nabla f (\mathbf{x}), \mathbf{h} \right \rangle = {}^t[\nabla f (\mathbf{x})]_{C_n} \cdot [\mathbf{h}]_{C_n} = \sum_{k=1}^n \frac{\partial f}{\partial x_k} (\mathbf{x}) h_k \]
dove la scrittura \( [\mathbf{v}]_{C_n} \) denota il vettore colonna delle componenti di \( \mathbf{v} \in \mathbb{R}^n \) rispetto a \( C_n \).
Ora, consideriamo funzioni del tipo \( \mathbf{f} : \mathbb{R}^n \rightarrow \mathbb{R}^m \). La matrice Jacobiana di \( \mathbf{f} \) valutata in \( \mathbf{x} \) (nel seguito denotata con \( \mathbf{Df}(\mathbf{x}) \)) è la matrice associata rispetto alle basi canoniche \( C_n \) e \( C_m \) di \( \mathbb{R}^n \) e \( \mathbb{R}^m \) all'applicazione lineare \( {\rm d} \mathbf{f} (\mathbf{x}) \), cioè il differenziale di \( \mathbf{f} \) valutato in \( \mathbf{x} \). Infatti vale l'uguaglianza
\[ [{\rm d}\mathbf{f}(\mathbf{x})(\mathbf{h})]_{C_m} = \mathbf{Df}(\mathbf{x}) [\mathbf{h}]_{C_n} \]
Per quanto riguarda la questione del vettore riga, infine, non è che il gradiente sia un vettore riga.
Estesamente, essendo \( \mathbf{f}(\mathbf{x}) = (f_1(\mathbf{x}), \dots, f_m(\mathbf{x})) \in \mathbb{R}^m \), tu scrivi
\[ \mathbf{Df}(\mathbf{x}) = \pmatrix{\frac{\partial f_1}{\partial x_1}(\mathbf{x}) & \dots & \frac{\partial f_1}{\partial x_n}(\mathbf{x}) \\ \vdots & \ddots & \vdots \\ \frac{\partial f_m}{\partial x_1}(\mathbf{x}) & \dots & \frac{\partial f_m}{\partial x_n}(\mathbf{x})} \]
e a questo punto osservi che le righe della matrice Jacobiana sono composte dalle componenti dei gradienti \( \nabla f_i (\mathbf{x}) \), cioè che vale l'uguaglianza
\[ {}^t [\nabla f_i(\mathbf{x})]_{C_n} = \mathbf{Df}(x)^{(i)} \]
dove la scrittura \( \mathbf{Df}(x)^{(i)} \) indica l'\( i \)-sima riga di \( \mathbf{Df}(\mathbf{x}) \) (\( i = 1, \dots, m \)).
Ti faccio notare che, se \( m = 1 \), la situazione è identica al caso delle funzioni \( f : \mathbb{R}^n \rightarrow \mathbb{R} \), dato che hai
\[ [{\rm d}\mathbf{f}(\mathbf{x})(\mathbf{h})]_{C_m} = \mathbf{Df}(\mathbf{x}) [\mathbf{h}]_{C_n} = \pmatrix{\frac{\partial f}{\partial x_1}(\mathbf{x}) & \dots & \frac{\partial f}{\partial x_n}(\mathbf{x})} [\mathbf{h}]_{C_n} = \sum_{k=1}^n \frac{\partial f}{\partial x_k} (\mathbf{x}) h_k \]
Che te ne pare?
Mi pare tutto legittimo e sensato. A distanza di un anno da questa discussione mi permetto di fare alcune precisazioni e aggiungere qualche pensiero.
Proprio oggi ne parlavo con un compagno di corso, e a lui, come a te dico che hai colto il punto. Il problema non sta nella definizione di gradiente ma nella consistenza tra le definizioni. In pratica se definisci il gradiente come vettore colonna, allora l'importante è che si dica che le righe della matrice siano i gradienti delle componenti trasposti, come hai appunto scritto tu. Nel testo in questione (Pagani Salsa) si definisce il gradiente come colonna (non è troppo esplicito a dir la verità) ma poi nella matrice jacobiana si scrive:
\[\mathbf{Df} = \left( \begin{matrix} \nabla f_1 \\ \nabla f_2 \\ \vdots \\ \nabla f_m \end{matrix} \right) \]
In ogni caso credo che non ci sia un giusto o sbagliato ma solo una questione di convenzioni. Ciò che è certo è che, una volta scelta la convezione si presti attenzione alle formule e a mantenere una coerenza formale. Per capire ciò di cui parlo guarda questa discussione, a prescindere dalla convenzione il risultato (la formula esplicita con la sommatoria per intenderci) dev'essere corretto!
In ogni caso ammetto che trovo più limpido e chiaro definire il gradiente come matrice jacobiana quando $m=1$ (vedi qui) e quindi: \[\nabla f (p) := \mathbf{Df}(p) \ \ \ \ \ \ \ \text{quando} \ \ f: \mathbb{R}^n \to \mathbb{R}\]
Però, de gustibus!
Alcuni inoltre indicano con \(\text{grad}f\) il gradiente riga e con \(\nabla f\) quello colonna (vedesi qui).
Inoltre, come credo tu sappia già, resta il fatto che la distinzione tra riga e colonna è importante anche a livello concettuale, vedesi qui per esempio.
Inoltre, come mi sta insegnando dissonance in questi giorni la definizione "vera" è quella intrinseca e globale della geometria differenziale e quindi tutti questi legittimi discorsi "in coordinate" lasciano il tempo che trovano. Ma dato che di geometria differenziale so poco niente non mi spingo oltre.
Scusami per la prolissità, dopo un anno e più avevo un po' di cose da dire
Proprio oggi ne parlavo con un compagno di corso, e a lui, come a te dico che hai colto il punto. Il problema non sta nella definizione di gradiente ma nella consistenza tra le definizioni. In pratica se definisci il gradiente come vettore colonna, allora l'importante è che si dica che le righe della matrice siano i gradienti delle componenti trasposti, come hai appunto scritto tu. Nel testo in questione (Pagani Salsa) si definisce il gradiente come colonna (non è troppo esplicito a dir la verità) ma poi nella matrice jacobiana si scrive:
\[\mathbf{Df} = \left( \begin{matrix} \nabla f_1 \\ \nabla f_2 \\ \vdots \\ \nabla f_m \end{matrix} \right) \]
In ogni caso credo che non ci sia un giusto o sbagliato ma solo una questione di convenzioni. Ciò che è certo è che, una volta scelta la convezione si presti attenzione alle formule e a mantenere una coerenza formale. Per capire ciò di cui parlo guarda questa discussione, a prescindere dalla convenzione il risultato (la formula esplicita con la sommatoria per intenderci) dev'essere corretto!
In ogni caso ammetto che trovo più limpido e chiaro definire il gradiente come matrice jacobiana quando $m=1$ (vedi qui) e quindi: \[\nabla f (p) := \mathbf{Df}(p) \ \ \ \ \ \ \ \text{quando} \ \ f: \mathbb{R}^n \to \mathbb{R}\]
Però, de gustibus!
Alcuni inoltre indicano con \(\text{grad}f\) il gradiente riga e con \(\nabla f\) quello colonna (vedesi qui).
Inoltre, come credo tu sappia già, resta il fatto che la distinzione tra riga e colonna è importante anche a livello concettuale, vedesi qui per esempio.
Inoltre, come mi sta insegnando dissonance in questi giorni la definizione "vera" è quella intrinseca e globale della geometria differenziale e quindi tutti questi legittimi discorsi "in coordinate" lasciano il tempo che trovano. Ma dato che di geometria differenziale so poco niente non mi spingo oltre.

Scusami per la prolissità, dopo un anno e più avevo un po' di cose da dire

In realtà il gradiente io non l'ho definito in nessuno dei due modi (né come vettore riga, né come vettore colonna), semplicemente ho detto che
\[ \nabla f(\mathbf{x}) = \left ( \frac{\partial f}{\partial x_1}(\mathbf{x}), \dots, \frac{\partial f}{\partial x_n}(\mathbf{x}) \right ) \in \mathbb{R}^n \]
e cioè è un elemento di \( \mathbb{R}^n \).
Poi, se fisso la base canonica di \( \mathbb{R}^n \), allora posso pensare questo elemento di \( \mathbb{R}^n \) in termini di componenti (grazie alla struttura di spazio vettoriale di cui è dotato \( \mathbb{R}^n \)). Se scelgo di indicare le componenti come vettore colonna (cioè di identificare un elemento di \( \mathbb{R}^n \) con un vettore colonna), ottengo
\[ [\nabla f(\mathbf{x})]_{C_n} = \pmatrix{\frac{\partial f}{\partial x_1}(\mathbf{x}) \\ \vdots \\ \frac{\partial f}{\partial x_n}(\mathbf{x})} \]
che è la convenzione che adotto io, ma di per sé finché io non fisso una base di \( \mathbb{R}^n \) non ha senso parlare di componenti di \( \nabla f(\mathbf{x}) \), non so se mi spiego...
\[ \nabla f(\mathbf{x}) = \left ( \frac{\partial f}{\partial x_1}(\mathbf{x}), \dots, \frac{\partial f}{\partial x_n}(\mathbf{x}) \right ) \in \mathbb{R}^n \]
e cioè è un elemento di \( \mathbb{R}^n \).
Poi, se fisso la base canonica di \( \mathbb{R}^n \), allora posso pensare questo elemento di \( \mathbb{R}^n \) in termini di componenti (grazie alla struttura di spazio vettoriale di cui è dotato \( \mathbb{R}^n \)). Se scelgo di indicare le componenti come vettore colonna (cioè di identificare un elemento di \( \mathbb{R}^n \) con un vettore colonna), ottengo
\[ [\nabla f(\mathbf{x})]_{C_n} = \pmatrix{\frac{\partial f}{\partial x_1}(\mathbf{x}) \\ \vdots \\ \frac{\partial f}{\partial x_n}(\mathbf{x})} \]
che è la convenzione che adotto io, ma di per sé finché io non fisso una base di \( \mathbb{R}^n \) non ha senso parlare di componenti di \( \nabla f(\mathbf{x}) \), non so se mi spiego...