Ask Your Question

Revision history [back]

Confusion with equations with no explicit solution

Hello,

I started getting into sage a couple of days ago. To do so I’m following the handbook « Computational Mathematics with SageMath » and I came across something that I would like to have more details about but I didn’t find anything in the documentation. So the handbook states that

“In most cases, as soon as the equation or system becomes too complex, no explicit solution can be found:

sage: solve(x^(1/x)==(1/x)^x, x) 
> [(1/x)^x == x^(1/x)]

However, this is not necessarily a limitation! Indeed, a specificity of computer algebra is the ability to manipulate objects defined by equations, and in particular to compute their properties, without solving them explicitly. Even better: in some cases, the equation defining a mathematical object is the best algorithmic representation for it.”

But it doesn’t say what they mean by an equation being “too complex”. And what does it mean for an equation to not have an explicit solution. Plus in some cases we want to have a numerical result (even if it’s an approximation). For exemple I tried finding from what n0 the Tyler series of the exponential function at x0=0 is in the interval [e-10^-3, e+10^-3] i.e.

∀ ε > 10⁻³ , n > n0 ⇒ | vn − e | < ε

vn being equal to the sum of the terms 1 / i! for i ∈ [ 0, n ]. That being the definition of the Taylor series of the exponential function at x0=0 without taking account of the rest.

to do so I wrote this :

sage: k, n, n0, epsilon = var('k, n, n0, epsilon')
sage: assume(n, 'integer')
sage: epsilon = 1e-1

sage: u(n) = 1/factorial(n)

sage: v(n) = sum(u(k), k, 0, n)

sage: n0 = solve(e - v(n) > epsilon, n)
sage: n0

And sage gives out :

> [[e - sum(1/factorial(k), k, 0, n) - 0.1 > 0]]

The documentation says that to get an explicit solution we jut got to set the parameter explicit_solutions to True but I tried it and it doesn't work. Also I'm using the 8.1 version (it's the latest I found on the ubunru packages repository and I tried to download the 9.2 version but the archive was too voluminous (it's 14 GB and I didn't have enough memoiry space to extract it)

Is it possible to get an approximation of the solution in this case I don’t care for the result to be an approximation because I just need the integer part of it anyway.

Please help me I don’t really know if the problem is that the equation is “too complex” or maybe I’m just not using the sum function right.

Thank you in advance.

Confusion with equations with no explicit solution

Hello,

I started getting into sage a couple of days ago. To do so I’m following the handbook « Computational Mathematics with SageMath » and I came across something that I would like to have more details about but I didn’t find anything in the documentation. So the handbook states that

“In most cases, as soon as the equation or system becomes too complex, no explicit solution can be found:

sage: solve(x^(1/x)==(1/x)^x, x) 
> [(1/x)^x == x^(1/x)]

However, this is not necessarily a limitation! Indeed, a specificity of computer algebra is the ability to manipulate objects defined by equations, and in particular to compute their properties, without solving them explicitly. Even better: in some cases, the equation defining a mathematical object is the best algorithmic representation for it.”

But it doesn’t say what they mean by an equation being “too complex”. And what does it mean for an equation to not have an explicit solution. Plus in some cases we want to have a numerical result (even if it’s an approximation). For exemple I tried finding from what n0 the Tyler series of the exponential function at x0=0 x0=1 is in the interval [e-10^-3, e+10^-3] i.e.

∀ ε > 10⁻³ , n > n0 ⇒ | vn − e | < ε

vn being equal to the sum of the terms 1 / i! for i ∈ [ 0, n ]. That being the definition of the Taylor series of the exponential function at x0=0 x0=1 without taking account of the rest.

to do so I wrote this :

sage: k, n, n0, epsilon = var('k, n, n0, epsilon')
sage: assume(n, 'integer')
sage: epsilon = 1e-1

sage: u(n) = 1/factorial(n)

sage: v(n) = sum(u(k), k, 0, n)

sage: n0 = solve(e - v(n) > epsilon, n)
sage: n0

And sage gives out :

> [[e - sum(1/factorial(k), k, 0, n) - 0.1 > 0]]

The documentation says that to get an explicit solution we jut got to set the parameter explicit_solutions to True but I tried it and it doesn't work. Also I'm using the 8.1 version (it's the latest I found on the ubunru packages repository and I tried to download the 9.2 version but the archive was too voluminous (it's 14 GB and I didn't have enough memoiry space to extract it)

Is it possible to get an approximation of the solution in this case I don’t care for the result to be an approximation because I just need the integer part of it anyway.

Please help me I don’t really know if the problem is that the equation is “too complex” or maybe I’m just not using the sum function right.

Thank you in advance.