2016-03-23 32 views
2

私は一度もSageMathを使ったことがありません。私は、SageMath(有限体上の楕円曲線を描く)を得るためのクラッシュコースをインターネットに依存しています。SageMathで楕円曲線をプロットする

@interact 
def f(label='37a', p=tuple(prime_range(1000))): 
try: E = EllipticCurve(label) 
except: 
print "invalid label %s"%label; return 
try: 
show(graphics_array([plot(E,thickness=3),plot(E.change_ring(GF(p)))]),frame=True) 
except Exception, msg: 
print msg 

が不足しているブラケットがあるようですが、私はそれが行くべき場所を知るために経験を持っていない:私はthis codeを使用してい

は、以下の貼り付け。私が取得エラーメッセージは次のとおりです。

Error in lines 1-6 
Traceback (most recent call last): 
    File "/projects/sage/sage-6.10/local/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 905, in execute 
    exec compile(block+'\n', '', 'single') in namespace, locals 
    File "<string>", line 4 
    except: 
     ^
IndentationError: unindent does not match any outer indentation level 
+0

も参照してください。http://ask.sagemath.org/question/32866/elliptic-curve-finite-field/ –

答えて

1

あなたが与えてくれたエラーがexcept:後行以上except:がインデントされてインデントされていないことを示していると思われます。 Pythonはインデントレベルについて多くのことを気にしています。

次のような試みがあります。

@interact 
def f(label='37a', p=tuple(prime_range(1000))): 
    try: 
     E = EllipticCurve(label) 
    except: 
     print "invalid label %s"%label; return 
    try: 
     show(graphics_array([plot(E,thickness=3), plot(E.change_ring(GF(p)))]), frame=True) 
    except Exception, msg: 
     print msg 

脇に:コードブロックとして表示するには、コードの前に4つのスペースを使用する必要があります。詳細については、How do I format My Code Blocks?

+0

まさに私が後に行ったことです、ありがとうございました! – Alice

+0

このコードでプロットされるカーブを変更することはできますか? – Alice

+1

@Alice私はラベルが楕円曲線のクレモーナのラベル付けを参照していると推測しています。ですから、ラベル見出しを関心のある曲線に変更する必要があります。例えば、label = '35a1'か何かを試して、その楕円曲線を拾うことができます。 [私は実際に私の目の前にセージを開いていませんが、それは行く方法のようです] – mixedmath

関連する問題