2011年12月12日星期一

Implicit Differentiation

Calculus一直不是自己的興趣所在,自己比較喜歡鑽研Number theory,但Calculus應用範圍廣,不能不學。後來看了一些Calculus introduction的書,如《世界第一簡單微積分》和《3小時讀通微積分 (漫畫版)》等入門,但因為很少機會用到,連Product ruleChain rule都記不了,更不用談cos/sin/tan等derivative的變化。

近日在研究Elliptic curve的過程當中,學了一樣很有用的工具。Elliptic curve是一條如下的equation E:
E : y 2 = x 3 + a x 2 + b x + c

當中的real number solution有無限多,但integer和rational number的solution呢?會不會有無限多個,又如何找到這些solution呢?

先從integer solution開始著手吧,以E1為例:
E 1 : y 2 = x 3 - 17 x

當中solution P(x, y)有(0, 0), (-1, 4), (-1, -4), (-4, 2), (-4, -2)等等,但還有沒有其它呢?辦法一,是用一條rational line,在curve的兩個rational point拉一直線,和curve連接成第三點,以point (-4, 2)和(-1, 4)為例,斜率是(y2 - y1)/(x2 - x1),斜率是2/3,直線的equation是 y = λx + v,λ是斜率2/3,v = y - λx = 14/3。於是在curve畫一直線如下:


藍色和紅色都是同一條equation E1,黃線和curve交义形成三點,分別是(-4, 2), (-1, 4)和要求的第三點(x, y)。只要將黃線equation代入E1便得
2 3 x + 14 3 2 = x 3 - 17 x

用Python simplify後
>>> from sympy.solvers import solve
>>> solve(9*x**3-209*x-4*x**2-196, x)
[-1, -4, 49/9]
>>> 

便得到第三點 x = 49/9, y = 224/27。除此之外,還有另一方法找rational point,在curve上找一點的Tangent line和curve交义,Tangent line就像一個完美的球放在桌上,球只有一點與桌面接觸(理論上),那麼桌面便是這點的tangent。找tangent line便需要到differentiation,但E1有兩個variable,如何differentiate呢?

原來好簡單,不用Partial derivative,只要兩邊每個item同時differentiate如下:
2 y d y d x = d x 3 d x - d dx 17 x
d y d x = 3 x 2 - 17 2 y

用f(x) = sqrt(x3 - 17x)再計一次,便要用Chain rule,麻煩得多,這方法很方便,雖然也不知為何一樣,但這是在研究Elliptic curve中的另一收穫。
>>> import sympy
>>> sympy.var('x y')
(x, y)
>>> y=sympy.sqrt(x**3-17*x)
>>> y.diff(x)
(3*x**2/2 - 17/2)/(x**3 - 17*x)**(1/2)
>>> 

以point (-1, -4)為例,它的tangent line λ=7/4,v=-9/4,所以如下圖黃線:

在右手邊有一點相交,那便是我們要找的rational point。這一點留待另文繼續,此文已算是本博長篇大論了,走筆至此,發現文章內容和標題不盡相符,也罷,又不是寫論文,何幹。

2 則留言:


  1. 你好
    我也喜歡數學
    也把RH當目標!
    我現在十八歲
    臺灣人
    正在讀高三
    希望可以跟您認識一下
    切磋討論數學
    可以嗎?

    謝謝

    回覆刪除
    回覆
    1. 你好,我是香港人,但年紀大你很多,已離開學校多年,很高興和你認識,你可以在右上角G+ add我.

      刪除