我需要在有限域F17上繪製橢圓曲線(換句話說,我想在曲線上繪製一些特定的點),但不知何故,我沒有修正它。如何使用matlab繪製有限域上的橢圓曲線
的曲線由以下公式定義:
y^2 = x^3 +x + 1 (mod 17)
我嘗試下面的方法,但它不能正常工作。
對於x = 0:16,情節(X,MOD(SQRT(X^3 + X + 1),16), 'R')」,端
有人可以幫忙嗎?
[更新]
據Nathan和比爾的建議,這裏是一個稍微修改後的版本。
x = 0:18
plot(mod(x,16), mod(sqrt(x.^3+x+1), 16),'ro')
然而,我覺得這個數字是WRONG,例如y不是整數當x = 4。
在你的曲線定義中,你寫'mod 17'並且在你的matlab函數'mod 16'中,哪一個是正確的? – Lucas 2012-02-06 13:32:37
問題在於你使用'sqrt'。 matlab sqrt函數在有限體上不起作用。 – Lucas 2012-02-06 13:47:44
橢圓曲線在有限域上的繪製並沒有什麼意義,它看起來就像隨機散射點。要計算平方根mod是一個素數,請參閱[this](http://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm)算法,這在matlab中不應太難實現。 – 2012-02-07 22:37:58