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

Last updated: **Jul 15 '15**

solving system of polynomial equations over reals using newton method

Characteristic polynomial wont be used in solve

Find specific linear combination in multivariate polynomial ring

Not understandable error when solving polynomial equation

using sage solve for more than 4 variables

random matrix with determinant +- 1

Coefficients in Polynomial Ring over Symbolic Ring ?

How to stop Sage from finding erroneous complex roots?

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.