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