How to pick out the largest root of an equation?
I tried the following but it didn't work,
p = x^2 - 7ax + 5; a=5; m = max((p == 0).solve([x]))
I tried the following but it didn't work,
p = x^2 - 7ax + 5; a=5; m = max((p == 0).solve([x]))
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)
[]
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
Please start posting anonymously - your entry will be published after you log in or create a new account.
Asked: 2015-01-20 05:22:48 +0100
Seen: 2,280 times
Last updated: Jul 15 '15
Factorization of non-commutative Laurent polynomials
Find specific linear combination in multivariate polynomial ring
Issues with: Solving a polynomial equation with multiple variables
How to extract coefficient terms from a differential equation, as for polynomial?
Ideals of non-commutative polynomials
Trigonometric Equation Solving: Not Terminating