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

Last updated: **Jul 15 '15**

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.