有理曲線的構造

2021-09-14 06:41:24 字數 3974 閱讀 1266

當我生活在一條多項式曲線 $p(t)$ 構造的空間裡,要讓我感受到這個空間是彎曲的,需要給我乙個測量工具,讓我能夠測量這個空間裡任意兩個 $t$ 值 $t_a$ 與 $t_b$ 對應的兩個點 $p_a$、$p_b$ 之間的距離,即 $d(p_a, p_b)$。為了便於描述,我給 $t$ 取了個名字,叫時間。

假設這個空間是平直的,我拿著始終朝乙個方向前進,那麼在任何一段時間 $\delta t = t_b - t_a$ 裡,我走過的距離應該是相等的。我將這種運動稱為勻速直線運動。

我開始做這個實驗,足跡幾乎踏遍了整個世界。結果讓我很吃驚,在相同的 $\delta t$ 裡,經常性地出現走過的距離不相等的情況。在你看來,這是個很簡單的現象,因為隨著曲線的彎曲,相同的 $\delta t$ 對應的曲線弧長不盡相同,在曲率較大的區域,弧長會比平直區域增大很多。然而,這個現象卻足以讓我懷疑人生了。

如果我有你們的那個世界裡的愛因斯坦的頭腦,我一定會認為我的空間在膨脹或收縮,時間變快了或變慢了……然而在你看來,我所謂的時間變快或變慢,只是空間彎曲給我造成的一種錯覺。

我一直以為自己是勻速運動,而在你看來,我時而加速,時而減速……否則你無法解釋,為什麼我在同樣的 $\delta t$ 裡走過的長度不相等。在我看來,這其實是你的錯覺,是我的時間變快或變慢給你造成了我的行走過程中存在著加速與減速。

看來,我們都要時不時地懷疑一下自己的人生了。

有一種曲線,叫做圓。從理論上說,我在這樣的曲線裡行走,感受應當與在一條直線裡行走一樣。

不過,在我看來,這個理論是無法成立的。如果是乙個整圓,那麼我在向乙個方向行走的過程,可以通過是否能夠回到起點來判斷。如果是乙個半圓,那麼從理論上來說,我的確會誤認為它是直線。然而,這種事不可能會發生,因為多項式曲線永遠無法精確地表示圓。

現在假設二維空間中有三個點 $p_0 = (-1, 0)$、$p_1 = (0, 1)$、$p_2 = (1, 0)$。顯然,這三個點位於單位圓上,確切的說是半個單位圓。假設這三個點對應的 $t$ 值分別為 -1、0、1,那麼使用 neville 演算法對這三個點進行插值,結果得到的不是半圓,而是弧長比半圓要小一些的二次曲線——拋物線,如下圖所示:

由於 pov-ray 僅能渲染三維圖形,因此為了繪製這條曲線,我在做曲線插值時,為這三個點進行了公升維變換,即給它們增加了乙個維度,將它們變成 $p_0 = (-1, 0, 0)$、$p_1 = (0, 1, 0)$、$p_2 = (1, 0, 0)$。

你認真思考了一下為什麼我會走這樣的路徑,很快你會發現,是我走的太快了。當我以恆定的「光速」在二次的曲線空間中行走時,這就是我走出來的最短路徑。怪我咯!走得太快也有錯嗎?

你需要想出一種辦法來限制我的速度,讓我在某些控制點處的速度能夠變得慢一些。然而,你有能力給我製造曲線空間,卻沒有能力控制我的速度。於是,你只能故伎重演,給我製造了乙個新的曲線空間,讓我在這個空間裡以光的速度奔跑,而我在原曲線所在的空間裡投下的影子則時而快時而慢地歡快奔跑。

新的曲線所在的空間,其維度必定大於二維(不要忘記,上文是在二維空間裡討論曲線插值問題)。這是因為,在二維空間裡,過三個點有且僅有一條二次插值曲線,企圖不增加空間維度,而在原空間中改變我的影子的速度,是徒勞的。

重新來看上述的三個點,$p_0 = (-1, 0)$、$p_1 = (0, 1)$、$p_2 = (1, 0)$,它們到原點的距離都是 1。這是因為它們的座標要符合單位圓的定義,即 $x^2 + y^2 = 1$。然而這個定義只是描述了兩個正交的一維平直空間的關係,而未能描述這分別位於兩個空間中的點 x 與 y 的運動。要描述運動,需要時間。經過一番思索,你發現可以像下面這樣給出單位圓定義的等價描述:

$$ \begin x(t) & = \frac \\ y(t) & = \frac \end $$

這樣,當 $t$ 發生變化時,兩個一維點的運動軌跡,在二維空間裡便「合成」了你所以為的半圓。

這時,你發現,這兩個一維點的運動軌跡方程的右側的分式,分母是相同的,都是 $1+t^2$。如果移走這個分母,那麼剩下的分子便形成了單項式與多項式——這是我們都喜歡的。

移走分母的辦法很簡單,方程兩邊都乘以分母,結果就得到了

$$ \begin (1 + t^2)x(t) & = 2t \\ (1 + t^2)y(t) & = 1-t^2 \\ \end $$

但是左邊綁著這麼乙個東西也不是事,乾脆就把它割下來,作為 $z(t)$,於是就得到了

$$ \begin x(t) & = 2t \\ y(t) & = 1-t^2 \\ z(t) & = 1 + t^2 \end $$

你發現,這樣做不僅成功地將二維點變成了三維點,而且只要將 $x(t)$ 與 $y(t)$ 分別除以 $z(t)$,就可以重新得到原來的 $x(t)$ 與 $y(t)$,類似於將乙個三維點投影到了二維空間,而且恰好落在半圓上。

你發現,這樣做不僅成功地將二維點變成了三維點,而且只要將 $x(t)$ 與 $y(t)$ 分別除以 $z(t)$,就可以重新得到原來的 $x(t)$ 與 $y(t)$,類似於將乙個三維點投影到了二維空間,而且恰好落在半圓上。

你對我說,這樣做是不是很神奇?我無語,因為在我看來,一切都沒變,它們都是單項式或多項式曲線。你覺得這就是神奇之處,一些看上去使用多項式無法精確表示的曲線,卻可以在乙個維度更高的空間裡形成一條多項式曲線。

你用上述手法,分別用 -1、0、1 作為 $p_0 = (-1, 0)$、$p_1 = (0, 1)$、$p_2 = (1, 0)$ 對應的 $t$ 值,便可以將著三個點變換為三維空間中的點,即 $p'_0 = (-2, 0, 2)$、$p'_1 = (0, 1, 1)$、$p'_2 = (2, 0, 2)$。

現在,假設你只是生活在二維空間中的生物,第三個維度對你而言,只是你想象出來的乙個維度,它在你的世界裡沒有任何物理意義,也就是說,這個 $z(t)$ 的量綱與 $x(t)$ 和 $x(t)$ 毫無關係,而它又好像是你的這個世界裡乙個固有屬性。於是,你給它取了個名字,叫做質量,用符號 $m$ 來表示它,又將帶質量的點稱為質點,用 $(x, y, m)$ 來表示。

每個維度的人都有著在更高維度空間裡的人看來很可笑的思維侷限。

現在,你決定先不考慮質量的本質究竟是什麼這個問題了,你想嘗試的是,對 $t$ 直分別為 -1、0、1 的 $p'_0 = (-2, 0, 2)$、$p'_1 = (0, 1, 1)$、$p'_2 = (2, 0, 2)$ 使用 neville 演算法進行 2 次多項式曲線插值,結果可以得到

將上述曲線投影到二維空間——曲線上所有點的各維座標除以質量(第三維座標),就可以得到半圓:

實際上得到的是位於 z = 1 平面上的半圓。因為 $(x, y, m)$ 的各維座標除以質量,得到的是 $(\frac, \frac, 1)$,也就是質量為 1 的點。

很魔性,對吧?

想不想知道這兩條曲線的關係?看下面這張圖:

上面那條曲線,便是三維空間中的一條拋物線,下面那條曲線便是那條拋物線在 $z = 1$ 平面上的投影——半圓。最下面的那個點是原點 $o(0,0,0)$。藍色的線是投影線。這實際上便是所謂的投射投影,原點為滅點。但是,你們的世界裡,有一些人給它起了個更令人敬畏的名字,即奇點,並認為你們的整個宇宙是從這個點**出來的,而且這個**的過程還在繼續……更可怕的是,你們認為這個點的質量無限大。

像圓、橢圓、雙曲線之類的曲線被稱為有理曲線——不是因為它們很有理,而是講究理性的古人發現了它們。要用多項式曲線精確表示有理曲線,我們需要構造三個空間。多項式曲線所在的空間叫做仿射空間。有質點的那個空間叫格拉斯曼空間。有理曲線所在的空間叫射影空間。

關於這三個空間的關係,以後有時間我會再寫一篇文章。

ks 曲線 ROC曲線與KS曲線的理解

roc曲線 roc曲線是評判乙個模型好壞的標準,有兩個值要知道,fpr 假正率 和tpr 真正率 roc曲線就是以這兩個值為座標軸畫的。比如邏輯回歸得到的結果是概率,那麼就要取閾值來劃分正負,這時候,每劃乙個閾值,就會產生一組fpr和tpr的值,然後把這組值畫成座標軸上的乙個點,這樣,當選取多組閾值...

有理分式的積分

形如 frac,frac 的分式。由代數學基本定理知,任何有理分式 frac 可以寫成乙個多項式和有限多個最簡有理分式的線性組合,其中最簡有理分式的分母是 q x 的因式。試求出 a 滿足 frac frac fracq 1 x 兩邊乘上 x c m 帶入 x c,得 a frac frac fra...

C C 類 構造與析構函式 有理數運算例項

c 實驗 及學習筆記 五 你好!這是乙個高程實驗課的 記錄及學習筆記。我將記錄一些重要的知識點 易錯點。但是作為大學生,水平很低,敬請指點教導 優化 首先我們來看一下問題 這次的問題乍一看有些雲裡霧裡,讓人不知所云。我們索性把第二問忽略,只看第一問。設計乙個有理數類,表示成分數,進行兩個有理數的加減...