コンピュータプラクティス I 時間の測定 水野嘉明

Slides:



Advertisements
Similar presentations
計測工学 - 測定の誤差と精度 2- 計測工学 2009 年 4 月 28 日 Ⅱ限目. 授業内容 2.1 数値計算における誤差 2.2 計算過程での誤差 2.3 測定の精度.
Advertisements

コンピュータプラクティ スⅠ 比較実験 水野嘉明. 本日の予定 計算量について 「比較実験」  パラメータを変化させての比較 ⇒ 実験1  二つのプログラムの比較 ⇒ 実験2  実験レポート R3として提出 2.
の範囲に、 “ 真の値 ” が入っている可能性が約 60% 以上ある事を意味する。 (測定回数 n が増せばこの可能性は増 す。) 平均値 偶然誤差によ るばらつき v i は 測定値と平均値の差 で残差、 また、 σ は、標準誤差( Standard Error, SE ) もしくは、平均値の標準偏差、平均値の平均二乗.
コンピュータプラクティ スⅠ 校正 水野嘉明. 本日の内容 「校正」 Word による自動校正  小論文:「校正の必要性」につい て 人による校正  前回作成したファイルを、他の人 と交換して校正 レポート提出  完成したファイルを R0 として提出 2.
情報基礎実習 I (第3回) 木曜4・5限 担当:北川 晃. プログラミング演習 2 つの数を入力し,「計算」ボタンをクリック すると,それぞれの計算結果を次のように 表示するプログラムを作れ.
放射線の計算や測定における統計誤 差 「平均の誤差」とその応用( 1H) 2 項分布、ポアソン分布、ガウス分布 ( 1H ) 最小二乗法( 1H )
コンピュータプラクティ スⅠ アンケート 水野嘉明 1. 本日の予定 「アンケート」  人間的な要因を評価するための 一手段として、アンケートの方 法について学ぶ  実験では、アンケートの集計を 行う 2.
プログラミング演習( 2 組) 第 9 回
オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
コンピュータプラクティス I 口頭発表 水野嘉明
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
コンピュータプラクティス I 再現性 水野嘉明
演算、整数型と浮動小数点型 第3回目 [4月27日、H.16(‘04)] 本日のメニュー 1)前回の課題・宿題 2)ファイルサーバの利用
初年次セミナー 第4回 整数と実数の取り扱い.
基礎プログラミングおよび演習 第9回
有効数字 有効数字の利用を考える.
基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習)
計測工学 -測定の誤差と精度1- 計測工学 2009年4月21日 Ⅱ限目.
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
プログラミング論 II 電卓,逆ポーランド記法電卓
スクリプト言語を用いたPHITSの連続実行
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
コンピュータプラクティス I コンピュータプラクティスⅠ 校正 水野嘉明 校正.
情報処理3 第5回目講義         担当 鶴貝 達政 11/8/2018.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
第10回関数 Ⅱ (ローカル変数とスコープ).
アルゴリズムとプログラミング (Algorithms and Programming)
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
前回の練習問題.
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
すべてのレポートの提出期限 1月22日 火曜日 これ以降は特殊な理由が無い限り レポートを受け取りません!
関数の再帰呼び出しとは ハノイの塔 リダイレクト レポート課題
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
情報処理Ⅱ 第2回:2003年10月14日(火).
コーパス言語学 ~バッチ処理~ 2013.10. 28.
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
C言語 はじめに 2016年 吉田研究室.
補講:アルゴリズムと漸近的評価.
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
データの表現 2進数 0と1を使う。 基数(基準になる数)が2. 101(2) かっこで2進数と示すことがある。
基礎プログラミング演習 第6回.
ウェブデザイン演習 第6回.
計測工学 -測定の誤差と精度1- 計測工学 2010年5月10日 Ⅰ限目.
復習 if ~ 選択制御文(条件分岐) カッコが必要 true 条件 false 真(true)なら この中が aを2倍する 実行される
「計算誤差と有効数字」 情報電子工学演習Ⅰ 工学基礎演習(2) Ⅰ. スケジュールの確認 6/3 概要説明
標準入出力、変数、演算子、エスケープシーケンス
「計算誤差と有効数字」 情報電子工学演習Ⅰ 工学基礎演習(2) Ⅰ. スケジュールの確認 5/28 概要説明
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
プログラミング演習I 数値計算における計算精度と誤差
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
第7章 そろそろ int 以外も使ってみよう! ~データ型 double , bool~
情報処理Ⅱ 第2回 2004年10月12日(火).
情報処理Ⅱ 2005年11月25日(金).
第10回 関数と再帰.
プログラミング入門2 第5回 配列 変数宣言、初期化について
第2章 数値の入力と変数 scanfと変数をやります.
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
香川大学創造工学部 富永浩之 情報数学1 第3-3章 多進法での四則演算 香川大学創造工学部 富永浩之
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります.
プログラミングの原理 データ構造とプログラミング (第4回).
Presentation transcript:

コンピュータプラクティス I 時間の測定 水野嘉明 コンピュータプラクティスⅠ 時間の測定 水野嘉明 時間の測定 1

本日の内容 プログラムの性能評価 有効数字、測定精度 プログラム実行時間の測定 実験1 実験2、3、レポートは次回

プログラムの評価基準 性能 (performance) 機能 (function) 再利用性 (reusability) 安全性 (信頼性 reliability) 維持性 (保守性 serviceability,maintenancebility)

性能の評価 実行時間 行数や命令数は実行時間と強い相関 資源(resource: メモリやディスク容量等)の消費量

物理量の測定 物理量の測定においては、目盛りの10分の1まで読む (アナログ時) 測定値には必ず誤差がある 物理量の測定においては、目盛りの10分の1まで読む (アナログ時) mm 5 10 15 12.3mm 測定値には必ず誤差がある 12.3mmの 「.3」はあまり確かではない 12.3±0.05 の範囲を示すと考える

有効数字 この測定値を 「12.3123mmだ!」 と主張しても意味はない 「12.3」までが意味のある数字 = 有効数字 mm 5 10 15 「12.3」までが意味のある数字 = 有効数字 測定の精度を考慮した上で特にその桁の数字に書くだけの合理的根拠があること

有効数字の表記 「12」 と 「12.0」 は異なる 12 ⇒ 12±0.5 (11.5~12.5) 有効数字2桁 「12」 と 「12.0」 は異なる 12 ⇒ 12±0.5 (11.5~12.5) 12.0 ⇒ 12.0±0.05 (11.95~12.05) 120 と書いてあったら? 有効数字3桁 各々 1.2×101 1.20×101 1.20×102(または 1.2×102 )と表記する 科学表記

有効数字の計算 (乗除) 乗除の結果の有効数字は、元の有効桁数の小さな方と等しい 1.23×102 × 3.4×103 = 4.182×105 = 4.2×105 有効数字2桁

有効数字の計算 (加減) 加減算は、桁を揃えて計算してから、一番粗い(有効数字の末位が最高の)項に有効数字の末位を揃える 1.23×102 + 3.4×103 = 0.123×103 + 3.4×103 = 0.1×103 + 3.4×103 = 3.5×103

有効数字の計算 (加減) 有効数字の桁数が、増えたり減ったりすることがある 特に桁落ちに注意する 1.234×102 - 1.233×102 = 123.4 - 123.3 = 1×10-1 有効数字4桁同士の演算の結果が有効数字1桁に

有効数字の計算 (定数の扱い) 測定値でない数値(定数など)は、有効数字は無限桁数と考える 有効数字の計算 (定数の扱い) 測定値でない数値(定数など)は、有効数字は無限桁数と考える π、√2などは、有効数字より1桁以上大きい桁数を使用する 練習:球の半径が 2.674m(有効数字 4桁)と計測されたとき、表面積は 4×3.1416×2.674×2.674 = 89.85 (m2) 4πr2 =

有効数字の計算 (筆算) 筆算するときは、計算の途中では有効数字よりも1桁分だけ桁数の大きな数で計算する 全桁計算し最後に丸める⇒面倒&ミスのもと、センスが悪い 毎回丸める⇒有効数字が落ちるので 不可

有効数字の計算: 練習 {(2.234×5.67815)+100.9049}×4.60 次の計算をせよ 2.234 × 5.67815 = + 100.9049 = × 4.60 =

練習 解説 不可な例 面倒&ミスのもと、センスが悪い 精度が落ちる 2.234 × 5.67815 = 12.6849871 練習 解説 面倒&ミスのもと、センスが悪い 不可な例 2.234 × 5.67815 = 12.6849871 12.68498710 + 100.9049 = 113.5898871 113.5898871 × 4.60 = 522.51348066 = 523 2.234 × 5.67815 = 12.68 12.68 + 100.9049 = 113.58 113.58 × 4.60 = 522 精度が落ちる

練習 解説 本当は全桁数4桁の 12.68 だが、1桁増やす 2.234 × 5.67815 = 12.685 12.685 + 100.9049 = 113.590 113.590 × 4.60 = 523 本当は小数第2位までの 113.59 であるが,1桁増やす

測定精度 測定器により測定精度は異なる 最小目盛(分解能)が1mmのデジタル式定規では、1mm未満の長さは測れない

測定精度 前記の1mm刻みの定規で 1mm未満の長さを測るには、拡大して(または同じものを複数並べて)測り、測定値を倍率で割る プログラムの時間を計る場合も同じ 測定精度が不足する場合は、繰返し実行させて計測する 秒単位で 100秒以上計測すれば 有効数字は2桁

測定精度 100ヶ並べて 85mmならば 1ヶの幅は 8.5×10-1mm ・・・ 100ヶ並べて 85mmならば 1ヶの幅は 8.5×10-1mm 100回実行して 85秒ならば 1回の実行時間は 8.5×10-1秒

測定精度: 練習 1mm刻みの定規で、44ヶ並べて計測したところ、909mmであった。1ヶの長さは何mmか? ・・・ 44ヶ : 909mm 答: 909/44 = 20.65909090909090・・ = 2.07×101 (mm)

平均 測定数値を平均しても、有効数字の桁は増えない 誤差(ばらつき)をキャンセルすることはできる プログラムの実行時間のように測定値が分解能より小さい場合は、繰り返し実行させた時間を測定する

時間による性能評価 – バッチによる応答時間の計測 時間による性能評価 – バッチによる応答時間の計測 測定の原理 1. 開始時刻を測定 2. 対象プログラムを、十分な回数 実行する 3. 終了時刻を測定 4. (終了時刻ー開始時刻) を回数で 割れば、一回あたりの実行時間

時間による性能評価 – バッチによる応答時間の計測 時間による性能評価 – バッチによる応答時間の計測 TIMEコマンド (Windows) 現在時刻を分単位で表示する time関数 (C言語) 秒単位の時刻を求めるtime()とctime()を用いて、時刻を秒単位で表示する

TIMEコマンド コマンドプロンプト(CMD.EXE)にて使用 TIME/T /Tがないと 時刻の設定 /Tがあると 分単位の表示

time()関数 time_t time(time_t *t) システム時刻までの経過時間を t に設定する コンピュータプラクティス I time()関数 time_t time(time_t *t) システム時刻までの経過時間を t に設定する 経過時間 t は、万国標準時(UTC)の「1970年1月1日 0時0分0秒」からの経過時間を秒単位で表した数値 万国標準時(UTC)は、「UCT」ではない。 時間の測定

ctime()関数 char *ctime(const time_t *t) 経過時間 t を現地時間に合わせて日時の文字列に変換する

演習1 現在時刻を秒単位で表示するプログラム second.exe を作成せよ // second: 秒単位での日付・時刻を表示 コンピュータプラクティス I 演習1 現在時刻を秒単位で表示するプログラム second.exe を作成せよ // second: 秒単位での日付・時刻を表示 // 2009 May 水野嘉明 (テキストの付録Cを編集) #include <stdio.h> #include <time.h> int main( void ) { time_t t; // 現在時刻 time(&t); // 現在時刻を求める printf("%s\n", ctime(&t)); // 日時の文字列に変換し表示 return 0; } MinGW ? 時間の測定 26

バッチファイル 複数のコマンドを記述しておき、一括して実行する テキストで記述する エディタ(ノートパッド等)を使用する 拡張子は .BAT コマンドプロンプト(CMD)にて使用

バッチファイル @ECHO OFF REM FOO.BAT:時間測定 REM 2008/11 MIZUNO TIME /T 以後のコマンドを 表示しない @ECHO OFF REM FOO.BAT:時間測定 REM 2008/11 MIZUNO TIME /T A.EXE > NUL PAUSE コメント 時刻表示 測定したいコマンド >NUL は出力を捨てる 停止してキー入力待ち

バッチでの繰り返し 同じコマンドを100回繰り返すには、 FOR /L %%I IN (1,1,100) DO A.EXE 制御変数 開始値、刻み、終値 実行するコマンド 変数%Iを 1から100まで動かしながら、という意味 回数を増やすときは「100」を書き換える

バッチによる応答時間計測 計測しているのは、正確に言えば「応答時間 」 ロード時間 + 実行時間 さらに、計測用コマンド(TIME または second)の応答時間も含まれる これらについては、次回

演習2 second.exeを用いたバッチファイルにより、あるプログラムの応答時間を測定した。繰返し回数100回 で測定したところ、24秒 という結果になった。 真の応答時間は、どのような範囲にあると考えられるか この測定で得られる有効数字の桁数は、何桁か

演習2 解説 全体の(100回分の)時間は どちらも、0:00~0:24 の24秒間 つまり、全体時間は23秒超25秒未満 23秒強 0:0:00 0:01 0:02 0:23 0:24 0:25 23秒強 25秒弱 どちらも、0:00~0:24 の24秒間 つまり、全体時間は23秒超25秒未満

演習2 解説 したがって、応答時間の範囲は 有効数字は、1桁 0.23秒 ~ 0.25秒 2×10-1秒

実験1 プログラム全体の応答時間 プログラムL06Y01(付録A)について応答時間を TIME、second(time関数)のそれぞれの方法で測定せよ TIME、secondの各方法での有効数字桁数は、各々1桁、2桁 になるように繰返し回数を設定する 二つの方法の応答時間を比較し、考察せよ

実験1の注意事項 (1) TIMEとsecondでは、繰り返し回数は当然異なる 必要な有効数字桁数が出る回数 ⇒ 同じになってはおかしい 分単位 有効数字1桁 10分程度 second 秒単位 有効数字2桁 100秒程度 ※ 繰返し回数は、レポートに明記すること

実験1の注意事項 (2) プログラム L06Y01.EXE は、サーバではなく ローカルマシンに置くこと ネットワークの負荷によるばらつきが大きい

実験1の注意事項 (3) 実験レポートの章立ては、R1とは異なる 章立ては、固定されたものではない R2では、R1とは別の章立てを用いる (CP2以降で用いるもの)

新しい章立て

新しい章立て 章の構成 表紙 第4章 実験結果 目次 第5章 考察と結論 第1章 目的 第6章 課題 第2章 理論 参考文献、付録 第3章 実験方法

新しい章立て 「目的」 R1の「序論」に相当する 次のようなことを記述する 実験の目的・意図 (結論と対応する事を忘れない) 各実験の関係 レポートの全体像・構成

新しい章立て 「理論」 どのような理論あるいは原理に基づき実験を行ったかを書く 各実験について、 理論と観察に基づき仮説を立てる 何を対象に、どのような測定を行なうかを書く

新しい章立て 「実験方法」 実験で使った道具(ツール、ソフトウエアなど)を明示する 実験の手順、条件、環境を詳しく 第3者が、このレポートだけ を読んで、同じ実験が間違いなくできるように書く

新しい章立て 「実験結果」 各実験の結果を文章で書く 表やグラフを有効に利用する 観測した生の値を省略しないこと 四捨五入した値だけだと、妥当性が検証できないことがある

新しい章立て 考察と結論 考察は、今回の実験全体を通して得られたこと(知見)を論理的に導くこと 結論は、目的の章の内容と対応させ、実験により分かったことを書く (感想を書かないこと)

新しい章立て 課題 課題は通常、文献の調査と考察からなる 二つ以上の文献を調べ、参照・引用する 考察は、必ず自分の言葉で書く (自分の文章と引用は区別する、引用だけで終わらない)

実験を開始して下さい

次回の予定 「性能評価」 応答時間と実行時間、起動時間 実験レポート R2 応答時間の測定 起動時間の測定 コマンドプロンプト

お疲れさまでした