免費的動態數學軟體 GeoGebra 入門與數學探索上的應用

賴鵬仁
國立高雄師範大學數學系


Goal: GeoGebra 除了可以輕鬆的讓我們以即時動態反饋圖形的方式模擬探索幾何的問題, 或是幫我們驗證答案, 也可以進行數論、微積分、矩陣等等各方面的探索, 在問題尺度不大又需要即時以圖像視覺呈現探索過程的情況下, GeoGebra 其實優於以寫程式的方式進行探索.

“Talk is cheap. Show me the code.”
― Linus Torvalds

老子第41章
上德若谷
大白若辱
大方無隅
大器晚成
大音希聲
大象無形
道隱無名

拳打千遍, 身法自然

“There’s no shortage of remarkable ideas, what’s missing is the will to execute them.” – Seth Godin
「很棒的點子永遠不會匱乏,然而缺少的是執行點子的意志力。」—賽斯.高汀


因為要在網誌上慢慢呈現本系列文章完整的內容,需要很長的時間,如果有讀者想急著往後面的系列學,完整的作者早期內容,可以直接閱讀作者在高雄師範大學上課講義pdf 檔,下載點在後面參考文件的載點,免費下載:
賴鵬仁, GeoGebra 與動態幾何 20200925 申請優良教材 免費pdf 下載點 link

本系列文章:

  • GeoGebra 與數學探索 1 GeoGebra 入門到進階之整體介紹 1 link

  • GeoGebra 與數學探索 2 GeoGebra 在幾何的探索與動態演示介紹 1 link

  • GeoGebra 與數學探索 3 GeoGebra 在微積分的探索與動態演示 link

  • GeoGebra 與數學探索 4 GeoGebra 在線性代數(矩陣)的探索與動態演示 link

  • GeoGebra 與數學探索 5 GeoGebra 中使用試算表spreadsheet 產生批量動畫演示 link

  • GeoGebra 與數學探索 6 GeoGebra 中使用GGBScript指令 link

  • GeoGebra 與數學探索 7 GeoGebra 中使用JavaScript link


文章目录

  • 免費的動態數學軟體 GeoGebra 入門與數學探索上的應用
  • Abstract:
  • GeoGebra5 使用介面
    • GeoGebra5 使用介面 英文
    • GeoGebra5 使用介面 中文
    • Geogebra6 將輸入欄位與代數區合併
  • GeoGebra 在幾何的探索與動態演示
    • 以 GeoGebra 探索 重心,垂心等五心
    • 以 GeoGebra 探索 the Euler line 歐拉線
    • 以 GeoGebra 探索 Gergonne point, Nagel point 等等.
      • The Gergonne Point
      • The Nagel Point
    • 用 GeoGebra 檢驗觀察布里昂雄定理
    • 以 GeoGebra還原 網路上講解消失的方塊魔術拼圖之原理: 帕利高畢氏切割
    • 以 GeoGebra 探索 廣義畢氏定理
    • 以 GeoGebra 探索幾何分割
    • 以 GeoGebra 探索碎形
    • 以 GeoGebra 探索擺線
    • Ex: 畫出以下六角形形成的螺線
  • 用 GeoGebra 做簡單的驗證:
  • GeoGebra 在微積分的探索與動態演示
    • GeoGebra 製作的數值積分梯形法
    • GeoGebra 製作 Varberg 微積分原文教科書的題目圖
    • GeoGebra 製作兩變數函數求極值說明圖
  • GeoGebra 在線性代數(矩陣)的探索與動態演示
  • GeoGebra 中使用試算表spreadsheet 產生批量動畫演示
  • GeoGebra 中使用 GGBScript 指令
  • GeoGebra 中使用 JavaScript
    • JavaScript 使用方法
  • 想有完整的微積分, 最佳化, 矩陣, 解微分方程等函數指令功能, 還是要搭配較完整的程式語言, 例如 Python+Scipy+SymPy+Geogebra
  • Refrences:

Abstract:

將針對初學者介紹免費的自由軟體 Geogebra 入門. GeoGebra 除了可以輕鬆的讓我們以即時動態反饋圖形的方式模擬探索幾何的問題, 或是幫我們驗證答案, 也可以進行數論、微積分、矩陣等等各方面的探索, 在問題尺度不大又需要即時以圖像視覺呈現探索過程的情況下, GeoGebra 其實優於以寫程式的方式進行探索.

一般會認為寫程式水準較高, 用滑鼠拖拉是較初階的水準, 其實如果使用者是中小學生或是教師, 或是大學新鮮人針對微積分的範圍, 直接以滑鼠拖拉進行即時反饋圖形的方式探索驗證, 會讓使用者較專注在問題的分析上, 而不是耗費在程式碼的除錯上.

對於想要進一步深入使用GeoGebra的人, GeoGebra 也允許使用者以函數式程式設計的風格使用GeoGebra內建的指令 GGBScript, 也可以使用 JavaaScript 寫程式, 所以在GeoGebra 上寫程式探索, 即時動態反饋圖形會呈現此軟體更大的威力.

對於一個不太複雜的數學圖形, 動畫,
GeoGebra 會更適合快速產生數學圖形, 動畫, 快速加上各類註解調整顏色等, 或做一個不太複雜的數學實驗, 可以用滑鼠拖拉設計, 同樣的效果, 用 Python 等程式語言會反而花很多時間,
對於很忙碌的老師想要快速做出一個數學圖形用在數學考卷或是講義上, 用程式語言會緩不濟急, 有割雞用牛刀的味道, 此時用Geogebra會較明智.

  • GeoGebra 一般可以不需要用到程式語言, 可以完全用滑鼠拖拉設計, 類似 GSP,
  • 但是 GeoGebra 也有自己的指令, 叫 GGBScript, 分為微積分類、幾何類、代數類等等, 只有簡單型的 If 指令, 重複性的動作並沒有 for 迴圈的指令, 需要用 Repeat 指令 (Repeat( <Number>, <Scripting Command>, <Scripting Command>, … )), 是函數式程式語言的特色, 但是比 for 還是較不彈性, 所以 GeoGebra 自己的語法 GGBScript 並不能算是一個完整的程式語言.
  • 要使用完整的程式語言, GeoGebra 也可以執行 JavaScript 程式語言 (操控網頁的語言), 如果要使用較彈性的 for 迴圈, 可以
    選擇使用 JavaScript.

GeoGebra5 使用介面

GeoGebra 入門到 GeoGebra 中使用 JavaScript 控制, 可以參考作者寫的教材:
賴鵬仁, GeoGebra 與動態幾何 20200925 申請優良教材 link

GeoGebra5 使用介面 英文

代數區, 繪圖區, 輸入欄位

符號運算區, 試算表區, 第二繪圖區

GeoGebra5 使用介面 中文

最上方為工具列
中間為各大區塊, 可以拖拉移到自己喜歡的位置,
代數區, 繪圖區, 試算表區
最下方為 輸入欄位
Geogebra6 則將輸入欄位與代數區合併


Ref: 臺北市華江高中吳秉鋒老師網頁

Geogebra6 將輸入欄位與代數區合併

GeoGebra 在幾何的探索與動態演示

布里昂雄定理, 蝴蝶定理, 遇到檢驗此種推廣到圓錐曲線上的例子, 用 GeoGebra 就會發現它的好用與威力強大!

例如以 GeoGebra 探索重心,垂心, Gergonne point 等等.

例如以 GeoGebra 探索擺線, 追逐線(=等角螺線=對數螺線), 碎形, 幾何分割等等.

以 GeoGebra 探索 重心,垂心等五心

以 GeoGebra 探索 the Euler line 歐拉線

用 GeoGebra 檢驗觀察 the Euler line 歐拉線
the Euler line 歐拉線
垂心 orthocenter H、外心 the circumcenter O、及重心 the centroid G 會共線,稱為the Euler line of the triangle.

以 GeoGebra 探索 Gergonne point, Nagel point 等等.

The Gergonne Point

The Nagel Point


檢驗:
內心, 重心, Nagel point 會共線

檢驗:
內心到Nagelpoint距離=3⋅內心到重心距離內心到 Nagel\; point距離=3 \cdot 內心到重心距離內心到Nagelpoint距離=3⋅內心到重心距離

內心到Nagelpoint距離內心到重心距離=3\frac{內心到\; Nagel \:point \; 距離}{內心到重心距離}=3 內心到重心距離內心到Nagelpoint距離​=3

內心到Nagel: 內心到重心=3

用 GeoGebra 檢驗觀察布里昂雄定理

例如用 GeoGebra 檢驗觀察 布里昂雄定理
Brianchon’s Theorem 布里昂雄定理
外切於圓之六邊形之兩兩相對頂點連線一定共點.

見下圖,ABCDEF是圓外切六邊形,O是圓心,發現各對面之頂點, 例如 FC, DA, BE連線都穿過G, G是各對面頂點連線之共點。

**Ex: ** 根據射影幾何之性質, 如果定理敘述在圓上, 只牽涉到射影不變之性質, 例如多線共點, 有無相交點, 交比之量等等, 則此定理可以從圓推廣到圓錐曲線, 也就是布里昂雄定理在橢圓、雙曲、拋物線上等也對.
(其他定理:例如 蝴蝶定理)
遇到檢驗此種推廣到圓錐曲線上的例子, 用 GeoGebra 就會發現它的好用與威力強大!

以 GeoGebra還原 網路上講解消失的方塊魔術拼圖之原理: 帕利高畢氏切割

  • 網路上講解消失的方塊魔術拼圖之原理: https://youtu.be/47Jg-56C15Q link

網路上賣的一個拼圖,
同樣的框, 一開始四塊拼滿,
四塊拿開再裝入,
竟然多出一個小方塊的空間!?






以下我們用 GeoGebra 動態實驗 帕利高畢氏定理幾何切割之移動, 讓你豁然開朗!!!

https://www.geogebra.org/m/hkunapvx link


以 GeoGebra 探索 廣義畢氏定理

以 GeoGebra 探索幾何分割

何宗洋 拼圖(六芒星的三種切割)_29-4_33-2_29-6.jpg

以 GeoGebra 探索碎形

用 GeoGebra 的試算表繪製 Koch 雪花曲線

實作速成步驟 (參考自 GeoGebra官網分享作品 m43311 orchiming, 我梳理了10多個小時)

打開 GeoGebra 的試算表
先產生兩點A,B,
在試算表A第一個 row,  A1輸入: {A, B}
在A2(試算表A第二個row) 輸入:Join(Sequence({A1(i),
A1(i) + 1 / 3* (A1(i + 1) - A1(i)),
A1(i) + 1 / 2 *(A1(i + 1) - A1(i)) +
Rotate((A1(i + 1) - A1(i))* 1 / 3 *sqrt(3) / 2, 1.5708),
A1(i + 1) - 1 / 3 *(A1(i + 1) - A1(i)),
A1(i + 1)},
i, 1, Length(A1) - 1))接著
往下拖拉出 A3, A4,A5,,,
接著, 最好選擇在旁邊欄位, 例如在B5欄位輸入:
Sequence[ Segment[ Element[A5,i], Element[A5,i+1] ],
i,1,Length[A5]-1]

教了兩次,發現用IFS(Iterated funciton system 迭代函數系統)的語言,結合GeoGebra 既有的Rotate()旋轉, Dilate()伸縮函數, 可以把上面複雜的(第一眼, 知其然不知其所以然)的迭代公式, 寫成更清楚簡潔的版本:
流程照著做:

# By Prof. P-J Lai MATH NKNU 20230301Koch_用試算表_IFS描述_2022031. 先產生A,B兩點
2. 在試算表 A1 欄位輸入: {A,B}
3. A2 欄位輸入以下,IFS描述之迭代公式:Join(
Sequence(
{A1(i),
Dilate( A1(i + 1) , 1/3, A1(i)  ) ,
Rotate( Dilate( A1(i + 1) , 2/3, A1(i)  )  , 1/3*pi, Dilate( A1(i + 1) , 1/3, A1(i)  ) ),
Dilate( A1(i + 1) , 2/3, A1(i)  ) ,
A1(i + 1)},
i, 1, Length(A1) - 1)
)4. 從A2往下拖拉,例如拖至A5, 就會依迭代公式產生到第5代的點集,5. 在 B5 輸入以下產生相鄰兩點間線段之公式:Sequence[ Segment[ Element[A5,i], Element[A5,i+1] ],
i,1,Length[A5]-1]此B5之內容就是線段集, 就是第5代 Koch curve.
(同時把A2~A5的點集隱藏起來)

就可以輕鬆畫出下圖, 至於每動的細節原理就要讀者自己花時間去了解了:

以 GeoGebra 探索擺線

以上ˋ圖片及三角形輪廓或蛇形輪廓之內擺線 可以參考
https://www.pinterest.com/pin/169307267228761622/ link

我們可以用 GeoGebra 模擬這個繪製的動作
長短擺線

園內擺線

Ex: 畫出以下六角形形成的螺線

用 GeoGebra 做簡單的驗證:

Ref: 朱華傳 付雲皓, 美國數學邀請賽試題解答, ch7, 科學出版, 2013.

Problem9: 1960三位美國數學家證明存在 n,
使得1335+1105+845+275=n5133^5+110^5+84^5+27^5=n^51335+1105+845+275=n5,
推翻了Euler的一個猜想,
求此n
Sol:
用 GeoGebra

GeoGebra 在微積分的探索與動態演示

GeoGebra 在中學數理科到大一微積分相當夠用

GeoGebra 製作的數值積分梯形法

GeoGebra 可以直接以滑鼠拖拉畫圖, 以滑桿功能展示即時動態變化, 也有不少微積分的指令, 例如以下我用 GeoGebra 製作的數值積分梯形法的動態展示, 加上文字說明, 按鈕等, 同樣的效果, 如果僅是靜態圖, 用 Python+Matplotlib 的 pyplot畫, 恐怕要花上兩三倍的時間.

GeoGebra 製作 Varberg 微積分原文教科書的題目圖

例如以下是我用 GeoGebra 製作的 微積分考卷的圖, 要呈現 Varberg微積分那本原文教科書的某題之圖, 加上自己的設計, 用 GeoGebra 製作 3D 函數圖也很輕鬆:

GeoGebra 製作兩變數函數求極值說明圖

以下是用 GeoGebra 製作的 兩變數函數 f(x,y)=4+xy−x2−y2f(x,y)=4+xy-x^2-y^2f(x,y)=4+xy−x2−y2 侷限在單位圓上求極值, 的說明圖:

同樣的效果, 如果僅是靜態圖, 用 pyplot, 恐怕要手忙腳亂一陣子, 3D 可能還要動用到MayaView等, 如果是動畫, 還得查一下 Tkinter 的指令等.

GeoGebra 在線性代數(矩陣)的探索與動態演示

GeoGebra 中使用試算表spreadsheet 產生批量動畫演示

GeoGebra 中使用 GGBScript 指令

GeoGebra 中使用 JavaScript

要使用完整的程式語言, GeoGebra 也可以執行 JavaScript 程式語言 (操控網頁的語言), 如果要使用較彈性的 for 迴圈, 可以 選擇使用 JavaScript.
這方面較初步完整的介紹可以參考博主的講義:
賴鵬仁, GeoGebra 與動態幾何 20200925 申請優良教材 免費pdf 下載點 link

JavaScript 使用方法

先點選隨便一個物件(物件就是 GGB裡所有的東東例如, 畫出的一個圓, 一個按鈕等), 按右鍵打開物件 的屬性\程式, 選擇程式種類為 JavaScript, 輸入程式碼, 按確定, 對話窗關掉, 就可以執行
例如以下是在屬性\程式 欄位輸入 試除法檢測因數 的JavaScript程式碼

想有完整的微積分, 最佳化, 矩陣, 解微分方程等函數指令功能, 還是要搭配較完整的程式語言, 例如 Python+Scipy+SymPy+Geogebra

另一方面, 如果完全用 GeoGebra 算微積分, 因為 GeGebra 主力是動態幾何與基礎數學(特別是中小學), 會覺得指令不夠, 要想有完整的微積分, 最佳化, 矩陣, 解微分方程等函數, 還是要搭配依賴較完整的程式語言, 例如 Python+Scipy+SymPy, 或 Matlab, Maple, Mathematica , 或 R, Maxima 等.

所以我自己的建議是可以兩方搭配一起用, 當然如果是 GeGebra 搭配 Python+Scipy+SymPy,學習的時間, 以我本人的經驗, 教師以課餘瑣碎的時間邊教邊摸索自學, 約需2~3年的時間(GeoGebra只需2,3個月), 但是, 作者觀察本校師範院校教出的學生, 尤其是我自己教過的同學進入各中小學教書, 如果不肯把握時間加緊自學, 過了10年, 發現這個學生還是不會駕馭軟體協助自己教學與研究, 只能羨慕自己的同事, 輕易嫻熟的操控軟體做出精美的數學教材, 電腦這樣的東西, 花時間敲指令下去就有收穫, 如果用看的用想的, 永遠只能羨慕別人.

Refrences:

  • 賴鵬仁, GeoGebra 與動態幾何 20200925 申請優良教材 免費pdf 下載點 link

  • 賴鵬仁, 數學文書處理 1 link

  • 賴鵬仁, 用免費的電腦資源協助數學的教學,學習與探索_復華中學教師營_中山大學應數系高中數學人才班_2021, https://blog.csdn.net/m0_47985483/article/details/113790840 link

  • GeoGebra 官網: https://www.geogebra.org/ link

  • intro-en_4_2_簡體中譯前半段_2015_103-GeoGebra-使用手冊之出處_有tangram, Geogebra 官網 之 intro-en_4_2.pdf 之前半段, 由志工翻譯成中文, 免費pdf 下載點 link

  • GeoGebra 指令完整列表 DivisorsList等等 基隆女中上課教材1030319: 免費pdf 下載點 link

  • geogebra与matlab,浅谈Geogebra在大学数学教学中的应用 link

  • 網路上講解消失的方塊魔術拼圖之原理: https://youtu.be/47Jg-56C15Q link

GeoGebra 與數學探索 1 GeoGebra 入門到進階之整體介紹相关推荐

  1. Python程式與數據資料分析1

    "Talk is cheap. Show me the code." ― Linus Torvalds 老子第41章 上德若谷 大白若辱 大方無隅 大器晚成 大音希聲 大象無形 道 ...

  2. 用免費的電腦資源協助數學的教學,學習與探索_復華中學教師營_中山大學應數系高中數學人才班_2021

    "Talk is cheap. Show me the code." ― Linus Torvalds 摘要: 直到, 在學習 R 語言的過程, 才發現有 Markdown 這種文 ...

  3. pythonfor循环功能手工皂_裘.波勒《幫孩子找到自信的成長型數學思維:學好數學不必靠天賦,史丹佛大學實證研究、讓孩子潛力大爆發的關鍵方法》臉譜...

    幫孩子找到自信的成長型數學思維:學好數學不必靠天賦,史丹佛大學實證研究.讓孩子潛力大爆發的關鍵方法 MATHEMATICAL MINDSETS: Unleashing Students' Potent ...

  4. 從零開始學 ReactJS:最完整的 React 生態系入門教程

    转自:https://github.com/kdchang/reactjs101 從零開始學 ReactJS(ReactJS 101)是一本希望讓初學者一看就懂的 ReactJS 中文入門教學書,由淺 ...

  5. 從turtle海龜動畫 學習 Python - 高中彈性課程系列 9 Python 物件導向介紹

    "Talk is cheap. Show me the code." ― Linus Torvalds 老子第41章 上德若谷 大白若辱 大方無隅 大器晚成 大音希聲 大象無形 道 ...

  6. Hibernate 3 入門

    Hibernate 3 入門 台湾 良葛格  ,比较详细,按照开发步骤讲解的Hibernate学习资料,个人觉得比那本中文版的Hibernate参考手册要有可操作性的多.地址:http://www.j ...

  7. 數學文書處理 5 Geogebra 與 Latex 探索呈現109教甄

    "Talk is cheap. Show me the code." ― Linus Torvalds 老子第41章 上德若谷 大白若辱 大方無隅 大器晚成 大音希聲 大象無形 道 ...

  8. Python 與數據資料分析2-Matplotlib.pyplot入門

    "Talk is cheap. Show me the code." ― Linus Torvalds 老子第41章 上德若谷 大白若辱 大方無隅 大器晚成 大音希聲 大象無形 道 ...

  9. (原創) Verilog入門書推薦2:數位系統實習 Quartus II (SOC) (Verilog)

    Abstract 之前曾經推薦過一本Verilog的薄書,這次再推薦一本適合FPGA與Quartus II的Verilog入門書籍. Intrduction 作者:陸自強 出版社:儒林圖書公司 語言: ...

最新文章

  1. html 省份,城市 选择器附效果图
  2. STL之七:STL各种容器的使用时机详解
  3. android纯白背景加灰,Android背景颜色设置为灰色而不是@android:颜色/白色
  4. Android实现顶层全局窗口,不依赖于Activity的Android全局悬浮窗的实现
  5. 高德最佳实践:Serverless规模化落地有哪些价值?
  6. c语言调用linux脚本,C语言执行shellcode的五种方法
  7. net core WebApi——使用xUnits来实现单元测试
  8. python之数据库连接
  9. 不创建 sequence 自增字段
  10. mysql cluster proxy_GitHub - freedaxin/maya: a mysql cluster proxy powered by node.js
  11. git修改文件名大小写的方法。
  12. 数据库---查询操作
  13. 8月的最后一天,随意漫笔
  14. 百度地图 android SDKv2.2.0
  15. windbg使用教程: 具体实例
  16. 学生宿舍管理系统java课设_java编写的学生宿舍管理系统
  17. 计算机初级培训 ppt,《计算机初级培训》PPT课件
  18. android表格布局的属性,android:TableLayout表格布局详解
  19. 如何利用PS 更改图像背景颜色
  20. Python Pandas实现简单Excel数据表合并

热门文章

  1. 【产业互联网周报】国家鼓励加大“新基建”建设,全国31省份推出40万亿投资蓝图...
  2. 28335学习之《模数转换器ADC》
  3. 手机关机后还会有行程记录吗
  4. Linux中出现libc.so.6(GLIBC_2.14)(64bit) is needed by...的解决办法
  5. 谈谈对刻意练习的理解
  6. java算法题(买飞机票)
  7. recast SoloMesh生成过程详解
  8. stm32cubemx打开头文件路径错误_prt文件右键打开方式没有NX软件的解决方案
  9. 神武——梦幻经济模式
  10. QtQuick UI 问答