# 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: **664 times**

Last updated: **Jul 15 '15**

Solving polynomial equations with arbitrary coefficients

solving system of polynomial equations over reals using newton method

Issues with: Solving a polynomial equation with multiple variables

polynomials of derivative operator

How to get the quotients in multivariable polynomial division?

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.