第5回 表計算とグラフ
まとめ
統合ソフト「クラリスワークス」の表計算機能を使い、ロジステック写像のシミュレーションを例に、表計算ソフトの使い方を学ぶ。
マニュアルにはコマンドの説明が羅列されているが、あまり個々のコマンドの細かい操作法を覚え込むよりも、簡単な応用例を作って練習するほうが、使い方が自然と身に付いてくる。
学習する主な項目は次の通り:
表計算の基礎
表計算ソフト(スプレッドシート)では、パソコンの初期の頃から「Visicalc」や「マルチプラン」などがワープロとならぶ代表的アプリケーションとして利用されてきた。なかでもロータス社の「1ー2ー3」は、パソコンのグローバルな普及に貢献したアプリケーションソフトとして著名である。現在は専用ソフトとしてマイクロソフトの「Excel」、Infomix社の「Wingz」などが代表的であるが、「クラリスワークス」や「MicrosoftWorks」などの統合ソフトの表計算機能も充実しているので、ほとんどの場合これで十分間に合う。その操作法も、基本的な部分に大きな違いは見られない。ここでは「クラリスワークス」を中心に解説する。
(1) ロー、コラム、セル
表計算ソフトでは、縦横の罫線でマス目(セルと呼ばれる)に区切られた、巨大な集計表(ワークシート)が基本になっている。列(コラム)はこの集計表の縦の並び、行(ロー)は横の並びである。
シートの大きさはクラリスワークスの256列x500行に対し、Excel、MicrosoftWorksでは256列x16、384行でかなりの差がある。
列にはA,B,C...とアルファベットで表される列ラベルが、行には1、2、3・・・と数字で表される行ラベルがつけられている。
セルアドレスは列ラベルと行ラベルを組み合わせA1、B3などと表す。
選択されている(アクティブになっている)セルは現行セル(カレントセル)と呼ばれ、太い線で囲まれると同時に、入力バーのセルアドレスに表示される。
入力バーは図1のように、データ入力バー、取り消しボタン、入力ボタンがある。
また<ファイル>メニューから<ショートカット表示>をチェックすると図1の右のような表計算ショートカットボタンが表示される。これはSUMやソートなどの入力をすばやく行うのに便利である。
(2) セルの操作
セルを列や行全体にわたって選択するには、列ラベル、行ラベルをクリックすればよい。
セル範囲を選択するには、起点をクリックしてシフトキーを押しながら終点セルをクリックするか、セル上をドラッグする。
セル幅を変更するには、ポインターを列と列の間の線上に(列ラベルの境界線)に持って行くとポインターが縦2本線のものに変わるので、ドラッグして好きな大きさのセルに変えることができる。複数の列を予め選択しておけば同時に変更できる。
(3) 数値の入力と表示形式
数値を入力するには、半角の数字で入力しなければならない。全角の数字を入力すると、数値データではなく、テキスト(文字データ)として扱われるので、総和の結果が0となったり、「グラフを作成するのにデータが不充分です」とエラーメッセージが出たりする。
逆に、半角数字をテキストデータとして入力するには、"1996"のように、数値を""でくくる必要がある。
数値の表記形式には、指数表記、小数点表記などあるので、それぞれの場面に適したものを選ぶ。
(4) データ入力とキー操作
データ入力後どのようなキー操作をするかで現行セルがどこに移動するかが決まる。データを上から下に順に入力する場合には、データ入力後ポインターが下に移動すれば引き続き次のデータを入力できるから、リターンキーを押せばよい。右にデータを入力する場合は、タブキーを押せば良い。
同様な働きは,矢印の↓と→でも実行できる.
(5) 数式の入力
数式の入力は、はじめに=を入力する。ロータス1ー2ー3では@マークが使われるが、Excelで@マークで書くと自動的に=に変換してくれる。クラリスワークスの場合はこのような配慮はない。
四則演算の数式記号は、+、-、*、/で乗除算記号が一般の×,÷と異なる。
セルB2のデータを他のセル(例えばB9)に移すような場合には、セルB9に=B2と入力すればよい。
セルアドレスの表しかたには相対参照値(A1、B1のように表す)と、絶対アドレス($A$1、$B$1のように$記号を頭につけて表す)と複合参照($A1、B$1など)の三通りがある。数式に定数などを書き込んだ絶対座標のセルアドレスを指定したい場合には絶対参照値を用いる必要がある。例えば、常にセルA1の定数と掛け算をする必要があれば、=$A$1*B8のように指定する。$A$1で指定しておかないと、数式をコピーしたときに別のアドレスに自動的に置き換えられるので不都合を生ずる。
(6) 関数の使用
合計は=B1+B2+B3と和の形で指定できるが、データ数が多いときはSUM関数が便利である。
=SUM(数値1、数値2、・・・・)と引数に各数値を指定するか、=SUM(B1..B100)のように範囲を指定すればよい。
データ入力バーに=SUM(B1..B100)と手入力する方法と、範囲を指定しておいて、<編集>メニューから<関数ペースト>を選ぶ方法、ショートカットボタンのΣボタンを押す方法があるが、Σボタンを使うのが最も楽な方法である。
例えば、1+3+5+7+・・・+n=n2
のような計算では、データよりひとつ多くセルを選択しておいてΣボタンを押せば最後のセルに総和が算出表示される(図1)。
他にも豊富な関数が用意されているが、日常使うものはごくわずかだから、どのような関数があるかをざっと頭に入れておく程度で十分だろう。
(7) セルのコピー
例えば、数式の入ったA2をクリックし、離さずにそのまま、A10までドラッグする。
<計算>メニュ-から<下方にコピー>を選ぶとコピーされた計算式により計算され結果がA3からA10に一瞬に表示される。
(8) セルの保護
入力したデータや数式が誤入力によって破壊されないように、鍵をかけてセルの保護をしておくと安全である。
例えば、セルA2からA100の範囲を指定して、<オプション>メニューから<セルの保護>を選んだあと、試しにA2に0.5と入力しようとすると「保護されているセルがあります」というメッセージが出て、このセルには入力できないことが確認できる。
カオスのシミュレーション
カオスの入門書に良く例題として取り上げられるロジステック方程式は、動物の個体数の経年変化を求める次のような式を言う。
来年の個体数=繁殖率x今年の個体数x(1ー今年の個体数)
式中の「1」という数字は生息可能な最大個体数を正規化して表したもので、年ごとの個体数は常に0コンマいくつといった、0と1の間のアナログ量で表される。
この簡単な二次関数で、「繁殖率」を0から4の間で、小刻みに増やしていきながら、個体数が最終的にどのような数値に落ちつくのかをしらみつぶしに確かめていく。
まず調べたい「繁殖率」の数値と、適当に決めた「今年の個体数」の数値(初期値)を代入し、第一回目の計算を行う。次に、第一回目の答えを、再びロジステック写像の「今年の個体数」の項に代入して第二回目の計算を行う。後はこの作業を何度も何度も単純にくり返して行くだけである。
これを、クラリスワークスの表計算とグラフ機能によって、シミュレーションしてみる。
(1) セルA1に「今年の個体数」の初期値として0.2を入力する。
(2) セルB1に仮の繁殖率1.8をに入力する。
(3) セルA2にロジステック写像の数式を入力する。
=$B$1*A1*(1-A1)
この場合B1は、セルA2に関する限り、相対参照、絶対参照のどちらのアドレス表記でもよいが、A3からA100の範囲にコピーした計算式でB1アドレスがB2,B3と自動的に繰り上げられて不都合が生ずるので、絶対参照値で指定しておく必要がある。
(4) セルA2の数式を列(ロー)のA3からA100の範囲にコピーする。
(5) 表示形式を変更
数値の表示形式は、標準だと指数表記されるが、ここでは桁数は6桁の小数点表示に設定してみる。A1からA100の範囲を指定し、<書式>メニューの<値の形式>を選び、<標準>を<固定>に変更し、<小数点以下>の欄に<桁>の入力欄に6と入力する(図2)。
(6) グラフの作成。
6.1 A1からA100を範囲指定し、<オプション>メニューで<グラフ作成>を選び、次に
<グラフの種類>で<折れ線>を選び(図3)、<OK>をチェックするとグラフが表示される。
6.2 Y軸の設定
Y軸は最大値を1、最小値を0に固定したほうが、シミュレーション条件を変えても軸が自動的に書き換えられないので比較して見るには都合がよい。グラフの内側をダブルクリックすると、図3のメニューが再度表示されるので、<座標軸>を選ぶ。表示されたメニューの中の、<Y軸>をチェックし、最大値に1、最小値に0を入力して<OK>をチェックする。
6.3 ドットサイズの設定
次に、<シリーズ>を選び、メニューの<シンボル>をチェックし、3PTと入力し<OK>をチェックする。
6.4 グラフの位置の移動。
A100の付近に表示されたグラフをシミュレーションで数値入力がし易いように、セルA1の近くに移動させる。グラフをクリックしてアクティブ(4隅に四角いドットが表示された状態)にし、ドラッグしてA1近くに寄せる。グラフの位置を移動せずに、ウインドウを分割して入力部とグラフを同一画面になるにすることもできる。
(7) セルの保護と自動計算
A1,B1以外は、誤入力で計算式が破壊されないように保護する。セルA2からA100を範囲指定した後、<オプション>メニューで<セルの保護>を選ぶ。
<計算>メニュの<自動計算>をチェックしておくと、セルB1の繁殖率のデータを更新するたびに自動的に再計算が行われ、グラフも書き換えられる。ほとんど待ち時間を感じさせない速さで実行される。
以上の操作で得られたシミュレーション画面は図4のようになる。
(8) シミュレーション
セルB1に繁殖率の数値をいろいろ入れ変えてシミュレーションのようすを見る。
ケース1: 繁殖率が1以下だと個体数は0に近づき死に絶える。
ケース2: 1から2までは単調に増加または減少して一定値に収束する(図4)。
ケース3: 2から3までは振動しながら一定値に収束する(図5a)。
ケース4: 3から1+√6=3.44までは2周期(図5b)、3.44から3.57あたりまでは周期4(図5c)、周期8、周期16、周期32、・・・の周期振動となる。
ケース5: 3.57以上は2度と同じ値を取らない混沌の状態、つまりカオス領域に陥る(図5d)。
ただし、この領域の中にも、カオスではなく周期振動を起こす窓と呼ばれる領域が無数にあり、例えば、3.829と3.841の間では周期3の振動が見られる(図5e)。
繁殖率4.0では図5fのようなピュアカオスとなる。
ケース6: また、この領域では、今年の個体数の数値に敏感になり、わずかな数値の差がやがて大きな差となって現れるいわゆるバタフライ効果を生ずる(図6a、図6b)。
「クラリスワークス」では最大行数が500までしか扱えない。さらに年数を増やしてシミュレーションするにはExcelや数値計算ソフトのMathematicaなどを利用すればよい。Mathematicaについては、別の回で取り上げる予定である。
(つづく)
参考文献