Sia 
 un campo vettoriale differenziabile con continuità: una funzione U di classe 
 si dice  potenziale di f se 
. ,
Se f è una lista di m vettori (funzione vettoriale) e v una lista di n variabili, il comando potential(f,v,'U')
determina U se f ammette potenziale: la risposta è true (false) se U esiste (non esiste), e la successiva richiesta (se la risposta è stata true) fornisce il potenziale U.
> g:=[3*x^2*y-y^2,x^3-2*x*y+1];

> potential(g,[x,y],'U');

> U;

E` interessante il seguente esempio:
> with(linalg);
> f:=[-y/(x^2+y^2),x/(x^2+y^2)];

> v:=[x,y];

> jacobian(f,v);

> diverge(f,v);

> potential(f,v,'U');

> g:=arctan(y/x);

> grad(g,v);
