# hessian

`Graph.hessian(tensor, variables, *, name=None)`

Calculate a single Hessian matrix for all the variables.

The Hessian is a matrix containing all the second partial derivatives of the tensor with respect to the variables.

### Parameters

**tensor**(*Tensor*) – The real scalar tensor $T$**variables**(*list**[**Tensor**]*) – The list of real variables $\{\theta_i\}$**name**(*str**or**None**,**optional*) – The name of the node.

### Returns

A 2D real Hessian matrix $H$ containing the second partial derivatives of the tensor $T$ with respect to the variables $\{\theta_i\}$

### Return type

### WARNING

This function currently doesn’t support calculating a Hessian matrix for a graph which includes an infidelity_pwc node if it involves a Hamiltonian with degenerate eigenvalues at any segment. In that case, the function returns a nan Hessian matrix.

## Notes

The $(i,j)$

$H_{i,j} = \frac{\partial^2 T}{\partial \theta_i \partial \theta_j}.$The variables $\{\theta_i\}$ follow the same sequence as the input list of variables. If some of the variables are not scalars, this function flattens them and concatenates them in the same order of the list of variables that you provided to create the sequence of scalar variables $\{\theta_i\}$

If you choose a negative log-likelihood as the tensor $T$