一起复习几何(1)
把一個(gè)幾何問(wèn)題轉(zhuǎn)換為可以運(yùn)行的程序,通常需要這樣幾步:
幾何--> 代數(shù)-->算法-->程序
計(jì)算機(jī)并不理解幾何概念,為了讓計(jì)算機(jī)幫助我們求解幾何問(wèn)題,需要如下幾步:首先需要把幾何問(wèn)題轉(zhuǎn)換成用數(shù)字表達(dá)的代數(shù)問(wèn)題,然后根據(jù)幾何的代數(shù)表示設(shè)計(jì)合適的求解算法,最后根據(jù)算法編寫(xiě)程序。這個(gè)過(guò)程貌似很簡(jiǎn)單,其實(shí)每一步都一項(xiàng)極具困難并富于挑戰(zhàn)的任務(wù)。
幾何-->代數(shù)
當(dāng)思考一個(gè)幾何物體時(shí),即使是簡(jiǎn)單的點(diǎn)或線,我們通常在腦海中想一下它們的形狀。為了讓計(jì)算機(jī)能夠處理幾何物體,就需要一個(gè)計(jì)算機(jī)能夠處理它的表達(dá)(representation)形式。例如,一個(gè)三維空間的點(diǎn)(2.5, 0.0, -4.0), 一個(gè)xy坐標(biāo)平面的直線等式 3x-5y+3=0。
一個(gè)幾何物體的表示形式通常并不唯一。以圓為例,它的隱式方程為 x^2 + y^2 = 1,用三角函數(shù)表示的參數(shù)化形式為: x = cos(t); y = sin(t); 0<= t < 360;
有些幾何體甚至需要復(fù)雜的數(shù)據(jù)結(jié)構(gòu)來(lái)表示其所有的細(xì)節(jié),如多面體( Polyhedron)。因此尋找一種好而合適的表達(dá)形式也是極具挑戰(zhàn)。
代數(shù)--> 算法
找到了幾何體的代數(shù)解釋的表達(dá)形式后,下一步就要尋找算法來(lái)處理該表達(dá)式和方程。這個(gè)過(guò)程或難或復(fù)雜,完全取決于需要解決的問(wèn)題。但我們可以有這樣幾種方法:
算法-->程序
算法有了,程序還難實(shí)現(xiàn)嗎? 幾何問(wèn)題太復(fù)雜了 維度復(fù)雜性
空間中的幾何對(duì)象比平面上的幾何對(duì)象更復(fù)雜,這一點(diǎn)毋庸置疑。一方面是由于許多幾何屬性只有在空間上講才有意義,比如空間中一條延Z軸扭曲的曲線;另外一方面空間中可以表示更多的幾何對(duì)象,如曲面。
分析復(fù)雜性
確切的說(shuō)是方程式的復(fù)雜性。例如:
一次、二次、三次、四次、五次多項(xiàng)式。兩個(gè)多項(xiàng)式相除又可以表示為有理多項(xiàng)式(rational Polynomials)
三角函數(shù)
另外僅從方程式我們不能直接看出其幾何形狀。
幾何對(duì)象之間關(guān)系計(jì)算:求交點(diǎn),判斷是否平行/垂直等
組合復(fù)雜性
一個(gè)多項(xiàng)式需要若干個(gè)參數(shù)表示,如:
? Ax2+Bxy+Cy2+Ex+Ey+F=0
? Ax3+Bx2y+Cxy2 +Dy3+Ex2+Fxy+Gy2+Hx+Iy+J=0
隨著多項(xiàng)式次數(shù)的增加,需要的參數(shù)也越來(lái)越多。
浮點(diǎn)數(shù)計(jì)算
計(jì)算機(jī)處理float,double值時(shí),由于其內(nèi)部的有限的精度表示形式(科學(xué)計(jì)數(shù)法)不可避免的會(huì)引入誤差。
而幾何計(jì)算又通常需要進(jìn)行浮點(diǎn)數(shù)運(yùn)算。為了將誤差的影響減少至最低,需要盡量在算法或多項(xiàng)式的表示形式上下工夫。
幾何--> 代數(shù)-->算法-->程序
計(jì)算機(jī)并不理解幾何概念,為了讓計(jì)算機(jī)幫助我們求解幾何問(wèn)題,需要如下幾步:首先需要把幾何問(wèn)題轉(zhuǎn)換成用數(shù)字表達(dá)的代數(shù)問(wèn)題,然后根據(jù)幾何的代數(shù)表示設(shè)計(jì)合適的求解算法,最后根據(jù)算法編寫(xiě)程序。這個(gè)過(guò)程貌似很簡(jiǎn)單,其實(shí)每一步都一項(xiàng)極具困難并富于挑戰(zhàn)的任務(wù)。
幾何-->代數(shù)
當(dāng)思考一個(gè)幾何物體時(shí),即使是簡(jiǎn)單的點(diǎn)或線,我們通常在腦海中想一下它們的形狀。為了讓計(jì)算機(jī)能夠處理幾何物體,就需要一個(gè)計(jì)算機(jī)能夠處理它的表達(dá)(representation)形式。例如,一個(gè)三維空間的點(diǎn)(2.5, 0.0, -4.0), 一個(gè)xy坐標(biāo)平面的直線等式 3x-5y+3=0。
一個(gè)幾何物體的表示形式通常并不唯一。以圓為例,它的隱式方程為 x^2 + y^2 = 1,用三角函數(shù)表示的參數(shù)化形式為: x = cos(t); y = sin(t); 0<= t < 360;
有些幾何體甚至需要復(fù)雜的數(shù)據(jù)結(jié)構(gòu)來(lái)表示其所有的細(xì)節(jié),如多面體( Polyhedron)。因此尋找一種好而合適的表達(dá)形式也是極具挑戰(zhàn)。
代數(shù)--> 算法
找到了幾何體的代數(shù)解釋的表達(dá)形式后,下一步就要尋找算法來(lái)處理該表達(dá)式和方程。這個(gè)過(guò)程或難或復(fù)雜,完全取決于需要解決的問(wèn)題。但我們可以有這樣幾種方法:
- 符號(hào)計(jì)算(symbolic computation)
- 符號(hào)系統(tǒng)可以得到符號(hào)解。例如用符號(hào)系統(tǒng)來(lái)求解二次方程(quadratic equation) Ax2+Bx+C=0; 可以得到它的根的等式:root1 = (-B+SQRT(B2-4*A*C)/(2*A); root2 = (-B-SQRT(B2-4*A*C)/(2*A)。
- 符號(hào)計(jì)算可以給出用一個(gè)或多個(gè)公示表示的閉合形式解(closed-form solutin) - 一個(gè)能直接計(jì)算級(jí)數(shù)和或遞歸結(jié)果的等式。
- 數(shù)值計(jì)算(Numerical Computation)
- 如牛頓迭代法
- 若初始值不合適,有時(shí)候會(huì)導(dǎo)致找不到解。
- 近似( Approximation)
- 為了節(jié)省時(shí)間,可以只求近似解。
算法-->程序
算法有了,程序還難實(shí)現(xiàn)嗎? 幾何問(wèn)題太復(fù)雜了 維度復(fù)雜性
空間中的幾何對(duì)象比平面上的幾何對(duì)象更復(fù)雜,這一點(diǎn)毋庸置疑。一方面是由于許多幾何屬性只有在空間上講才有意義,比如空間中一條延Z軸扭曲的曲線;另外一方面空間中可以表示更多的幾何對(duì)象,如曲面。
分析復(fù)雜性
確切的說(shuō)是方程式的復(fù)雜性。例如:
一次、二次、三次、四次、五次多項(xiàng)式。兩個(gè)多項(xiàng)式相除又可以表示為有理多項(xiàng)式(rational Polynomials)
三角函數(shù)
另外僅從方程式我們不能直接看出其幾何形狀。
幾何對(duì)象之間關(guān)系計(jì)算:求交點(diǎn),判斷是否平行/垂直等
組合復(fù)雜性
一個(gè)多項(xiàng)式需要若干個(gè)參數(shù)表示,如:
? Ax2+Bxy+Cy2+Ex+Ey+F=0
? Ax3+Bx2y+Cxy2 +Dy3+Ex2+Fxy+Gy2+Hx+Iy+J=0
隨著多項(xiàng)式次數(shù)的增加,需要的參數(shù)也越來(lái)越多。
浮點(diǎn)數(shù)計(jì)算
計(jì)算機(jī)處理float,double值時(shí),由于其內(nèi)部的有限的精度表示形式(科學(xué)計(jì)數(shù)法)不可避免的會(huì)引入誤差。
而幾何計(jì)算又通常需要進(jìn)行浮點(diǎn)數(shù)運(yùn)算。為了將誤差的影響減少至最低,需要盡量在算法或多項(xiàng)式的表示形式上下工夫。
轉(zhuǎn)載于:https://www.cnblogs.com/wuwuwu/archive/2008/08/29/6335188.html
總結(jié)
- 上一篇: LamBda学习(一)
- 下一篇: 手把手教你用Pandas读取所有主流数据