理系ジン

しばらくPythonに力を入れる予定です。

GeoGebraについて

概要

GeoGebraは、リンツ大学のMarkus Hohenwarter教授を中心とするグループによりJavaで開発され、GPLで無料であり、Chrome App、WindowsMacLinuxWindowsアプリ、iPadAndroidと多くの環境で動作します。今回はMacで確認しました。

GeoGebraは、GUIで簡単に操作でき、数式のグラフを描画でき、スライダーによりパラメータを変更して動きを見る事ができます。散布図等の簡単な統計処理の機能があり、バージョン5からは3Dグラフや高度な統計にも対応するようになりました。因数分解微分積分などの数式処理機能もあります。

インストール

GeoGebraのDownloadsのページから簡単にインストールできます。Macの場合は、(バージョン5は)App Storeからインストールします。

学習方法

次の順番でGeoGebraの文書を読むと使い方が分かると思います。

ウォークスルーの節では、GeoGebra Quickstart for Desktop (pdf)のExample 3を単純化した例で一通りの流れを説明します。

ファイル出力

GeoGebraは、メニューから[ファイル]>[保存]または[名前を付けて保存...]で GeoGebraが扱うggbファイルで保存できます。

メニューから[ファイル]>[エクスポート]を選択することで、次の形式で保存できます。

  • 動的なワークシートをウェブページとして(html)
  • グラフィックスビューを画像として(png/pdf/eps/svg/emf)
  • グラフィックスビューをGIFアニメーションとして
  • グラフィックスビューをクリップボード
  • グラフィックスビューをPSTriksとして
  • グラフィックスビューをPGF/TikZとして
  • グラフィックスビューをAsymptoteとして

「動的なワークシートをウェブページとして(html)」は、Java Appletを含むHTML形式のファイルでChrome App版同様の操作をおこなえるものを、GeoGebraTube(要登録)に公開して利用してもらう事ができます。

理系ジンが確認したところ、保存やエクスポートではたまに問題が起きたりします。

ウォークスルー

GeoGebra Quickstart for Desktop (pdf)のExample 3を単純にした例で、ウォークスルーの解説をおこないます。

画面

GeoGebraを起動すると次のような画面になっています。 f:id:rikeizine:20141016134358p:plain

上端が、[メニュー]で、保存やエクスポートやGeoGebraTubeへのサインイン等できます。

ウィンドウの上部に、[ツールバー]があります。[ツールバー]をクリックすると5つ程の詳細な機能も呼び出せ、それらでグラフ関連の殆どの機能を呼び出せます。

ウィンドウの右上に、[元に戻す]、[やり直し]、[ヘルプ]、[プレファレンス]ボタンがあります。

ウィンドウの右端に、小さい三角形のボタンがあり[パースペクティブサイドバー]を開閉します。[パースペクティブサイドバー]では、デフォルトの[数式&グラフィックス][幾何][Spreadsheet][CAS][3D Graphics][Probability]を選択でき、メイン画面の内容を切り替えられます。

[パースペクティブサイドバー]の選択により、メイン画面に、[数式ビュー][グラフィックスビュー][入力][表計算][CAS][グラフィックスビュー3D][統計のグラフ]が表示されます。

[入力]に数式や点などを入力すると、それが[数式ビュー]に表示され、[グラフィックスビュー]や[グラフィックスビュー3D]にグラフなどが描画されます。[表計算]や[CAS]は、[入力]がデータや複数の数式に対応したようなものです。

例の作成

以下のような手順で操作すると、次のようなGIFアニメーションの動くグラフを作成できます。 f:id:rikeizine:20141015195210g:plain

複数の数式を入力するので、[パースペクティブサイドバー]で[CAS]を選びます。

[CAS]の1番目にf(x):=x^2-2x+2と入力します。

[スライダー]ボタンf:id:rikeizine:20141016143322p:plainを選択して、[グラフィックスビュー]の適当な場所をクリックして、[スライダー]を配置します。

[スライダー]の[プリファレンス]ウィンドウの、[スライダー]タブで[最小]を-1、[最大]を1、[アニメーション]の[反復]を[振動]に設定し、[基本]タブで、[アニメーション オン]に[チェック]します。 f:id:rikeizine:20141016144458p:plain

[CAS]の2番目に、g(x):=a*x+1と入力し、[CAS]の3番目に、h(x):=f(x)-g(x)と入力します。

[2つのオブジェクトの交点]ボタンを選択し、グラフィックスビューのf(x)とg(x)のグラフをクリックし交点を表示します。

f:id:rikeizine:20141016145102p:plain

もう一度、[2つのオブジェクトの交点]ボタンを選択し、グラフィックスビューのh(x)とx軸のグラフをクリックし交点を表示します。

これで完成です。動作を眺めていると、f(x)とg(x)の交点と、h(x)とx軸の交点が同時にできていると気が付きます。

メニューの[ファイル]>[エクスポート]>[グラフィックスビューをGIFアニメーションとして]することにより、GIFアニメーションとして保存できます。

グラフィックスビュー3Dの例

GeoGebra Quickstart for Desktop (pdf)のExample 5の3DのグラフィックスをGeoGebraTubeにエクスポートすると次のようになります。色々操作できます。

理系ジンの意見

GeoGebraは多くの環境で利用でき、グラフの見た目も奇麗で多機能です。

特に、ファイルの保存などで、正常動作する場合もあればしない場合もあります。プログラミング機能は再帰ができないなど限られています。

これまで調べた、TeXのTikZ、GeoGebra、gnuplotMaxima、Rは用途に応じて試行錯誤しながら利用しようと思います。例えば、物理の記事にはMaximaを主に使うかもしれません。

他にも、PythonJavaScriptのライブラリ等ありますが、個性的だったり複雑だったり、外部サーバーやCDNが必要になる場合が多いようなので利用しない予定です。

次回の予定

話題が変わり、HTML5アプリなどを置くサーバーを検討します。

参考資料