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.Sat, 13 Jan 2018 12:03:30 +0100implement given divisor as a specific hyperelliptic curve divisorhttps://ask.sagemath.org/question/40589/implement-given-divisor-as-a-specific-hyperelliptic-curve-divisor/I get the values of a divisor for a hyperelliptic curve from a research paper to ensure the divisor is correct and i want to use this divisor on calculation.
so Idid the following:
[A Secured Cloud System using Hyper Elliptic Curve](https://www.google.com.eg/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwjLjIvt_cvYAhWGvBQKHWlACL8QFggqMAE&url=https%3A%2F%2Fwww.ijser.org%2Fresearchpaper%2FA-Secured-Cloud-System-using-Hyper-Elliptic-Curve-Cryptography.pdf&usg=AOvVaw3gkCA7QngzSue-BZCV2DB8)
and in sage:
p = 4112543547855339322343814790708185367671872426434747235319998473455582535888229747778325047393413053
K = GF(p)
R.<x> = K[]
f = x^5 + 7943193*x^4 + 6521255*x^3 + 1065528*x^2 + 3279922*x + 3728927
C = HyperellipticCurve( f )
J = C.jacobian()
X = J(K)
u, v = x^2 + 22457213658579645161*x + 62960708771725664757, 65279057408798633572*x + 32004384923913711271
D = X( [u,v] )
> verbose 0 (3324:
> multi_polynomial_ideal.py,
> groebner_basis) Warning: falling back
> to very slow toy implementation.
> verbose 0 (1083:
> multi_polynomial_ideal.py, dimension)
> Warning: falling back to very slow toy
> implementation. Error in lines 9-9
> Traceback (most recent call last):
> File
> "/cocalc/lib/python2.7/site-packages/smc_sagews/sage_server.py",
> line 1013, in execute
> exec compile(block+'\n', '', 'single') in namespace, locals File
> "", line 1, in <module> File
> "/ext/sage/sage-8.1/local/lib/python2.7/site-packages/sage/schemes/hyperelliptic_curves/jacobian_homset.py",
> line 145, in __call__
> return JacobianMorphism_divisor_class_field(self,
> tuple(P)) File
> "/ext/sage/sage-8.1/local/lib/python2.7/site-packages/sage/schemes/hyperelliptic_curves/jacobian_morphism.py",
> line 388, in __init__
> polys, C)) ValueError: Argument polys (= (x^2 + 22457213658579645161*x
> + 62960708771725664757, 65279057408798633572*x +
> 32004384923913711271)) must be divisor
> on curve Hyperelliptic Curve over
> Finite Field of size
> 4112543547855339322343814790708185367671872426434747235319998473455582535888229747778325047393413053
> defined by y^2 = x^5 + 7943193*x^4 +
> 6521255*x^3 + 1065528*x^2 + 3279922*x
> + 3728927.
Does this mean the paper is wrong or I am at wrong.
and if so, how can I modify my work?sherifasagewadSat, 13 Jan 2018 12:03:30 +0100https://ask.sagemath.org/question/40589/Set a specific polynomial as a divisor of hyper elliptic curvehttps://ask.sagemath.org/question/40509/set-a-specific-polynomial-as-a-divisor-of-hyper-elliptic-curve/ If I have a hyperelliptic curve of genus 2 = y2+( x2+x)y = x5+ x3 +1
and reduced divisor for the curve in Mumford is (x2+18x, 17x+1).
the two was given, I can construct the curve: as k.<a> = GF(next_prime(2^160)); R.<x> = k[]
C = HyperellipticCurve(x^5 + x^3 + 1, x^2+x)
How to set (x2+18x, 17x+1) as it's divisor
sherifasagewadSat, 06 Jan 2018 21:49:39 +0100https://ask.sagemath.org/question/40509/order of hyperelliptic curve divisorhttps://ask.sagemath.org/question/40153/order-of-hyperelliptic-curve-divisor/ I create a hyperelliptic curve, over finite field
zz = random_prime(2^81-1,False,2^80);
Q = GF(zz); x = Q['x'].gen();
f = x^5+ 2*x^2 +x + 3;
C = HyperellipticCurve(f, 0)
Then, Jacobian of Hyperelliptic Curve
J = C.jacobian()(Q)
then found two points and get there divisor and substract
P1 = (514014285438369163567791 : 461217828857546813804480 : 1)
P2 = (514014285438369163567791 : 461217828857546813804480 : 1)
D1 = J(P1);
D2 = J(P2);
D = D1 - D2;
but when calculating the order of D (error)
D.order()
> otImplementedError
> Traceback (most recent call last)
> <ipython-input-69-4132ea6bd39c> in
> <module>()
> ----> 1 D.order()
>
> /home/sage/sage-8.0/src/sage/structure/element.pyx
> in
> sage.structure.element.AdditiveGroupElement.order
> (/home/sage/sage/src/build/cythonized/sage/structure/element.c:16098)()
> 2276 Return additive order of
> element 2277 """
> -> 2278 return self.additive_order() 2279 2280
> def __invert__(self):
>
> /home/sage/sage-8.0/src/sage/structure/element.pyx
> in
> sage.structure.element.ModuleElement.additive_order
> (/home/sage/sage/src/build/cythonized/sage/structure/element.c:15332)()
> 2196 Return the additive order
> of self. 2197 """
> -> 2198 raise NotImplementedError 2199 2200
> ########################################################################
>
> NotImplementedError:
How to calculate it's order(I need the order to use it as mod in further calculation)
sherifasagewadThu, 14 Dec 2017 12:04:48 +0100https://ask.sagemath.org/question/40153/How do you Append a Symbolic Matrix?https://ask.sagemath.org/question/32406/how-do-you-append-a-symbolic-matrix/To All:
I am trying to make a function that will take a set of dynamics and a set of independent variables that can or cannot be within the dynamics equations to create a "frozen" state space matrix, A. I would like to tell you all now that I am mostly a FORTRAN coder and am in the process of trying to understand SageMath, which is why I am coding in a brute force method.
I previously checked to make sure that the derivative function was producing reasonable answers and created the matrices like this.
rmag = r[0]^2 + r[1]^2 + r[2]^2;
dyn = -mu*r/rmag^3; # spherical gravity assumption
ddyn_dx = dyn.derivative(r[0]);ddyn_dy = dyn.derivative(r[1]);ddyn_dz = dyn.derivative(r[2]);
pdyn_pr = (transpose(matrix([ddyn_dx,ddyn_dy,ddyn_dz])));
As you might have discovered, this is exceptionally tedious when the number of independent variables get larger.
Therefore, I desired to code something like this:
def FindDynMatrix(dynamics,xvect):
# Find the length of the vector defining the internal variables
# within dynamics are independent variables:
leng = len(xvect);
for j in range(leng):
vect = dynamics.derivative(xvect[j]);
if j == 0:
mat = vect;
else:
mat=matrix([mat,vect])
#mat = mat.append(vect) # didn't work
return mat
In "FindDynMatrix", symbolic vector that is dependent on a multitude of variables including those within the symbolic vector "xvect". The hope was to "black box" the production of the A matrix for a little controls tool that I am coding up.
However, I can not find a way to get this to work. Help would be appreciated.
PleaseNoCyrillicVariablesMon, 01 Feb 2016 00:56:36 +0100https://ask.sagemath.org/question/32406/Plotting hyperelliptic curves (and the group law)https://ask.sagemath.org/question/9269/plotting-hyperelliptic-curves-and-the-group-law/I am trying to create plots of hyperelliptic curves (over the rationals) using SAGE. Moreover, I want to plot the integral points on these curves (within a certain range, obviously) and illustrate the group law on the Jacobian. In other words, I want to create an image similar to the one used here: [Hyperelliptic curve plot](http://gdtr.wordpress.com/2011/09/26/hyperelliptic-curve-crypto-dcoders-keygenme-2/). Plotting the curve itself is not hard. One may use, say, the following code:
Qx.<x> = QQ[]
f = x^5 + 3
C = HyperellipticCurve(f)
image = plot(C)
image.save('image.png')
I am mainly interested in how to plot integral points on said curve and how to illustrate "addition" of these points (in the sense of addition of the corresponding elements on the Jacobian). Do you know how to do this? Any help would be greatly appreciated.Leonhard MoosbruggerMon, 27 Aug 2012 14:22:35 +0200https://ask.sagemath.org/question/9269/python equivalent of T(x,y)=(x*y,x+y) ?https://ask.sagemath.org/question/7930/python-equivalent-of-txyxyxy/In sage command line, I can write T(x,y) = (x*y,x+y) and can apply T.diff() to compute Jacobian.
But when I write the same in python, it says you can not assign to a function.
Does anyone know what I should write in python for T(x,y)=(x*y,x+y)?
ShuTue, 08 Feb 2011 12:49:59 +0100https://ask.sagemath.org/question/7930/