#author("2021-01-29T13:56:01+09:00","","")
#author("2022-06-10T11:52:48+09:00","","")
*Excelのグラフを利用してグラフ作成 [#yaa57174]
-----
#contents();
-----
表計算ソフトウエアExcelは

・表の形のデータを処理するのに大変便利である。

・また、Visual Basicによるプログラムも組み込める。

・グラフィックスも備わっている。

欠点としては、

・2次元的なデータ構造以外は扱いにくいことと、

・Visual Basicがプログラミング言語としては高度な使用に適さないことである。

***Excelの概要 [#b287fa92]

Excelを起動すると、次のようなシートが現れる。

&ref(excel.png);

・この図を見てわかるように、このWindowの名前がMicrosoft Excel-Book1となっている。すなわち、Book1という名前がデフォルトでついている。また、一番下にコマンド書かれている部分のすぐ上にSheet1, Sheet2, Sheet3というタグが見れる。

・このように、呼び出した状態では3つのシートから構成されるBookという単位がExcelの基本的な構成となっている。ファイルはこのBook単位で記録される。

・シートは65536行256列から構成されている。

・各マスはセルと呼ばれる。

***Excelで図を画く [#yb4a9d91]

では、Excelで関数のグラフを画くことを考えよう。

基本的なデータ構造として、Excelは行と列および表がある。数学的には、行と列はベクトル、表は行列に対応する。

ここでは、列を縦ベクトル、行を横ベクトルと考える。物理ではブラとケットに対応する(ディラックの呼び名)。以下、当面、ベクトルといったら縦ベクトル(列)のこととしよう。さて、関数

&ref(f.gif);

のグラフを画くことを考えよう。具体的には、[a,b]=[0,2]とし、f(x)=exp(x)とする。Excelを始めとして、ソフトウエアによりf(x)を画くには、基本的にはベクトル

&ref(f2.gif);

に対する

&ref(f1.gif);

を出力する。ただし、

&ref(f6.gif);

とする。また、

&ref(f4.gif);

である。ここで、

&ref(f5.gif);

とする。ここで、Excelにベクトルxを入力することを考えよう。a=0,b=2,h=0.1とする。

&ref(e2.png); 

この図のようにセルA1とA2にそれぞれ0と0.1を打ち込む。これはh=0.1に対応する。そして、上図のように、A1とA2をマウスでドラックして、マウスの位置をセルA2の右下のコーナーに置きます。すると、マウスの形が+になります。そして、マウスのポインタが+になったまま、Aiの右側のラインに沿ってドラックをA21まで行いますと、図のように、0.1刻みで、2までの数値がセルAiに代入されます。

&ref(e3.png);

これをExcelのオートフィル機能といい、ベクトルの入力に便利な機能です。つぎにベクトルxであることを表示しておくために(後でグラフを画くときに軸の名前となる)Aをクリックして挿入をクリック、そして行をクリックします。すると無入力の行が一行最初に追加されますので、新しいA1にxと新しいB1にyと入力しておきます。

&ref(e5.png);

そして、B2の欄に

=exp(A2)

と書いて、

&ref(e6.png);

更に、リターンを押します。すると、exp(0)が計算されてつぎの表を得ます。

&ref(e7.png);

ここで、B2をドラックします。そしてマウスをセルB2の右下に置きます。

&ref(e8.png);

そしてそのままドラックをBiの右端を通ってB22まで続けます。ドラックを離すと、つぎの表を得ます。

&ref(e9.png);

ここで、A0からA22またはB0からB22までのどこかのセルを一つクリックします。

&ref(e10.png);

そして、グラフウイザード

&ref(e20.png);

をクリックして、ポップアップメニューの散布図を選びます。

&ref(e12.png);

そして、次へをクリックすると、

&ref(e14.png);

というグラフを得ますので、更に、次へをクリックします。ここでグラフタイトルとx軸、y軸の名前を入力します。

&ref(e15.png);

更に次へをクリックすると次を得ます。

&ref(e16.png);

ここで完了を押すと、図が得られます。

&ref(e17.png);

後は、図の縦横の比を調整したり、軸や曲線をダブルクリックして太さを調整して

&ref(e18.png);

最終的に次の図を得ます。

&ref(e19.png);

これで指数関数のグラフの完成です。以上のExcelのファイルを保存しておこう。 &ref(exp.xls);

***sin(x)の描画 [#x0c0f29e]

ここで、sin(x)を[0,2]上で画いてみましょう。先ほどの図を画いたExcelをファイルとして保存してあるとしてこれを、exp.xlsとしよう。exp.xlsを開き、名前をsin.xlsと別の名前で保存します。

sin.xlsにおいて、セルB2をクリックして=sin(A2)と入力します。

&ref(s1.png);

ここでリターンをして、expの関数値を計算したときのように、Bの列をドラックしていきます。すると、sin(x)の計算値にBの各セルの値が変更されます。

&ref(s2.png);

するとグラフは自動的にsin(x)のグラフに変更されます。あとは図題を三角関数sin(x)という風に変更します。&ref(sin.xls);

&ref(s3.png);

次にxの範囲を広げ、関数値を計算しなおして、グラフを書き直します(このときは自動的にグラフが変更にはなりませんでした)。

&ref(s5.png);

***2変数関数のグラフ [#u60cf58a]

では、つぎに、2変数関数

&ref(eq1.gif);

のグラフを画くことを考える。具体的には[-5,5]x[-5,5]上で関数

&ref(eq2.gif);

のグラフを画くことにする。

&ref(ex1.png);

上図のように、入力する。そして、A2B2のセルに=(($A2)^4)*sin(B$1)と数式を書く。ここで、$は絶対番地でセルを指定するために用いている。ここで、リターンしA2B2をクリックして図のようにまず列方向にオートフィルする。

&ref(fig1.png);

ついで、この状態で、右方向にオートフィルする。

&ref(fig2.png);

ここで、グラフウィザードを開き、等高線を選択する。

&ref(fig3.png);

ここで、次へを選択し、後は1次元関数のグラフを画くときと同様にして次の図を得る:

&ref(d2.png);

ExcelのBookはつぎである &ref(fig2.xls);

尚、本節の関数のグラフを画くの記述には次の書籍を参考にした。

参考書 酒井恒: Excelでわかる数学の基礎、日本理工出版会(2002)

**Excelによる数値計算 [#hb7ed7b1]

ここで更に進んでExcelによる数値計算について学んでいこう。

***テキストで書かれたデータを読み込んで図示する [#u8118fce]

つぎは酒井 敏先生(京都大学総合人間学部自然環境学科生物地球圏環境論講座)によるExcel入門である:

Excel 入門 テキストで書かれた地震の観測データをExcelに取り込み、図示してみる方法などが具体例に基づき書かれており大変参考になる。

Visual 地球科学 微分方程式をExcelで解くことなど、地球科学を学ぶことを目的として、Excelの使い方が説明されています。上のExcel入門もその一章です。

***ニュートン法 [#ga889b67]

非線形方程式の解法としてニュートン法が極めて有力である。この方法をExcel上で実行することを考えよう。まず、1変数関数

f(x)=0

の解を求める問題を考える。ニュートン反復の公式は

&ref(eqn1.gif);

で与えられる。ここで、例として

&ref(eqn2.gif);

の零点を求めることを考えよう。この場合、

&ref(eqn3.gif);

となる。これに基づき、ニュートン法をExcel上で実行してみよう。セルA1に初期値2を代入し、セルA2に

=A1-(A1^3-5*A1+3)/(3*A1^2-5)

と打ち込む。これはニュートン反復の一回である。

&ref(fign1.png);

ここでリターンを押す。

&ref(fign2.png);

これでニュートン法の1反復が終了する。そして、上の図のようにセルA2の右下コーナーにポインターをおき(+という字にポインターが変形したのを見て、反復の回数をnとしてセルAnまでドラックするとニュートン反復が繰り返される。

&ref(fign5.png);

このExcelのBookはつぎである。&ref(newton.xls);

問 この方程式は3つ根がある。他の2根をニュートン法で求めてみよ。

***他の例 [#b079da72]

ここで、つぎの方程式の解を求めることを考えよう。

&ref(eqn6.gif);

解のだいたいの位置を調べるために関数f(x)のグラフを画いてみよう。

&ref(fign10.png);

この図から、解はおおよそ3.8付近にあることがわかる。そこで、3.8を初期値としてニュートン法を適用してみる。

&ref(eqn7-1.gif);

である。Excelで解くと

&ref(fign11.png);

となる。&ref(newton2.xls);

***Solverを使って非線形方程式を解く [#h3a42fe4]

ExcelにはSolverがあり、準ニュートン法がインプリメントされている。これを使って、非線形方程式を解く方法を説明する。方程式として

&ref(eqn7.gif);

を解くことを考える。そのためにSolverを使う。Excelを立ち上げ、次のように打ち込む:

&ref(figs3.png);

ここで、ツールをクリックしソルバーを選択する。そして、つぎのように目的セルに方程式が書いてあるセルの絶対番地を書き込む。今は$B$2である。また、変化させるセルには初期値が書いてあるセルを選択する。ここでは、$C$2である。また、目標値には値を選択する。

&ref(figs2.png);

この状態で実行をクリックすると

&ref(figs10.png);

と解が求まったことが表示され、解が

&ref(figs11.png);

とセルC2に表示される。すなわち、x=-0.58307が解の近似となる。

***ゴールシークを使って非線形方程式を解く [#ka408381]

上とまったく同じ方程式をゴールシークを使って解いてみよう。

&ref(figgs1.png);

まず、前と同じように目的の方程式をB2に書き込む。つぎに、ツールをクリックし、更にゴールシークをクリックする。そして、つぎのように値を設定する。

&ref(figgs2.png);

ここでOKをクリックすると

&ref(figgs10.png);

と解が求められる。

***腕試しの問題 [#p057c13a]

1.つぎの関数のグラフをExcelで画け。

&ref(eqs1.gif);

2.つぎの方程式の根を求めよ。

f(t)=-56.123exp(2.231-0.103t)-73.987t+731.523=0

***Excelのweb上の解説 [#m3e932be]

+英語での解説

University of South Dakota でのExcelの解説 (基本的な事柄を丁寧に解説。読まれることを勧める)
NCSUでのExcelとMapleの解説

+日本語での解説

Excelの基本操作 (表計算ソフトの歴史など参考になる)
//
//

トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS