レポート9(プログラミングまとめ)
TOPに戻る
関数 f(x)=0.2x3-0.15x2-0.005x+2.0 について,0<=x<=10の範囲における積分を求めるプログラムreport8を作れ.
積分は以下のように行う.
- 積分範囲を微小区間dxずつにn分割(dx=10.0/n)
- ある微小区間xi,xjにおける積分を,台形の面積として近似する(積分値=dx*(f(xi)+f(xj))/2.0)
n等分したi番目の区間をxi <= x < xjと表すと, xi = dx*(i-1),xj = dx*i である.
関数の値f(xi)やf(xj)は,それぞれ別の変数に記憶させておくとよい.
例えば,
x=xi での関数の値を fxi = 0.2*xi*xi*xi-0.15*xi*xi-0.005*xi+2.0
x=xj での関数の値を fxj = 0.2*xj*xj*xj-0.15*xj*xj-0.005*xj+2.0
とすると,この微小区間の積分値 tmp は次のように求められる.
tmp = dx*(fxi+fxj)/2.0
- 微小区間における積分を全区間において計算し合計する.
全体の積分をarea,微小区間の積分値をtmpとすると,area = area +tmp を繰り返し(i=1からnまで)計算していけば良い.ただし,forループが始まる前に,areaの値を初期化(ゼロを代入)しておく必要がある.
注意事項:
- 分割数をA1セルに入力しておいて,プログラム実行時に変数nに代入できるようにすること.入力値が0(ゼロ)以下の時はエラーを表示するようにする.
- 計算結果(積分値)のみをB1セルに表示する.
- 自分自身でも積分を求め,正解を求めておく.
- できるだけ,ヒントを見ないでやってみること.
- これだけでは,どうしてもわからない人は,ヒント1を見ること.
レポート内容:
- 学生証番号
- 氏名
- 手計算で数学的に求めた正解
- プログラム
report9
を使って計算したとき,分割数をいくらにすれば正解が求められるか確認し,その分割数を答えよ.
- A.問題だけで解けたか.B.ヒント1を見て作ったか.C.ヒント2を見て作ったか.D.人に教えてもらってやっとわかったか.A〜Dで記入.
- ちゃんと動く
report9
を添付すること.(動かないものや,計算結果が正しくないものは評価されない.)
課題提出について
課題の提出方法(メール添付,WebCT等)については授業中に指示があるのでよく聞いておくこと.
メールで提出する場合の参考:
TO: <授業中に指定>
CC: (自分のログイン名)@se.ritsumei.ac.jp
Subject: <授業中に指定>
本文:
1行目は最初に学生証番号を半角数字で打ち,半角スペースを1つ入れて,日本語モードにして漢字氏名を入力.名字と名前は続けて書くこと.
例)0000000000-0 建設環太郎
TOPに戻る