ASKSAGE: Sage Q&A Forum - RSS feedhttps://ask.sagemath.org/questions/Q&A Forum for SageenCopyright Sage, 2010. Some rights reserved under creative commons license.Sun, 24 Jan 2021 19:29:22 +0100Generating only the ranks of elliptic curves that can be found provably correctlyhttps://ask.sagemath.org/question/9615/generating-only-the-ranks-of-elliptic-curves-that-can-be-found-provably-correctly/Hello! I am trying to compute the rank for a large number of elliptic curves. I know that this is not always doable in a provably correct manner, so I would like to write up a piece of code that will go through my list of elliptic curves, calculate the rank provably correctly if possible, and skip those elliptic curves for which the rank cannot be computed provably correctly. Is there a simple way to do this? Thanks!Thu, 06 Dec 2012 23:06:33 +0100https://ask.sagemath.org/question/9615/generating-only-the-ranks-of-elliptic-curves-that-can-be-found-provably-correctly/Answer by John Cremona for <p>Hello! I am trying to compute the rank for a large number of elliptic curves. I know that this is not always doable in a provably correct manner, so I would like to write up a piece of code that will go through my list of elliptic curves, calculate the rank provably correctly if possible, and skip those elliptic curves for which the rank cannot be computed provably correctly. Is there a simple way to do this? Thanks!</p>
https://ask.sagemath.org/question/9615/generating-only-the-ranks-of-elliptic-curves-that-can-be-found-provably-correctly/?answer=15781#post-id-15781I assume that you mean elliptic curves over ℚ.
I would do two or three things. First, wrap your call to `E.rank()` in a try/except block to catch cases where an error is raised. Second, create an `E.mwrank_curve()` object, which you can ask its rank and ask whether the result is proved correct (this is delivered by `mwrank`):
sage: E = EllipticCurve([0,0,1,-7,6])
sage: Em = E.mwrank_curve()
sage: Em.rank()
3
sage: Em.certain()
True
sage: E = EllipticCurve([0, -1, 1, -929, -10595])
sage: Em = E.mwrank_curve()
sage: Em.rank()
0
sage: Em.certain()
False
In the second example, the rank really is `0` but `E` has Sha
of order `4` and `mwrank` is not able to tell the difference.
I hope this helps.Tue, 10 Dec 2013 05:41:06 +0100https://ask.sagemath.org/question/9615/generating-only-the-ranks-of-elliptic-curves-that-can-be-found-provably-correctly/?answer=15781#post-id-15781Answer by dan_fulea for <p>Hello! I am trying to compute the rank for a large number of elliptic curves. I know that this is not always doable in a provably correct manner, so I would like to write up a piece of code that will go through my list of elliptic curves, calculate the rank provably correctly if possible, and skip those elliptic curves for which the rank cannot be computed provably correctly. Is there a simple way to do this? Thanks!</p>
https://ask.sagemath.org/question/9615/generating-only-the-ranks-of-elliptic-curves-that-can-be-found-provably-correctly/?answer=55443#post-id-55443Here is a piece of code trying to compute the rank of all elliptic curves $E(a,b)$ of the shape $y^2=x^3+ax+b$ for $a,b\in[2010, 2021]$. Sometimes, there it will be "harder" to compute the rank, so the code will not deliver a computed rank. We fill in a dictionary with keys $(a,b)$ and values the corresponding rank for the key when it could be computed, and `None` otherwise.
R, dic = [2010 .. 2021], {}
for a, b in cartesian_product([R, R]):
try:
E = EllipticCurve(QQ, [a, b])
E.two_descent(second_limit=13, verbose=False)
r = E.rank(only_use_mwrank=False)
dic[(a, b)] = r
print(f'({a}, {b}) -> {r}')
except Exception:
dic[(a, b)] = None
To see which cases could not be computed...
[key for key, val in dic.items() if val is None]
... and get an empty list, so in this case there was no `None` value. But well, in other cases we may have the situation. (Also maybe consider first commenting out the `two_descent` line, as it may be time consuming; but it may allow finding more curve ranks.)Sun, 24 Jan 2021 19:29:22 +0100https://ask.sagemath.org/question/9615/generating-only-the-ranks-of-elliptic-curves-that-can-be-found-provably-correctly/?answer=55443#post-id-55443