2 added 7 characters in body

The other answers are already very good. A few additional notes:

(1) As others have explained, the Jacobian ideal method works for projective space. It also works for other toric varieties. Any smooth toric variety can be written as $(\mathbb{C}^n \setminus \Sigma)/(\mathbb{C}^{*})^k$ where $\Sigma$ is an arrangement of linear spaces and $(\mathbb{C}^{*})^k$ acts on $\mathbb{C}^n$ by some linear representation. For example, $\mathbb{P}^n = (\mathbb{C}^{n+1} \setminus \{ 0 \} )/\mathbb{C}^*$. So you can use Greg's trick of unquotienting, using the ordinary Jacobi criterion, and ignoring singularities on $\Sigma$. See David Cox's notes for how to write a toric variety in this manner.

(2) For varieties of dimension greater than $1$, resolution of singularities is very computationally intensive. It has been implemented in Macaulay 2, but it tends to tax the memory resources of the system.

1

The other answers are already very good. A few additional notes:

(1) As others have explained, the Jacobian ideal method works for projective space. It also works for other toric varieties. Any toric variety can be written as $(\mathbb{C}^n \setminus \Sigma)/(\mathbb{C}^{*})^k$ where $\Sigma$ is an arrangement of linear spaces and $(\mathbb{C}^{*})^k$ acts on $\mathbb{C}^n$ by some linear representation. For example, $\mathbb{P}^n = (\mathbb{C}^{n+1} \setminus \{ 0 \} )/\mathbb{C}^*$. So you can use Greg's trick of unquotienting, using the ordinary Jacobi criterion, and ignoring singularities on $\Sigma$. See David Cox's notes for how to write a toric variety in this manner.

(2) For varieties of dimension greater than $1$, resolution of singularities is very computationally intensive. It has been implemented in Macaulay 2, but it tends to tax the memory resources of the system.