• 検索結果がありません。

  化学工学プログラミング補助資料

N/A
N/A
Protected

Academic year: 2021

シェア "  化学工学プログラミング補助資料"

Copied!
21
0
0

読み込み中.... (全文を見る)

全文

(1)

学籍番号

TK 氏名 平成 年 月 日

第3回のクイズ 化学工学プログラミング

講 義 の 開 始 に あ た り 、 前 回 と 同 様 に ネ ッ ト ワ ー ク コ ン ピ ュ ー タ (

fsv0、

Work_Win)

を用いて、

配布プログラム

を自分のコンピュータの

デスクトッ

コピーして下さい。

さらに、

3.5inch のフロッピーディスクへもコピーし

て下さい。コピー後、

Fsv0、Work_Win のウィンドウ画面は閉じておいて下

さい。

以下のクイズ1∼3は全員解答して、「出席票」に氏名、学生番号とともに記入して下 さい。また、第2回レポート(提出期限は5月 12 日正午、場所 638A 室前のレポート 提出箱)を講義中に作成してもかまいません。 本日の主題 データの処理、乱数の発生と利用、 第1,2回の復習 プログラムコードの用語 Randamize、Rnd(), Int(), Mod 乱数 コンピュータで、サイコロのめを表現する場合や化学反応で分子が衝突する確率など偶 然の現象を表現したい場合があります。でたらめにおこる現象を表現するのに便利なもの として、乱数があります。でたらめな数列を乱数列、その要素となっているそれぞれの数 を乱数と呼びます。例えば、次の数列を見て下さい。 2,4,6,8,2,4,6,8,2 この数列には規則性があります。ですからこの数列は乱数列ではありません。 1,2,1,3,6,1,1,5,1 この数列では、1の出る確率がかなり高いようです。このような数列もよい乱数列とはい えません。また、コンピュータで乱数を発生させる場合、そのような関数を呼び出すたび にいつも同じ数字の乱数から始まるような場合もよい乱数とはいえません。

Visual Basicでは、まず、 Randamizeという命令 で乱数を初期化します。初期化した

後、 x=Rnd(1) とすると、0 以上 1 未満の数をデタラメに発生させて、xに代 入します。すなわち、Rnd()を用いて、0以上1未満の実数である乱数をxに代入するス テートメントは次のようになります。 x=Rnd(1) また、実数を整数に変換する関数 Int() と組み合わせると Rnd()はとても便利です。 Int()は次のように使えます。 x=Int(3.1415) この場合、xには、3という整数が代入されています。 例題1 上述の Rnd() を用いて、0以上10未満の実数を x2 という変数に代入するステ ートメントを考えて下さい。 x2=Rnd(1) * 10 例題2 上述の Rnd() や Int()を用いて、0以上10未満の整数を iNum1 という変数に

(2)

代入するステートメントを考えて下さい。 iNum1=Int(Rnd(1) * 10) 例題3 上述の Rnd() や Int()を用いて、0以上6未満の整数を iNum2 という変数に代 入するステートメントを考えて下さい。 iNum2=Int(Rnd(1) * 6 ) 例題4 上述の Rnd() や Int()を用いて、1以上6以下の整数を iNum3 という変数に代 入するステートメントを考えて下さい。 iNum1=Int(Rnd(1) * 6 ) + 1

例題5 上述の Rnd() や Int()を用いた例題を参考にそれらを Excel の Cell 上にあらわ すプログラムを作成してみましょう。 [解] 次のような Excel の sheet とコードを考えました。これは、本日配布したプログ ラム 乱数クイズ01_VBコードの計算例 です。 Sub rnd01_calc_01() '*********************** Dim ja As Integer, jb As Integer

Dim x1 As Single, x2 As Single

Dim iNum1 As Integer, iNum2 As Integer, iNum3 As Integer '*********************** ' sheet1 のセル A1 と A2 から数字を読み込む ' Cells(1, 1) Cells(2, 1) ja = Cells(1, 1) jb = Cells(2, 1) '*********************** For i = ja To jb

(3)

'================================== ' 乱数発生 ' iNum1, iNum2,iNum3 : 乱数(整数) ' x1, x2 :乱数(単精度の実数) '--- Randomize iNum3 = Int(Rnd(1) * 6) + 1 ' 1 以上6以下の整数の乱数 iNum2 = Int(Rnd(1) * 6) ' 0 以上5以下の整数の乱数 iNum1 = Int(Rnd(1) * 10) ' 0 以上9以下の整数の乱数 x2 = Rnd(1) * 6 ' 0 以上6未満の乱数 x1 = Rnd(1) ' 0 以上1未満の乱数 '--- '*********************** ' セルへの結果の表示 Cells(3, i + 1) = i Cells(4, i + 1) = x1 Cells(5, i + 1) = x2 Cells(6, i + 1) = iNum1 Cells(7, i + 1) = iNum2 Cells(8, i + 1) = iNum3 '*********************** Next i ' MsgBox a + b End Sub 問1 Rnd() や Int()を用いて、1以上12以下の整数を iNum4 という変数に代入する ステートメントを考えて下さい。 問2 乱数を発生させるには、まず乱数の初期化が必要である。乱数を初期化する命令文 は何でしょうか? 問3 乱数を初期化したあとで、x=rnd(1) とすると __以上__未満の数をデタラメに 発生させて、x に代入する。0 以上 1 未満 問4 大吉 10%, 吉 60%, 凶 23%, 大凶 7% の確率で表示するようなオミクジプログラ ムを作成して下さい。

(4)

乱数の利用

乱数発生のコマンド

Rnd()の使用練習として、コンピュータ・ダイス

を行うプログラム

Show_Dice_01.xls を下記に示す。

プログラムコードを下記に示す。 Private Sub cmdYes_Click()

Dim iHr As Integer, iMt As Integer, iSd As Integer Dim iWait As Integer

' Dim iNum As Interger ' Unload Me

' Question2Form.Show

'================================== ' Count Down

' iFrom : Start Number ' iWait : Pause (Second) '--- lblResult.Caption = "" iFrom = 6

(5)

iWait = 1

For i = 0 To iFrom - 1 iHr = Hour(Now()) iMt = Minute(Now())

iSd = Second(Now()) + iWait

Application.Wait TimeSerial(iHr, iMt, iSd) lblDice1.Caption = iFrom - i Next i '================================== ' 乱数発生 ' iNum : サイコロのめの数 ' この部分を変更すると 乱数が変わります。 '--- Randomize iNum = Int(Rnd(1) * 6) + 1 ' 1 以上6以下の整数の乱数 ' iNum = Int(Rnd(1) * 6) ' 0 以上5以下の整数の乱数 ' iNum = Rnd(1) * 6 ' 0 以上6未満の乱数 ' iNum = Rnd(1) ' 0 以上1未満の乱数 '--- ' Time lblResult.Caption = "サイコロのメは" iSd = Second(Now()) + iWait * 2

Application.Wait TimeSerial(iHr, iMt, iSd) lblDice1.Caption = iNum

End Sub

Private Sub cmdEnd_Click() End

End Sub

Private Sub cmdReturn_Click() Unload Me

MyForm.Show End Sub

(6)

化学では、反応や分子の動きを予測するために、コンピュータを利用することがありま す。その際、自然界の動きを真似るために、乱数を利用します。乱数を利用した補助資料 P.9 の1行目に示した Tetsuo Suzuki さんのホームページを見てみましょう。

http://www.asahi-net.or.jp/ zn6t-szk/index.html Tetsuo Suzuki さんのページが出ます。

Java Virtual Lab をクリックすると、様々なシミュレーションを選択できる画面が出ます。 下は気体分子の速度分布(マックスウェル−ボルツマン分布)のシミュレーションです。

(7)

第 1 回目の講義配布資料(第 1 回のクイズ)の p.5 問2の問と解答を示します。実は、 この問題の解答は、先週配布の Excel ファイル「第1回クイズ03_VB コードの計算 例.xls」の VB コード(マクロ)に記載しておきましたので、問と解答を紙面で確認した 後、Excel ファイル「第1回クイズ03_VB コードの計算例.xls」を起動して、VB コー ド(マクロ)を使ってみましょう。使い方は補助資料 P.33∼38 下に示しています。参考 にして下さい。 クイズ 1 問2の正解のコード(テキスト)を Excel とVBの画面の図の下に示します。下記の問 2のコードと比較してア∼オの解答を本日の解答に記入して下さい。 問2 前回の問1の1∼3)に対して、プログラムコードを作成して問1と同じ結果を表 示するプログラム作成しました。プログラムコードを下記に示します。ア∼オの 空 所に適当な文字、記号または数値を記入してください。

ヒント; Excel のsheetでは数値 35 の常用対数の値(log1035)は、 =LOG(35)

で計算され, 自然対数(loge35)は、LN(35)で計算されます、しかし、VBのコード では、関数「Log( )」は、自然対数を表します。したがって、次の対数の公式を利 用すると便利です。

a

x

x

c c a

log

log

log

=

10

log

log

log

10 e e

x

x

=

VB のコード Sub ex1_calc_01() '*********************** ' 「'」は 「REM」と同じ働きでその行のそれ以降を無視 ' 変数 a,b,c,d,e を使用するため {Dim」で宣言 ' 「Single」 それぞれの変数を単制度の実数で使用する Dim a As Single, b As Single

Dim c As Single, d As Single, e As Single

'*********************** ア ' sheet1 のセル A1 と A2 から数字を読み込む ' Cells(1, 1) Cells(2, 1) a = Cells(1, 1) b = Cells(2, 1) イ '*********************** ' 計算 c = a + b d = a ^ 4 e = Log(b) / Log(10) '*********************** ウ エ ' セルへの結果の表示

(8)

Cells(3, 1) = c Cells(4, 1) = d Cells(5, 1) = e '*********************** オ End Sub 正解のコード(テキスト)を下に示します。問のコードと比較してア∼オの解答を 本日の解答に記入して下さい。 Sub ex1_calc_01() '*********************** ' 「'」は 「REM」と同じ働きでその行のそれ以降を無視 ' 変数 a,b,c,d,e を使用するため {Dim」で宣言 ' 「Single」 それぞれの変数を単制度の実数で使用する Dim a As Single, b As Single

Dim c As Single, d As Single, e As Single

'*********************** ' sheet1 のセル A1 と A2 から数字を読み込む ' Cells(1, 1) Cells(2, 1) a = Cells(1, 1) b = Cells(2, 1) '*********************** ' 計算 c = a + b d = a ^ 4 e = Log(b) / Log(10) '***********************

(9)

' セルへの結果の表示 Cells(3, 1) = c Cells(4, 1) = d Cells(5, 1) = e '*********************** ' MsgBox a + b '*********************** End Sub

クイズ2

配布の Excel ファイル「第1回クイズ03_VB コードの計算例.xls」の VB コード(マク ロ)において、下から2行目に「 ' MsgBox a + b 」と記載されています。この行の 先頭にある「 」(注釈文を示す)を削除(Delete キーや BackSpace キーを用いて) すると、実行した場合、どのようなことが起こりますか。実行した結果を説明して下さい。 例えば、 「画面に・・・のメッセージが現れた。」のように記述して下さい。

* ********************************

第1回レポート評価

* ********************************

前回の資料の P.6以降の酸性雨、環境汚染防止装置の説明図を参考にして、「酸性雨、 環境汚染防止装置」について、説明する文章(30 文字×5行以上)をマイクロソフト社の ソフトウェア「ワード」を用いて記述し提出していただきました。既に多くの方が作成し 提出されています。インターネットを用いてしらべたものや独自の考えなど力作が目立ち ました。もかまいません。

********************************

第2回レポート

********************************

第2回レポート 下記の1)∼4)については、全員提出。他の問題は興味のある人のみ 解答して提出してください。 第2回レポートの提出期限;5月 12 日正午、 場所;638A 室前のレポート提出箱 注意)日数は十分ありますが、コンピュータを利用する項目が多いので、早期に着手し て、時間のあるときに周囲の友人とも内容をよく確認して下さい。また、今回の資料に平 成 16 年度に行った中間試験の一部のファイルも添付しています。まだ習っていない範囲 も含まれていますが、今後の学習の参考として下さい。 1) 乱数発生のコマンド Rnd()の使用練習として、本日配布したコンピュータ・ダイ

(10)

スを行うプログラム Show_Dice_01.xls や 乱数クイズ01_VBコードの計算例 を 利用して、Rnd() や Int()を用いて、1以上 12 以下の整数を乱数として発生させ、それ を活用(どのような活用でもよい)したプログラムを考え、VBコードをプリントアウト して提出して下さい。 2) 今回の問 第1回クイズ03_VB コードの計算例.xls を参考に、配布されたプロ グラム第1回クイズ05_VB コードの記入練習.xls の欠如している3行を記入(編集の コピーと貼り付け機能を利用して、a=の行は、b=の行をコピーすること。他の行はキー ボードから記入)して、プログラムを完成させてください。ただし、VB コードの1行目 に各自の学籍番号と氏名を「 」文で記入しておいてください。作成しVBコードをプリン トアウト(印刷)したものもあわせて提出して下さい。 3) 補助資料 P.32 以降を参考にして、VBコードを記述して四則演算を行うプログラム を作成しVBコードをプリントアウト(印刷)したものもあわせて提出して下さい。 ヒント;本日配布したプログラム ex1_1.xls などを参考にして利用して下さい。 4)補助資料 P.161 に示された x, y のデータを用いて、それらのデータに対して最も誤差 を少なく表現するxyの関係式(y=ax+b の a, b を求める)を書け。 5)グラフを書く正方眼紙と片対数 以下のx-y関係を正方眼紙と片対数紙にプロットせよ。ただし、横軸にx、縦軸にyとする。 また、正方眼紙および片対数紙にプロットしたときに、x-yデータに対して直線y=a0+a1xで 近似した場合の切片a0および傾きa1を求めよ。

X

0 1

2

Y

1 10

100

log(y) 0

1

2

6)輻射伝熱 対象物に直接触れなくても、その物体から放射されている放射エネルギーを利用するこ とで対象物の温度を測定する事が出来る。いま、実験により放射エネルギーu[W・cm-2 ]と絶 対温度T[K]の関係について以下のようなデータを得たとする。このデータよりどのような ことがわかるか。方眼紙に横軸に温度T、縦軸に放射エネルギーuをプロットせよ。さらに、 両対数グラフに横軸に温度T、縦軸に放射エネルギーuをプロットし、考察せよ。 表 放射エネルギーu[W・cm-2]と絶対温度T[K]の関係 温度 T[K] 放射エネルギー u[W・cm-2] log10T log10u

(11)

200 300 500 1000 2000 4000 9.072×10-3 4.592×10-2 3.544×10-1 5.670 9.072×101 1.451×103 0 200 400 600 800 1000 1200 1400 1600 0 1000 2000 3000 4000 5000 T [K] u [W ・cm -2 ] 図 温度 T と放射エネルギーu の関係(方眼紙上にプロットした場合)

y=4.0x-11.25

-3

-2

-1

0

1

2

3

4

2.0

2.4

2.8

3.2

3.6

4.0

log

10

T

log

10

u

図 温度T と放射エネルギーu の関係(両対数グラフ上にプロットした場合) このグラフより、log10uとlog10Tの間に直線関係が成り立つことがわかる。 このプロット点に対して最小二乗法をおこなうと以下のような関係式が得られる。 log10 u=αlog10T+β

(12)

ここで、直線式の傾きがα、切片がβである。 β=log10γとおくと

log10 u=αlog10T+ lnγ ∴ log10u−log10γ=αlog10T ∴ log(u/γ) =αlog10T u/γ=Tα ∴ u =γ・Tα log10γ=βであるので γ=10β よって、最終的に以下の関係式が得られる。 u = 10β・Tα 今回のデータより直線の式を求めると以下のようになる。 log10u=4 log10T+(-11.25)

ここで、α=4、β=-11.25 であるので次の関係が得られる。 u = 10β・Tα より u = 10(-11.25)・T4 u = 5.67×10-12・T4 したがって、放射エネルギーu は絶対温度 T の 4 乗に比例する事がわかる。 また、5.67×10-12 [W・cm-2・K-4]はシュテファン-ボルツマン定数と呼ばれる。 7)酢酸水溶液中における酢酸の活性炭に対する吸着実験を行ったところ以下のような実 験データを得た。ただし、Cbはバルク相における酢酸濃度、nは活性炭に対する酢酸の吸 着量を示す。

Cb[mol/L] n[mol/g] log10Cb log10n

0.4621 0.00205 0.2410 0.00175 0.1139 0.00139 0.0519 0.00105 0.0243 0.00081 実験データを利用して、次式で与えられる Freundlich の等温吸着式の定数a、bの値を求 めたい。 b b

aC

n

1

=

(1)

(13)

このままでは定数 a、bの値を決定することが難しいので、上式の両辺の対数をとる。 b b b b b

C

b

a

C

a

aC

n

10 10 1 10 10 1 10 10

log

1

log

log

log

)

(

log

log

+

=

+

=

=

   

(2) ここで、横軸にlog10 Cb、縦軸にlog10 nの関係をグラフにプロットする。すなわち、 x=log10 Cb、y=log10 nと考える。 b

C

b

a

n

10 10 10

log

1

log

log

=

+

(3) ここで、直線式y=a0+a1xと比較する。すなわち、

)

(

1

10

)

(

log

1 10 0 0

傾き

  

切片

b

a

a

a

a

a

=

=

=

(4) a0およびa1は、最小二乗法により、数値で求められる。与えられたデータでは、 a1= 、 a0= なので、 a= 、 b= となる。 この値をn=acb 1/bに代入して、c b=0∼0.5 の範囲でnの値を計算する。

(14)

参考のためにグラフの描き方の資料を下記に示します。 グラフの描き方については、既に第2回の講義と第1回レポートで練習しました。イン ターネットにもいくつか解説がありますので、下記のような URL も参考にして下さい。 http://physics.e-one.uec.ac.jp/report/graf.html (グラフの作成) 今回、第2回レポート課題となっている片対数グラフや両対数グラフの描き方について もインターネットにもいくつか解説がありますので、下記のような URL も参考にして下 さい。 http://physics.e-one.uec.ac.jp/report/graf/semi-log.html (片対数グラフの描き方) さらに、次回の講義では、正方眼のグラフに対して最小二乗法を行う方法について解説し ますが、最小二乗法での指数近似と累乗近似を解説したものもインターネットにいくつか あります。下記のような URL も参考にして下さい。 http://www.mech.tohoku-gakuin.ac.jp/tools/lsm2/ ( 最 小二 乗法 で 指数 近似 と 累乗 近 似 を解説したサイト) 大学の学生実験などでよく用いる両対数グラフ用紙と片対数グラフ用紙を下記の示しま す。目乗りの取り方が正方眼グラフ用紙と異なりますので、注意して下さい。 素朴な疑問1 なぜ両対数グラフ用紙と片対数グラフ用紙を使うのですか? 解 説 1)範囲の大きな数値を取り扱うのに都合がよい。 2)自然界の法則に指数や対数で表される現象が多く、正方眼紙では、関数の 形の区別ができない場合があるから。例えば、絶対温度Tの4乗に比例す る輻射伝熱やマイナス1乗に比例する化学反応や蒸気圧なども、これらの グラフ上では、直線として表現できます。しかも、その直線の傾きと切片 から、元の関数の正確な数値が分かります。

両対数グラフ用紙 片対数グラフ用紙

(15)

100 20 10 片対数グラフの座標 1 こ こ を 1 と すると、 両対数グラフの座標の取り方もどうようです。 では、Excel ではどうでしょうか。 Excel では与えられた数値を容易に対数や指数に変 換できますので、化工実験 I の物理化学実験(吸着)で行うように、データを対数に変換 してその値を正方眼のグラフにプロットし、解析する方法が一般的です。 また、そのような事情で Excel では、通常は両対数のグラフプロットを行いません。どう しても両対数にしたい場合、下記のような方法もあります。 http://www.excel.studio-kazu.jp/lib/e2n/e2n.html (Q11)両対数グラフを描きたい。 (A11) 一般に Excel のグラフは横軸が項目と考えて作られています。 ですから、縦軸は対数になりますが、横軸は項目なので、対数にできません。が、 グラフの種類=散布図を使うと、グラフを描いて、 縦軸も横軸も対数軸を使うことは可能です。 (1)散布図で XY グラフを描きます。 (2)X 数値軸を[軸の書式設定]の[目盛]タグで対数に変更します。 (3)Y 数値軸も同様に。 (4)データマーカーをダブルクリックして [データ系列]の[書式設定]で[線]を[指定]にします。

(16)

******************************** 注意)解答は、直接この用紙に記入して下さい。用紙の足りない場合は、用紙挿入可、 裏面使用可。空所に適当な文字、数値を記入し、問に関しては、全て記述する。 問1 下記の問題を、VBA プログラムを用いて解きたい。[解]に記述されたプログラ ムコードの空所を補って完成させて下さい。 東京と福岡は高速道路約1140kmによって結ばれている.この区間をガソリン 1kg あたり 15km走ることのできる乗用車を利用した場合,排出する二酸化炭素の質量およ び 25℃における体積はいくらになるか計算せよ。ガソリンの成分はすべてオクタン (C8H18)と仮定して計算せよ。 ヒント;オクタン、二酸化炭素のそれぞれのモル質量 を 114.23、44 とする。また、標準状態のガス1molの体積を 0.0224 m3とする。オク タン1分子中に含まれる炭素は 8 である。 [解] 1140km をガソリン 1kg あたり 15km 走る乗用車で走行すると使用されるガ ソリンの質量は、 1140/15=76 kg 使用したオクタンの全質量w[g]は、

=76000 g(=76 kg)となる。また、モ ル質量(分子量)

M

[g/mol]と質量ならびに物質量

[mol]の関係は、次のようになる。

M

w

n

=

(1) オクタンのモル質量が

M

=114.23 であるから、その物質量は、

23

.

114

76000

=

n

=670 mol オクタン1分子に含まれる炭素の数

n

Cは、

n

C=8 であり、二酸化炭素 8 分子が生成す る。二酸化炭素のモル質量

M

CO2は、

M

CO2=44 であるので、排出される全二酸化炭素 の質量WCO2は、次のようになる。

(17)

CO2 C CO2

n

C

M

CO2

M

w

M

n

n

W

=

=

(2)

8

44

23

.

114

76000

=

= 235840 g 排出される全二酸化炭素の質量は 約 240000 g である。 その標準状態(0 ℃[273.15 K]、0.101325 MPa)における体積が 1mol当たり 0.0224 m3とすると、排出される全二酸化炭素の標準状態での体積VCO2 CO C

n

C

M

w

n

n

V

2

=

0

.

0224

=

0

.

024

(3)

V

CO2

=

0

.

0224

×

670

×

8

= 120 m3 約 120 m3 となる。 Excel の関数を用いて解いた場合 VB のコードで解いた場合、 Sub W_V_CO2() '=============================================== ア ' 走行距離から排出される二酸化炭素の ' 質量と体積を求める問題の解法 ' Excel の Sheet の関数で解く場合と ' Visual Basic のコードで解く場合を示す。 '=============================================== ' 変数 の 宣言 '=============================================== Dim xl As Single, s As Single, xno As Single

(18)

Dim w As Single, wCO2 As Single, VCO2 As Single Dim Vs As Single, xMCO2 As Single

'=============================================== イ ウ ' 変数へ 説明 '=============================================== ' xl 距離 l [km] ' s 1 kg 当たりの距離 s [km/kg] ' w 使用されるオクタンの質量 w [g] ' xMo オクタンのモル質量 M [g/mol] ' xno オクタンの物質量 n [mol] ' nc オクタン 1 分子中の炭素の数 nc ' xMCO2 二酸化炭素のモル質量 M [g/mol] ' Vs ガス 1mol の標準状態の体積 V [m3] ']

' xnCO2 二酸化炭素の物質量 nCO2 [mol] ' wCO2 二酸化炭素の質量 wCO2 [g] ' VCO2 二酸化炭素の体積 VCO2 [m3] '=============================================== ' 変数へデータの 入 力 '=============================================== xl = Cells(4, 3) s = Cells(5, 3) エ xMo = Cells(8, 3) nc = Cells(10, 3) xMCO2 = Cells(11, 3) Vs = Cells(12, 3) '=============================================== ' 計 算 '=============================================== w = 1000 * xl / s xno = w / xMo xnCO2 = nc * xno

wCO2 = xnCO2 * xMCO2 VCO2 = xnCO2 * Vs

'=============================================== ' 計算結果の出力

(19)

Cells(14, 4) = xnCO2 Cells(15, 4) = wCO2

ヒント;3行

Cells(16, 4) = VCO2 End Sub

問2 二分法について、説明せよ。空所を補って下さい。 [解] 方程式を数値的に解く方法である。 方程式f(x)=0 のを解く場合を考える。ま ず、二つの初期値 x0, x1を仮定する。下図のようにf(x0)とf(x1)が異符号(すなわちf(x0) ×f(x1)<0)になったとする。その場合、関数y=f(x)が区間[x0, x1]で連続であると、解は区 間[x0, x1]に必ず 1 つは存在することになる。 1) x軸の区間[x0, x1]の中点をxc1とする。すなわち、 xc1=(x0+x1)/2 となる。 ア 2)このとき、f(xc1)とf(x0)が 同符号 の場合(すなわちf(xc1)・f(x0)>0)、x0=xc1と す る 。 ま た 、 f(xc1)と f(x0)が 異 符 号 の 場 合 ( す な わ ち f(xc1)・ f(x0)<0)、 x1=xc1 ウ とする。 3)1),2)と同様の作業を行い、x0=x1(正確には|x0-x1|/x0<0.001)となるまで計算を 繰り返す。

x

0

x

1

f(x

0

)

x

c1

x

c3

x

c2

f(x

c2

)

f(x

c1

)

f(x

c3

)

図3.4 二分法の収束仮定

問3 図を用いてニュートン法について、その基礎式を導出し説明せよ。

空所を補い、図は次ページに示して下さい。関数は適当な3次関数とする。

ニュートン法は、方程式 f (x)=0 の解を求める場合、任意の点での接線とx軸との交点 を次の初期値として、それを繰り返し方程式の解を求める手法です。下図に概念を示す。 関数y = f (x)の点(x0、f (x0))における接線の傾きはf ’ (x0) である。点(x0、f (x0))を通る直 線であるから、y = f (x)の接線の方程式は、次式となる。ア

(20)

y = f ’ (x0)( x − x0) + f (x0) イ (1) x軸は、 y=0 で表せる。この接線とx軸が交わる点をx1とするとx1は、 f ’ (x0)( x − x0) + f (x0)=0 ウ (2) f ’ (x0)( x − x0) =― f (x0) エ (3)

)

(

'

)

(

0 0 0

x

f

x

f

x

x

=

オ (4)

)

(

'

)

(

0 0 0

x

f

x

f

x

x

=

(5) キ これがニュートン法の基礎式 である。ここで、①xをx1とする 。 ②次に得られたx1を 次のx0として 、 ③再び基礎式である式(5)に代入することで、次のx1を求める。 ④ この① ∼③の操作を繰り返し方程式の解へx1の値を近付ける ことができる。⑤十分解に近づいた 時に、この操作を打ち切り、その時のx1を解とする。 カ

問4

を用いてセカント法について、その基礎式を導出し説明せよ。

n組のデータ(xi,yi)(i=1,2,…,n)に対して、原点を通る直線y= a1x を最小二

6 次のプロシージャ(Sub Ifex8_0_1)を作成せよ。プロシージャ中で、整数変数 month

7 次のプロシージャ(Sub Loopex1_0_1)を作成せよ。プロシージャ中で、整数変数

乗法で求めたい。 a1を与える基礎式を導け。 問 を整数型(変数の型)で宣言し、さらに、文字変数として、season を文字列型(変数の型) で宣言する。season には、 春 、 夏 、 秋 、 冬 、 入力エラー のいずれかを使用す る。Excel sheet1 においてセル C5、C6 にそれぞれ文字 "何月ですか?" と数値 6 を 記述する。month=6 となるように Cells を用いて Excel sheet1 の値 6 を変数 month に代入する。 Select Case 文を用いて、変数 mont が、”3,4,5”のいずれかであれば、season に 春 、”6,7,8”のいずれかであれば、season に 夏 、”9,10,11”のいずれかであれば、 season に 秋 、”12,1,2”のいずれかであれば、season に 冬 、それら以外であれば、 season に 入力エラー と代入 する。そして、その season の値(文字列)を Excel sheet1

において Cells を用いて セル C12 に表示する。

n, sum を整数型(変数の型)で宣言する。Excel sheet1 においてセル C5、C6 にそれ ぞ れ 文 字"いくつまでの合計ですか?"と数値 10 を記述する。n = 10 となるように Cells を用いて Excel sheet1 の値を変数 n に代入する。For Next 文を用いて、1 か

らnまでの整数の和を求め、その値を変数 sum に代入 する。そして、その sum の値(整

(21)

問8 次のようなプロシージャ(Sub Ifex10_0_1)を作成せよ。温度が華氏oFで与 え られた場合、その温度を摂氏℃と絶対温度Kで表せ。幾つかの実数に対して, 配列変数 としてx(10),y(10),z(10)を単精度の実数として宣言する。データ数は変数NP(整数型) を用いる。華氏oFをx(i),摂氏℃をy(i),絶対温度Kをz(i)で表す。さらに、Excel sheet1 において Cells を用いて セルA1 に" 番号" 、B1 に”華氏[oF]”、C1 に"摂氏[℃]”、D1 に”絶対温度[K] " と表示する。x(i) には、0,10,20,30,40 の値をFor Next文で 代入する。さらに、For Next文でy(i),z(i)にそれぞれ変換式を用いてx(i)の値を各温度単

位に変換する。これらの値を Excel sheet1 において Cells を用いて セルA2∼C6

の領域に表示し、単位換算の表が完成するように指定する。温度の単位換算は次のように 与えられる。

)

32

)

(

(

180

100

)

(

i

=

x

i

y

z

(

i

)

= i

y

(

)

+

273

.

15

********************************** 予告 ********************************** おいに関連 次回の講義では、「関数のあてはめ」が主題です。第2回のレポート課題ともお があります。特に、最小二乗法の理論は重要です。補助使用 P.159∼161 に記述されてい ますので、講義前にご一読いただくとより理解しやすくなります。

参照

関連したドキュメント

フロートの中に電極 と水銀が納められてい る。通常時(上記イメー ジ図の上側のように垂 直に近い状態)では、水

に文化庁が策定した「文化財活用・理解促進戦略プログラム 2020 」では、文化財を貴重 な地域・観光資源として活用するための取組みとして、平成 32

適合 ・ 不適合 適 合:設置する 不適合:設置しない. 措置の方法:接続箱

添付資料 4.1.1 使用済燃料貯蔵プールの水位低下と遮へい水位に関する評価について 添付資料 4.1.2 「水遮へい厚に対する貯蔵中の使用済燃料からの線量率」の算出について

添付資料 4.1.1 使用済燃料貯蔵プールの水位低下と遮へい水位に関する評価について 添付資料 4.1.2 「水遮へい厚に対する貯蔵中の使用済燃料からの線量率」の算出について

○関計画課長

表 2.1-1 に米国の NRC に承認された AOO,ATWS,安定性,LOCA に関する主な LTR を示す。No.1 から No.5 は AOO または ATWS に関する LTR を,No.6 から No.9 は安定性に 関する

添付資料 4.1.1 使用済燃料プールの水位低下と遮蔽水位に関する評価について 添付資料 4.1.2 「水遮蔽厚に対する貯蔵中の使用済燃料からの線量率」の算出について