# How to pick out the largest root of an equation?

I tried the following but it didn't work,

p = x^2 - 7*a*x + 5;
a=5;
m = max((p == 0).solve([x]))

How to pick out the largest root of an equation?

I tried the following but it didn't work,

p = x^2 - 7*a*x + 5;
a=5;
m = max((p == 0).solve([x]))

add a comment

0

First, here is a classical way to get solutions of you equation:

```
sage: a = 5
sage: p = x^2 - 7*a*x + 5
sage: p.solve(x)
[x == -1/2*sqrt(1205) + 35/2, x == 1/2*sqrt(1205) + 35/2]
```

So, you have a list of solutions. Each solution is of the form `x == -1/2*sqrt(1205) + 35/2`

which is a symbolic expression. You can get the right hand side of such an equality with the `rhs()`

method:

```
sage: [s.rhs() for s in p.solve(x)]
[-1/2*sqrt(1205) + 35/2, 1/2*sqrt(1205) + 35/2]
```

Then, you can take the maximal element of this list:

```
sage: max([s.rhs() for s in p.solve(x)])
1/2*sqrt(1205) + 35/2
```

Alternatively, instead of getting solutions as symbolic expressions, you can get them as Python dictionaries:

```
sage: p.solve(x, solution_dict=True)
[{x: -1/2*sqrt(1205) + 35/2}, {x: 1/2*sqrt(1205) + 35/2}]
```

So, you can get each solution by looking at the `x`

values:

```
sage: [s[x] for s in p.solve(x, solution_dict=True)]
[-1/2*sqrt(1205) + 35/2, 1/2*sqrt(1205) + 35/2]
```

Then, as before, you can take the maximal element of this list:

```
sage: max([s[x] for s in p.solve(x, solution_dict=True)])
1/2*sqrt(1205) + 35/2
```

No, since Sage gives an ordering between complex numbers, you will get the maximum for this ordering:

```
sage: max([1+I, 2*I])
I + 1
```

A possibility is to assume that `x`

is real:

```
sage: p = x^2 + 1
sage: p.solve(x)
[x == -I, x == I]
sage: assume(x, 'real')
sage: p.solve(x)
[]
```

0

Use `subs`

(wrong solution):

```
sage: p = x^2 - 7*a*x + 5; p.subs(a=5)
x^2 - 35*x + 5
sage: max(p.solve([x]))
x == -1/2*sqrt(1205) + 35/2
```

Asked: **
2015-01-19 22:22:48 -0500
**

Seen: **623 times**

Last updated: **Jul 15 '15**

solving system of polynomial equations over reals using newton method

Not understandable error when solving polynomial equation

How to extract coefficient terms from a differential equation, as for polynomial?

Polynomial coefficient vector to symbolic polynomial

Using the solution of equation

Fast evaluation of big polynomials

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.