fc2ブログ

Maple で困ったこと

関西学院大学理工学部数理科学科では、数学ソフトウエア Maple を用いた数式処理演習 I, II という授業を開講している。毎年 Maple のバージョンが変わり、数年に一度コンピューターがリプレイスされると、前年まで実行できていた内容がうまく動かなくなることがしばしば起こり、悩まされている。バージョンアップによる機能拡張の恩恵を受けることはほとんどないが、変更により不利益を受けることは多々ある。

今学期の問題点の主なものは以下の通り(Maple 18):
animate と animatecurve のフレーム数が一致しない形に変更されたので、フレーム数を指定しなければいけなくなった。これは妥当な仕様変更の範囲かも知れないが、display コマンドで複数のアニメーションを同時に表示すると、図形が切れてしまう。表示範囲を指定すれば解決するが、以前のバージョンではこういう不具合はなく、display コマンドで表示する各オブジェクトの xy 座標の範囲をカバーするのは当然のことで、バグといえる変更である。

Math モードで ) と ( を続けて入力すると勝手に ) と ( の間にスペースが挿入される。Maple の Math モードでは Mathematica を真似たのか、スペースを空けると掛け算を意味するようになっているのだが、Maple 18 から勝手にスペースが挿入される仕様になって、従来のコードが、いちいち手動でスペースを削除しないと正常に動かなくなった。 ) と ( が続くケースは間に掛け算 * が入る場合以外ないと Maple の開発者が判断しての変更だと思うが、本当にそうなのか。

Maple や Mathematica のような高額な商用ソフトウエアの開発・販売を維持するのも大変だろうと思うし、頑張って欲しいとは思うが、自分が個人ユーザーなら保守料を払ってバージョンアップの危険を冒す気にはならないし、サイトライセンスを持っている教育機関のユーザーとしても、古い安定バージョンで数年間固定して運用するなどの対応を考えないとやってられないというのが正直な印象である。学生に対して、コンピューターを使うことのメリットを強調したいのに、このような事態を現場で招いて学生に否定的な印象を与えかねない事態を招いているのは、勿論、私の準備不足が原因であり、よきにつけ悪しきにつけ OS やソフトウエアのバージョンアップによる変化はあるのだから、トラブルが起こらないよう事前にテストして教材をアップデートしていかなければいけないのである。
スポンサーサイト



Maple の奇妙な仕様

今年度も関西学院大学理工学部数理科学科の2年生向けにMapleを用いた演習を担当している。

Maple の入力形式には「テキスト」と「数学 (2D Math)」の2種類があるのだが、授業ではデフォルトの「数学」を用いている。掛け算を表す * の入力を忘れる学生が多く毎年苦労する。 * を省略してもエラーは出ず、(1) 省略しても Maple が正しく理解してくれる場合 (2) 省略すると違う結果になる場合がある。

(1) のケースは、たとえば 2x と入力するとMapleは 2 と x の積と理解してくれる。(2) のケースは、たとえば x(1-x) と入力すると Maple は後ろの (1-x) を無視して、x として理解する。たとえば、plot(x(1-x),x=0..1); を実行すると、2次関数のグラフではなく、直線が描かれる。

上のような経験をすると、掛け算の * をつけないといけないということが学生たちに身につかず、毎年困惑している。長年に渡ってずっとこうなので、我々の立場では不具合だが、製造元の立場では仕様だろうからどうしょうもない。研究で使う際にも気をつけなければならない。

2つの波紋の干渉

wave2.jpg

水面に2つの石を投げ込んだときの波紋の広がりを Maple の densityplot 関数を使って描いてみた。灰色(波の節に対応)に注目すると双曲線群が見えてくる。

正方形の線形変換

square2013bm.jpg


春学期の定期試験も終わり、学生たちは夏休み中である。数式処理演習I(関西学院大学理工学部数理科学科2年生対象)の中で、平面の線形変換の Maple による図示を扱い、定期試験でも線形変換を幾何学的に理解しているかを問うた。

上の図は講義のレポート課題の採点対象外のおまけである。Maple の plottools パッケージの rotate と scale を使って、正方形の辺上に頂点を持つ正方形を対角線の交点を中心に回転と相似縮小により順次作って図示する問題。レポート課題が物足りない学生は取り組んでくれたようだ。(問題では、白黒に色を塗ることまで求めておらず、線画を描いてもらえばよい。) 上の図を作った Maple プログラムは以下のとおり:

with(plottools):
with(plots):
alpha := (1/20)*Pi:
r := 1/(cos(alpha)+sin(alpha)):
P := [[-1, -1], [-1, 1], [1, 1], [1, -1], [-1, -1]]:
A[1] := polygon(P, color = "Black"):
f :=x -> rotate(scale(x, r, r), alpha):
A[2] := f(polygon(P, color = white)):
N := 30:
for i from 3 to N do A[i] := (f@f)(A[i-2]) end do:
B := [seq(A[N-i], i = 0 .. N-1)]:
display(B, axes=none);

固有ベクトル

ship_ev2.gif

\(\left(\begin{array}{cc}1 & 1 \\ 2 & 0\end{array}\right)\) による線形変換で赤い船を写すと青い船になるところまでは先週の数式処理演習 I (関西学院大学理工学部数理科学科2年生対象)の中でやってもらった。今日の演習では,LinearAlgebra(線形代数)パッケージのを紹介し,固有値・固有ベクトルの求め方をやった。線形代数で既習の固有値・固有ベクトルの定義についても復習した。(手でも容易に計算できるが)例題として,上の行列の固有値・固有ベクトルを求めてもらった。固有値は,\(-1\), \(2\),固有ベクトルはそれぞれ \((-\frac12,1)\), \((1,1)\) である。

そこで,提出用の設問として,「原点を始点として,写す前の船(赤)を形作る点(赤丸)を終点とするベクトルで固有ベクトルになっているものを図示せよ。固有ベクトルになっていることが図から読み取れるか?」という問題を出題した。

固有ベクトルのゼロでない定数倍も固有ベクトルということも復習しておいたのだが,学生諸君にとっては,何を聞かれているかわからない等,こちらが思うほど正答への道は平坦ではなかったようだ。帆のてっぺんとか、見やすい場所にするべきだったか? 先週かなり失敗したのに比べれば,今週はまだよかった方ではある。


プロフィール

示野信一

Author:示野信一
関西学院大学理工学部数理科学科
home

最新記事
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
QRコード
QR