陳曉霞
(1.浙江科技學院 理學院,杭州 310023;2.華中師范大學 國家數字化學習工程技術研究中心, 武漢 430079)
?
基于動態(tài)幾何系統(tǒng)的初等代數表達式計算研究
陳曉霞1,2
(1.浙江科技學院 理學院,杭州 310023;2.華中師范大學 國家數字化學習工程技術研究中心, 武漢 430079)
摘要:解析平面動態(tài)幾何系統(tǒng)中所涉及的幾何圖元對象的代數方程代數,將之表示為幾何對象的代數屬性,利用樹形結構及堆棧方法對含參數的代數表達式進行解析和計算,構建具備含參數的初等代數表達式計算模塊的平面動態(tài)幾何系統(tǒng),可以很好地將平面解析幾何的內容融合進來,從而豐富了平面動態(tài)幾何系統(tǒng)的功能,提高了平面動態(tài)幾何系統(tǒng)的運行效率。
關鍵詞:平面幾何;動態(tài)幾何;平面解析幾何;代數表達式
平面歐氏幾何及其代數化的平面解析幾何一直以來都是中國中學數學學習的重要內容,其中二次曲線的形態(tài)與其代數方程之間的關系,直線與二次曲線間的位置關系與其方程之間的關系等內容,是中學平面幾何中重要的教學內容。學生如果可以通過動態(tài)幾何系統(tǒng)來觀察、模擬、變換二次曲線及直線,從而進行直觀生動的學習,就將對解析幾何內容的掌握帶來很大的幫助。因此,構建包含解析幾何內容的平面動態(tài)幾何系統(tǒng)將使其具備更廣泛的應用。
另外,如果利用代數方法和歐氏幾何的公理體系相結合的方法來構建動態(tài)幾何系統(tǒng),可以提高動態(tài)幾何系統(tǒng)的運行效率,豐富動態(tài)幾何系統(tǒng)功能,增強動態(tài)幾何系統(tǒng)操作的便捷性和直觀性。因此,在構建平面動態(tài)幾何系統(tǒng)時,構建合適的解析幾何模塊是十分必要的。
自20世紀90年代起,幾何畫板(The Geometry’s SketchPad)[1]、超級畫板(Super Smart Platform)[2]、GeoGebra[3]、Carbri Geometry[4]等動態(tài)幾何系統(tǒng)被廣泛應用于數學教學中[5-9],其中由中國著名數學家張景中院士主導開發(fā)的超級畫板系統(tǒng)將解析幾何模塊很好地融入平面動態(tài)幾何系統(tǒng)中,相較于其他動態(tài)幾何系統(tǒng),超級畫板的作圖功能更為豐富、作圖效率更高[10-12]。本研究就超級畫板系統(tǒng)中解析幾何模塊所涉及的代數表達式計算方法進行分析和研究。
利用堆?;蚨鏄涞确椒蓪崿F含參數表達式的計算,詳見文獻[13-16]。這些算法具有一定的普遍適用性,針對平面動態(tài)幾何系統(tǒng)的需求,筆者對這些算法進行一定的修改,從而創(chuàng)建服務于平面解析幾何的含參數代數表達式的計算方法。
在平面動態(tài)幾何系統(tǒng)中創(chuàng)建解析幾何模塊,需在該系統(tǒng)中解決如下問題:
1)幾何圖元對象的代數化及標準化。
2)已知曲線方程,通過計算繪制曲線的圖形。
3)可求解曲線與曲線、曲線與直線之間的交點。
4)用戶輸入含參數的代數表達式,可運算在一定精度范圍內相應參數取值確定時該表達式的浮點型數值。
因此,含參數代數表達式計算在平面動態(tài)幾何系統(tǒng)中應用的核心問題是,幾何圖元對象的代數化及含參數代數表達式的數值計算方法。
1含參數代數表達式的計算在平面動態(tài)幾何系統(tǒng)中的應用
1.1幾何圖元對象的代數化
鑒于上述討論,將代數表達式計算算法應用于平面動態(tài)幾何系統(tǒng),首先需要對平面動態(tài)幾何系統(tǒng)中所涉及的幾何圖元對象進行代數化。幾何圖元對象的代數化是指使用一些用來表示幾何圖元的代數變量來描述幾何圖元對象,稱這些代數變量為幾何圖元對象的代數屬性。由于在解析幾何系統(tǒng)中幾何圖元對象與其代數方程是一一對應的,因此可通過解析幾何圖元對象的代數方程來實現幾何圖元對象的代數化。為實現此代數化過程,在此平面動態(tài)幾何系統(tǒng)中,首先需構造一個獨立的直角坐標系系統(tǒng),稱之為邏輯直角坐標系。在此坐標系下,當用戶需要構造新的幾何對象時,首先根據所構造的幾何圖元的類型獲得其父對象(即其存在的必要條件)的代數屬性,并據此計算該幾何圖元的代數屬性以備構造。
在平面動態(tài)幾何系統(tǒng)中所涉及的幾何圖元對象,包括點、直線、圓(特殊的圓錐曲線)、圓錐曲線、初等函數曲線,其代數屬性分別為:
1)點的代數屬性,在邏輯直角坐標系系統(tǒng)下點的坐標x,y。
2)直線的代數屬性,直線的標準方程ax+by+c=0中的系數a、b、c。
3)圓錐曲線的代數屬性,圓錐曲線的標準方程ax2+bxy+cy2+dx+ey+f=0中的系數a、b、c、d、e。
4)初等函數曲線的代數屬性,如果函數方程為y=f(x),則使用表示f(x)的字符串sy表示其代數屬性;如果函數方程為x=f(y),則使用表示f(y)的字符串sx表示其代數屬性。
以下為常見幾何圖元的代數屬性計算方法。
1)線段代數屬性的計算。線段的2個端點為待構造線段的父對象,其代數屬性計算過程如下:
首先,系統(tǒng)獲得父對象點,稱為point1、point2,并獲得它們的代數屬性,即其坐標x1、y1和x2、y2。
2)以點斜式方程來表示的直線的代數屬性的計算。待構造的直線為過定點已知斜率的直線,已知定點為該直線的父對象,其代數屬性計算過程如下:
首先,系統(tǒng)獲得待構造直線的父對象的代數屬性,表示為x1、y1。
其次,要求用戶通過對話框輸入表示斜率的含參數代數表達式,通過下文所闡述的含參表達式計算方法算得該表達式所對應的數值,使用字母k表示該斜率。
根據直線的點斜式方程y-y1=k(x-x1),標準化方程為kx-y-kx1+y1=0,所以,該線段的代數屬性a、b、c分別為表達式k、-1和k*x1+y1的值。
3)過已知點與已知直線平行的直線的代數屬性的計算。已知點及已知直線為待構造直線的父對象,其代數屬性計算過程如下:
系統(tǒng)獲得父對象點和直線的代數屬性,表示為x0、y0,以及a1、b1和c1,該直線的代數屬性a、b即父直線的代數屬性a1和b1,c為表達式-(a1*x1+b1*y1)的值。
4)已知圓心和圓上一點的圓的代數屬性的計算。已知兩點為待構造圓的父對象,其代數屬性計算過程如下:
首先獲得父對象的代數屬性,表示為x1、y1、x2、y2。
其次,根據公式(x-x1)2+(y-y1)2=(x2-x1)2+(y2-y1)2標準化后的方程中各系數為圓的各代數屬性,其中a=1、b=0、c=1,d、e、f分別為表達式-2*x1,-2*y1和(x1)∧2+(y1)∧2-(x2-x1)∧2-(y2-y1)∧2的值。
1.2含參數的初等代數表達式的數值計算
含參數的初等代數表達式的數值計算包括:表達式解析和表達式數值計算兩部分。
1.2.1表達式解析過程
圖1 表達式解析圖Fig.1 Expression analysis
表達式解析過程如圖1所示。
第一步,將一個表示初等運算的字符串expressionString以“+”或“-”為分隔符分隔為若干“項字符串”itemString。
第二步,將項字符串itemString以“*”或“/”分隔為若干“因子字符串”factorString。
第三步,將itemString分解為“項”item,每個item由一個系數m_nCoeff和一個“因子列表”factorList構成,如果項之間的分隔符為“-”,分隔符后的項的系數乘以-1。
第四步,每個factorString分解為一個因子“factor”,每個因子由該因子所對應的運算類型、所含參數、因子指數等構成,如果因子之間的分隔符為“/”,分隔符后的因子指數乘以-1。
1.2.2表達式數值計算過程
表達式計算過程如圖2所示。
第一步,對item中因子列表中的各個因子factor,根據factor的類型、參數、指數等的不同情況,利用遞歸方法,按照各自對應的計算公式計算因子factor的數值factorValue。
第二步,將item的因子列表factorList中各因子的數值計算結果factorValue相累乘,并將結果與項系數相乘得項item的數值itemValue。
第三步,項與項之間的運算結果相加得到表達式expression的數值expressionValue。
圖2 表達式計算圖Fig.2 Calculation of expression
圖2中,factorValue的計算過程中fun是指運算函數,可由factor的類型m_nType解析而得,包括三角函數、反三角函數、對數運算等基本初等運算。變量型factor的計算過程為:系統(tǒng)通過搜索當前文檔中所包含的變量列表查看待計算的變量是否已經存在,如果不存在,則給其賦值為隨機值,并將其存入變量列表;如果已經存在,則獲取其對應的數值給當前變量。
2實例
基于幾何對象的代數化和含參數的代數表達式解析及計算算法可實現平面動態(tài)幾何系統(tǒng)中,解析幾何模塊功能的融合,例如,如果函數的解析式是一個含參數的初等代數表達式,系統(tǒng)可通過計算在某區(qū)間內以一定的步長變化的自變量的值所對應的函數值,并據此在系統(tǒng)所給定的邏輯坐標系中利用描點法繪制函數圖像;所繪制的函數圖像在平面動態(tài)幾何系統(tǒng)中是以一個幾何對象的形態(tài)出現的,因此,可通過改變函數解析式中除自變量外的其他參數的值,動態(tài)觀察函數圖像的變化情況,便于使用者觀察、學習和研究函數形態(tài),包括函數的單調區(qū)間、函數的極值、間斷點情況等。除此之外,利用幾何對象的代數化和表達式計算系統(tǒng)可提高平面動態(tài)幾何系統(tǒng)中幾何對象的作圖效率,是平面動態(tài)幾何系統(tǒng)中構造作圖方法的重要補充,例如,繪制各類型的交點可歸結為求解方程組問題,再如,過直線外一點作已知直線的平行線(垂線)的方法并不適用尺規(guī)作圖方法來構造平行線,而是通過解析幾何中已知點的坐標及2條直線的方程之間的關系直接求得待作直線的代數屬性,并根據代數屬性獲得該直線的方程表達式,并據此構造直線。
在融合了解析幾何模塊的平面動態(tài)幾何系統(tǒng)中,可實現含參數初等運算表達式的數值計算、函數圖像繪制、各類型交點坐標計算及繪制、點的軌跡繪制等功能。
圖3 表達式exp的計算結果及函數圖像Fig.3 Value of expression exp and image of function y=exp
例2圓與直線的交點的構造
在平面動態(tài)幾何系統(tǒng)中構造一條直線AB和一個圓O,選定這2個幾何對象作為父對象構造交點,在具備代數表達式計算模塊的平面動態(tài)幾何系統(tǒng)中可通過如下過程實現交點的構造。
第一步,獲取2個父對象的代數屬性,其中直線AB的代數屬性表示為a1、b1;圓O的代數屬性表示為a2、b2、c2、d2、e2、f2,其中b2為0。
第三步,針對x1,x2分別計算表達式a1x1+b1和a1x2+b1的值得到y(tǒng)1,y2,(x1,y1)和(x2,y2)即為2個交點的代數屬性。
第四步,在交點的代數屬性的基礎上完成點的構造。
由于父對象的代數屬性會隨著其位置等屬性變化而變化,因此通過上述過程計算而得的交點的代數屬性也隨之變化,從而交點位置也隨父對象的位置變化而變化,包含退化情況,如圖4所示。
圖4 直線與圓的交點變化情況Fig.4 Change of intersection points between straight line and circle
例3構造坐標點P(x,x2),觀察當x在一定范圍內變化時點P的運動軌跡構造方法:在系統(tǒng)中選擇構造坐標點,在所彈出的對話框中輸入x坐標為x,y坐標為y,x拖動參數為x,完成點P的構造;再選擇點P,選擇“跟蹤”功能;拖動點P,觀察發(fā)現點P的運動軌跡為拋物線,如圖5所示。
圖5 坐標點P(x,x2)的坐標計算和軌跡Fig.5 Values of coordinates and locus of point P(x,x2)
3結語
將平面動態(tài)幾何系統(tǒng)中的幾何對象代數化,并設計相應的含參數代數表達式的計算算法,就可以很好地將平面解析幾何模塊融入平面動態(tài)幾何系統(tǒng)中,從而提高幾何圖元的構造效率,提高了系統(tǒng)的操作便捷性和直觀性,豐富了系統(tǒng)的功能。在此基礎上,可進一步研究發(fā)展更復雜形式的表達式計算算法,以及面向三維動態(tài)幾何系統(tǒng)解析幾何模塊。
參考文獻:
[1]JACKIW N. The geometry’s sketchpad[CP/DK]. Berkely: Key Curriculum Press, 1991.
[2]ZHANG J Z, LI C Z. An introduction to logical animation[C]//Computer Algebra and Geometric Algebra with Applications: 6th International Workshop.Berlin Heidelberg: Springer, 2005: 418.
[3]HOHENWARTER J, HOHENWARTER M, LAVICZA Z. Introducing dynamic mathematics software to secondary school teachers: the case of geogebra[J]. Journal of Computers in Mathematics and Science Teaching,2009,28(2):135.
[4]LABORDE J, BELLEMAIR F. Gabri-Geometry II[CP/DK]. Dallas: Texas Instruments, 1993.
[6]IPEK J, ORHAN S, AKBASOGLU R, et al. Math teachers’ geometry learning and teaching with dynamic geometry programs[J]. Global Journal of Information Technology, 2014, 4(2): 44.
[8]萬劍.幾何畫板在初中二次函數教學中的應用研究[D].南昌:南昌大學,2013.
[9]莊振林.幾何畫板在高中解析幾何教學中的應用研究[D].呼和浩特:內蒙古師范大學,2013.
[10]張景中,彭翕成.函數作圖軟件的評價和選擇[J].數學通報,2007,46(8):1.
[11]張景中,江春蓮,彭翕成.基于《超級畫板》開設《動態(tài)幾何》課程的實踐與思考[J].數學教育學報,2008,17(5):1.
[12]張傳軍,楊躍鳴,劉軍明.Z+Z智能教育平臺超級畫板的發(fā)展之我見[J].電腦知識與技術,2014,10(15):3626.
[13]嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,2011:52-54.
[14]何云東,黃昶.復雜表達式解析和計算的研究實現[J].中國科技信息,2009(8):34.
[15]狄光智,楊為民,張雁.通用表達式計算中的關鍵問題研究[J].現代計算機,2009(4):29-31.
[16]張秀深,楊威.一種用于腳本解釋器的表達式計算算法探究[J].山西師大學報(社會科學版),2012,39(增4):194.
Study of elementary algebraic expression calculation based on dynamic geometry system
CHEN Xiaoxia1,2
(1. School of Sciences, Zhejiang University of Science and Technology, Hangzhou 310023, China; 2.National Engineering Research Center for E-Learning, Central China Normal University,Wuhan 430079, China)
Abstract:Based on the algebraic characteristics of the geometry object in the plane dynamic geometry system, we use tree structure and stack method to analyze and calculate the parameters of the algebraic expression, to build a plane dynamic geometry system with the module of algebraic expression calculation with parameter. The plane dynamic geometry system can combine with the analytical geometry very well, which enriches the function and improves the operation efficiency of the plane dynamic geometry system.
Keywords:plane geometry; dynamic geometry; plane analytical geometry;algebraic expression
中圖分類號:O182; TP301.6
文獻標志碼:A
文章編號:1671-8798(2016)01-0001-06
作者簡介:陳曉霞(1978—),女,山西省潞城人,講師,博士研究生,主要從事機器證明、幾何約束求解理論等研究。
收稿日期:2015-10-19
doi:10.3969/j.issn.1671-8798.2016.01.001
浙江科技學院學報,第28卷第1期,2016年2月
Journal of Zhejiang University of Science and Technology
Vol.28 No.1, Feb. 2016