# Computing the root construction of a real algebraic number

Starting from some real algebraic number

```
sage: P
[1 1 0]
[0 1 1]
[1 0 0]
sage: lamda, (v,), m = P.eigenvectors_right()[0]
sage: lamda
1.754877666246693?
```

Other than starting from skratch calling solve on a symbolic version of the minimal polynomial:

```
sage: lamda.minpoly()
x^3 - 2*x^2 + x - 1
sage: x = var('x')
sage: p = x^3 - 2*x^2 + x - 1
sage: solve(p, x)[2]
x == (1/18*sqrt(23)*sqrt(3) + 25/54)^(1/3) + 1/9/(1/18*sqrt(23)*sqrt(3) + 25/54)^(1/3) + 2/3
```

is there a method in Sage to get the expression of `lamda`

as roots (if it exists) directly form `lamda`

?

The "lambda" that you get originally is explicit for basically all computational and numerical questions. You may also know that generally the roots of a polynomial cannot be expressed in roots. So I expect that "solve" (which uses maxima) is the only place in Sage that exposes Cardano's formulas.