Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
コンピュータの活用
2020.4.28 基礎物理学演習
~表計算ソフトを用いて物理の諸問題を解く~
Contents
① 表計算ソフト(Microsoft Excel)とは
② Excelの使用法(基本編)
③ Excelの使用法(実践編)
④ Excelの使用法(応用編)
Excelの基本操作について
最小二乗法による近似線の求め方
Excelによる微分、積分、近似法について
ソルバー機能(エクセルアドイン)について
VBA(マクロ)の使用法について
① 表計算ソフト(Microsoft Excel)とは
データを入力して様々な方法で集計させたり、数式を入力して計算させることができるソフト。
1.計算(関数)機能に優れ、グラフやデータベース作成が可能
3.マクロ言語が搭載されており、プログラムによる処理が可能
2.汎用性が高い(物理学実験、研究、企業などで使用)
→ 関学サイトライセンスで最新バージョンを無償で入手可能
Excelの特徴
起動画面と基本的な画面構成について
② Excelの使用法(基本編)
数式バー 列番号
行番号
アクティブセル
セル
メニューバー
シート Ver. 2016
リボン
文字や数式、関数の入力法、表の作成法について
② Excelの使用法(基本編)
C8に値入力 選択して右下ボッチをドラッグ or Ctrl + “D”
= B8 * C8 *0.001 と入力して下にコピー
桁数をそろえる
C ; 1 μF5.4
11.8・・・
R ;10 kΩ
表やグラフの作成法について
② Excelの使用法(基本編)
図の挿入方法
図の書式設定
Excelによる微分法について
関数の微分をExcelで確かめる
③ Excelの使用法(実践編)
a b
Excelによる微積分
⇒ 実験(数値)データの解析に有効
③ Excelの使用法(実践編)
= ( B4 – B3 )/( A4 - A3 )
ただし、実際のデータはバラツキやトビがあるケースが多く、少々工夫すること
が必要である。
移動平均等の処理が必要
Excelによる微分
Excelによる積分
③ Excelの使用法(実践編)
a b
π
0
sin xdxx
Excelによる積分 関数の定積分をExcelで確かめる
③ Excelの使用法(実践編)
π
0
sin xdxx
a b
=(C3+C4)*(B4-B3)/2
行・列かセルを選択→ “表示”→ “ウィンドウ枠の固定”
行・列を選択→ “分割”
Excelによる近似 Taylor展開
③ Excelの使用法(実践編)
1
132 1)1(31
21)1ln(
n
nn xn
xxxx
x ln (1+ x) 1 次 2 次 3次 4次 8 次-0.9 -2.30259 -0.9 -1.305 -1.548 -1.71203 -2.04083-0.8 -1.60944 -0.8 -1.12 -1.29067 -1.39307 -1.55322-0.7 -1.20397 -0.7 -0.945 -1.05933 -1.11936 -1.19155-0.6 -0.91629 -0.6 -0.78 -0.852 -0.8844 -0.91383-0.5 -0.69315 -0.5 -0.625 -0.66667 -0.68229 -0.69275-0.4 -0.51083 -0.4 -0.48 -0.50133 -0.50773 -0.51078-0.3 -0.35667 -0.3 -0.345 -0.354 -0.35603 -0.35667-0.2 -0.22314 -0.2 -0.22 -0.22267 -0.22307 -0.22314-0.1 -0.10536 -0.1 -0.105 -0.10533 -0.10536 -0.10536
0 0 0 0 0 0 00.1 0.09531 0.1 0.095 0.095333 0.095308 0.095310.2 0.182322 0.2 0.18 0.182667 0.182267 0.1823220 3 0 262364 0 3 0 255 0 264 0 261975 0 262363
‐2.5
‐2
‐1.5
‐1
‐0.5
0
0.5
1
‐1 ‐0.5 0 0.5 1
ln(1+x)
1次
2次
3次
4次
8次
最小二乗法による近似曲線の求め方
1.公式を利用する
2.グラフ機能を用いる
3.分析ツールを使用する
③ Excelの使用法(実践編)
① グラフのデータ点左クリック
② データ点上で右クリック
③ “近似曲線の追加”
④ 近似または回帰の種類選択
⑤ “グラフに数式を表示する” Check
⑥ “OK”
これらの方法では、Fitting関数を自由に設定することはできない。
近似曲線の求め方(分析ツール、ソルバー機能を用いる)
④ Excelの応用例(アドイン) ※Ver.2007の例
①
②
③
④
⑤
① “Officeボタン” クリック
② “Excelのオプション”
③ “アドイン”
④ “Excelアドイン” “設定”クリック
⑤ “ソルバーアドイン” “分析ツール”
⑥ “OK”
近似曲線の求め方(分析ツール、ソルバー機能を用いる)
④ Excelの応用例(アドイン) ※Ver.2016の例
①
②
③
④
⑤
① メニューバーの“ファイル”クリック
② “オプション”
③ “アドイン”
④ “Excelアドイン” “設定”クリック
⑤ “ソルバーアドイン” “分析ツール”
⑥ “OK”
コンデンサーの充放電特性を指数関数で解析したい。
④ Excelの応用例(アドイン)
元のデータ
したい。のような関数を Fittingceay bx
マイナスデータがあると普通にFittingできない!
ソルバー機能を使用する。
④ Excelの応用例(アドイン)
元のデータ
モデル関数の値
この値が最小になるようなa, b, cの値を網羅的に解析
=C$21*exp(-B4/D$21)-E$21
=C4-D4
=SUMSQ(E4:E14)
①初期値(a, b, c)の設定(重要!) ②目的セル(平方和)の設定 ③変化させるセルの設定 ④“制約のない変数を非負数にする”のチェックを外す ⑤実行
コンデンサーの充放電特性を指数関数で解析したい。
④ Excelの応用例(マクロ)
マクロ(VBA)の使い方
マクロとは、アプリケーション上で行うさまざまな処理を自動的に実行
するプログラムのことである。このプログラムを記述する言語を、マクロ
言語(VBA)と言う。
(注意) デフォルトの設定ではセキュリティーの問題からマクロは
遮断されてしまう場合がある。マクロを用いる場合はセキュ
リティーレベルの設定を下げる必要がある。
マクロの例1 演習問題(惑星軌道)
マクロの例2 多量の実験データの自動解析
④ Excelの応用例(マクロ)
(2007):Officeボタン → Excelのオプション → 基本設定 → “[開発]タブをリボンに表示する”にチェックを入れる
(2010, 2013, 2016):ファイル → オプション → リボンのユーザー設定 →“[開発]”にチェックを入れる
Ver. 2016
④ Excelの応用例(マクロ) ※Ver.2016
まずマクロの雛型を作成する。
“開発”→“マクロの記録”→“OK”→“記録終了”→“VisualBasic”→“標準モジュール”
①
②
③⑥
⑤ ④
④ Excelの応用例(マクロ) ※Ver.2007
①
②
③
④
⑤
まずマクロの雛型を作成する。
“開発”→“マクロの記録”→“OK”→“記録終了”→“VisualBasic”→“標準モジュール”
④ Excelの応用例(マクロ)
よく用いる命令文
Dim i as integer - 宣言文(変数を使用する場合は必ず宣言する)Dim k as single
For i = 1 to 100 - For ~next 文 繰り返し処理…
Next i
If a < 0.05 then - If文 条件分け… 例)aの値が0.05以下の時だけ塗りつぶす
End if
命令文がわからない場合はマクロの自動記録機能を使用する。
マクロの記録 → “OK” → 実際の処理 → 記録終了 → Visual Basic
④ Excelの応用例(マクロ)
命令文 命令文の説明
Sub macro1()
Dim i as integer
Dim N as single
For i = 1 to 30
N = cells( i , 1 ).value
If N > 100 Then
cells( i , 1 ).value = 0
End if
Next i
End sub
← マクロのサブルーチン開始
← 使用する変数の型を決めるi を整数型で、 N を少数型で使用
← For ~ Next の間を30回繰り返す
← 変数Nにセルの値を入力
← If ~ End ifセルの値が100以上であれば0にする
← マクロのサブルーチン終了
マクロの例 (異常値を見つける)
このマクロを実行すると・・・
④ Excelの応用例(マクロ)
④ Excelの応用例(マクロ)
Sub macro1()Dim i as integer
Dim N as singleFor i = 1 to 30
N = cells( i , 1 ).value
If N > 100 Thencells( i , 1 ).value = 0
cells(i , 1).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End WithEnd if
Next i
End sub
先程のコードのIf文の中に、これら
のコード(自動記録機能により記
述)を追記すればよい。
※不要なコードもそのまま出てくる
こともある。
該当セルを(黄色く)塗りつぶすには・・・自動記録機能の活用
④ Excelの応用例(マクロ)
等電位線をマクロで計算する(基礎物理学実験Ⅰテキストp.41参照)
まずシートに以下のようなグラフを作成する。
これらの数値は電極の座標
次にマクロのひな型を作成し、以下のコードを入力する。Sub Macro1() ' Macro1 Macro
Dim x, y, v As SingleDim sx(), sy() As SingleDim E, R As SingleE = 11.7647 '=2/0.17 V/mR = 0.035Dim i, h As IntegerReDim sx(5, 100)ReDim sy(5, 100)
For i = 0 To 100y = 0.15 - 0.003 * i 'y座標:100点分計算For h = 0 To 100x = -0.085 + 0.00085 * h 'x座標:100分割して値をスキャンv = E * R * R * x / (x * x + y * y) - E * x '(8)式If v > 0.8 Then 'あるy座標においてx軸方向にvをスキャンsx(1, i) = xsy(1, i) = yEnd IfIf v > 0.6 Thensx(2, i) = xsy(2, i) = yEnd IfIf v > 0.4 Thensx(3, i) = xsy(3, i) = yEnd If
If v > 0.2 Thensx(4, i) = xsy(4, i) = yEnd IfIf v > 0 Thensx(5, i) = xsy(5, i) = yEnd If
Next hNext i
次にマクロのひな型を作成し、以下のコードを入力する。
For i = 1 To 5 'グラフ出力のためシートの適当な位置に値を出力For h = 0 To 100Cells(100 + h, i * 2) = sx(i, h)Cells(100 + h, i * 2 + 1) = sy(i, h)Next hNext i
ActiveSheet.ChartObjects("グラフ 1").Activate '以下グラフに等電位線を出力For i = 1 To 5ActiveChart.PlotArea.SelectActiveChart.SeriesCollection.NewSeriesActiveChart.FullSeriesCollection(i + 3).XValues = Range(Cells(100, 2 * i), Cells(200, 2 * i))ActiveChart.FullSeriesCollection(i + 3).Values = Range(Cells(100, 2 * i + 1), Cells(200, 2 * i + 1))ActiveChart.FullSeriesCollection(i + 3).SelectWith Selection.Format.Line
.ForeColor.RGB = RGB(255, 0, 0)End WithWith Selection.Format.Line
.Weight = 2End WithNext i
ActiveChart.PlotArea.Select
End Sub
自習課題
1.Excelで以下のようなシートを作成し、横軸をx、縦軸をyとした時の、近似直線の式(y=Bx+A)を最小二乗法で求めよ。またA、Bそれぞれの誤差A、Bも算出すること。レポートには以下のような画面コピーを貼り付けること。
29
(ヒント)データの個数Nは“=count(C3:C12)”と入力すると得られる。同様に、x“=sum(C3:C12)”、x2“=sumsq(C3:C12)”、xy“=sumproduct(C3:C12,D3:D12)”と入力する 。
(応用)分析ツールの回帰分析(アドイン)を使用しても良い!
No. x y di 2
1 1 22.12 2 32.73 3 33.84 4 38.35 5 46.8 N x y x 2 xy6 6 55.27 7 55.68 8 62.69 9 63.1
10 10 69.9 A B
y A B
ABxy
2. 次の表の値に対し、ソルバー機能を用いて指数関数
(y = a[exp(-x/b)]+cx+d a, b, c, dは変数)
をFittingし、最適解のa, b, c, d(それぞれの初期値は18、4、0.3、-5と設定せよ)の値を求めよ。またその解析結果の様子(目的セルや変化させるセル、図などがあればよい)を画面コピーし、レポートに添付せよ。
3. 等電位線マクロの出力結果をレポートに添付せよ。
質問は下記まで
x 0 1 2 3 4 5 6 7 8 9 10y 15 8.9 4.8 2.2 0.6 -0.3 -0.6 -0.7 -0.3 0.2 0.9