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

ランダムウォークと擬似乱数生成

N/A
N/A
Protected

Academic year: 2021

シェア "ランダムウォークと擬似乱数生成"

Copied!
20
0
0

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

全文

(1)

ランダムウォークと擬似乱数生成

樋口さぶろお

龍谷大学理工学部数理情報学科

計算科学☆演習II L01(2015-04-10 Fri)

今日の目標

ランダムウォークとは何か説明できる Cで擬似一様乱数を生成できる

Cで離散的な値をとる乱数を生成できる

http://hig3.net

(2)

はじめに この授業どんなのり?

ここまで来たよ

1 はじめに

この授業どんなのり?

2 ランダムウォーク ランダムウォーク 擬似乱数

擬似乱数の正しい/間違ったプログラム

(3)

はじめに この授業どんなのり?

講義+演習の目標

もう少し正確にはシラバスを見てね.

現象の確率モデルとは何か,例をあげて説明できる.

確率モデルをオイラー表示とラグランジュ表示で表現し,量を計算す ることができる.

確率モデルのシミュレーションのプログラムを作成し,その実行結果 から,表計算ソフトウェア・統計ソフトウェアを用いて統計的推定・

検定を行うことができる ...

チームで協力して問題を解決できる,効率よく質問できる,自分の学 習方法を改善できる

(4)

はじめに この授業どんなのり?

計算科学☆演習IIを履修した方ががいい人

確率過程論stochastic process (=時間に依存する確率的現象)を知り たい人

微分方程式(決定論的モデル)の見ていない,残り半分の確率論的モ デルを見たい人

モデル駆動の研究が見ていない,データ駆動の研究の世界を見たい人 偶然性のあるゲームを仕組みからわかって作りたい人

確率を,プログラム作成と組み合わせて実感したい人 コンピュータでデータの解析ができるようになりたい人 計算科学☆演習IIを履修しない方がいい人

(単位をとっているかどうかに関わらず)確率統計☆演習I,数値計算 法・演習がぜんぜんわかってない感がある人,この機会にわかろうと いう決意のない人

講義・演習を片方しか履修できない人

(5)

はじめに この授業どんなのり?

計算科学II(講義)ののり 必ず計算科学演習IIと同時に履修してね.

成績計算注文の多い科目です…科目の成績100ピーナッツは 30ピーナッツ:毎回授業でのquiz,授業時間外の予習復習など 30ピーナッツ:プチテスト

40ピーナッツ:ファイナルトライアル その他追加ピーナッツ. その時に説明.

ファイナルトライアル時点で20ピーナッツ未満の人は,本試験は(平均点 を上げるために)参加をおすすめしますが,追試験は実施しません. 資料授業で配布. 授業後に欲しい人はhttp://hig3.net から各自ダウン

ロード. 1-503前のレターボックスに残ってることも.

欠席届ピーナッツ的に考慮されたい場合は,専用用紙に事情を説明する書 類を貼って,授業前後各5分に提出(事前事後とも可. ファイナルトライ アルが締切). 欠席に事前連絡は不要. 何回欠席しても期末試験受験資格 を失うことはありません.

(6)

はじめに この授業どんなのり?

計算科学演習IIののり 必ず計算科学IIと同時に履修してね.

成績計算注文の多い科目です…科目の成績100ピーナッツは 20ピーナッツ:毎回の課題

80ピーナッツ:プチテスト春15+初夏30+35

実習室に行ったら,http://hig3.net→ 計算科学☆演習II. 担当者ののり

なまえ: 樋口さぶろお hig-compsci2@math.ryukoku.ac.jp へや: 1-502

オフィスアワー: 6(1-539), 6(1-502). 訪問歓迎な時間: 火木昼. お弁当持参歓迎. お湯あげます.

Webページ: http://hig3.net 演習の指示や,スケジュールもここ から.

(7)

はじめに この授業どんなのり?

1週間のタイムライン

1 11:05まで 演習の復習,講義の予習問題L(eラーニング) 成績とし

ては講義

2 2 計算科学II(7-002), quiz

3 6 樋口オフィスアワー(1-502)

4 or火 このころ演習のタスク公開

5 6 樋口オフィスアワー(1-539)

6 13:35まで 演習の予習問題E(eラーニング) 成績としては演習

7 3 計算科学演習II(1-609), quiz 返却,タスク提出

(8)

ランダムウォーク ランダムウォーク

ここまで来たよ

1 はじめに

この授業どんなのり?

2 ランダムウォーク ランダムウォーク 擬似乱数

擬似乱数の正しい/間違ったプログラム

(9)

ランダムウォーク ランダムウォーク

C言語で数列の計算

数値計算法

数列 {X(t)},時刻 t= 0,1,2, . . ..

初項 X(0) = 0

漸化式 X(t+ 1) =X(t) +R(t+ 1).

階差数列 R(t+ 1) = 定数 なら X(t) は等差数列. C言語で数列を書くと?

1 i n t x ;

2 i n t r ;

3 i n t t ;

4 x=初 項;

5 f o r( t =0; t<100; t ++){

6 p r i n t f ( ”%d\n ” , x ) ;

7 r =(階 差 数 列 の 一 般 項 R(t+ 1)) ;

8 x=x+r ;

9 }

(10)

ランダムウォーク ランダムウォーク

ランダムウォーク

ランダムウォーク 階差数列R(t+ 1)

確率変数

現象の数学A,確率統計II

つまり R(t+ 1)がランダム. 例えば,こんな場合.

R(t+ 1) 確率

+1 p

−1 q(= 1−p)

等差数列 vsランダムウォーク

20 40 60 80 100 t

-6 -4 -2 2 4 6 x

ランダムウォークってどんな ところに出てくる?

株価変動 ブラウン運動 ゲーム

数値積分

(11)

ランダムウォーク 擬似乱数

ここまで来たよ

1 はじめに

この授業どんなのり?

2 ランダムウォーク ランダムウォーク 擬似乱数

擬似乱数の正しい/間違ったプログラム

(12)

ランダムウォーク 擬似乱数

擬似乱数列の生成 乱数列=ランダムな数列

R(t+ 1)C言語でどう書く?

1 #i n c l u d e <s t d l i b . h>

2

3 /∗ 0以 上 RAND MAX 以 下 の 正 の 整 数 を ラ ン ダ ム に 選 ん で 返 す 関 数 ∗/

4 i n t r a n d ( ) ;

5

6 / そ の 初 期 化 /

7 v o i d s r a n d (u n s i g n e d i n t s e e d ) ;

RAND MAX M PI みたいな定数. 値は処理系による. たとえば

2311.

今の目的としては,得られる値は,+1,1だけでいいんだけどな〜

偶数奇数で ± 1 にわけるのは「実は」危険

(13)

ランダムウォーク 擬似乱数

この授業の約束(+世の中の習慣). rand()を生で使わず,いったん[0,1) 一様乱数(01の間の実数を同じ確率で返す)にして使う.

double getuniform()

1 /∗ [ 0 , 1 ) 一 様 乱 数 ∗/

2 d o u b l e g e t u n i f o r m ( ){

3 r e t u r n r a n d ( ) / ( 1 . 0 +RAND MAX ) ;

4 }

getuniform()の性質

値域[0,1). 0getuniform()<1.

(getuniform()< p となる確率)=p.

1

0 2 3 RAND_MAX

0 0

rand()

getuniform()

1

(14)

ランダムウォーク 擬似乱数

計算機の頭の中どうなってんの? 擬似乱数列=‘ほぼランダムな数列

(15)

ランダムウォーク 擬似乱数

ある確率で ±1 を返したい!

1 / 引 数y[ 0 , 1 )一 様 乱 数 な ら, g e t r a n d o m の 返 り 値 は

2 確 率1 / 4−1 , 確 率3 / 4+1∗/

3 i n t g e t r a n d o m (d o u b l e y ){

4 i f( y< 0 . 2 5 ){

5 r e t u r n −1;

6 } e l s e {

7 r e t u r n +1;

8 }

9 }

0.5 1.0 1.5 2.0

y

-1 1 r

r=getrandom(getuniform());

(16)

ランダムウォーク 擬似乱数の正しい/間違ったプログラム

ここまで来たよ

1 はじめに

この授業どんなのり?

2 ランダムウォーク ランダムウォーク 擬似乱数

擬似乱数の正しい/間違ったプログラム

(17)

ランダムウォーク 擬似乱数の正しい/間違ったプログラム

ソースコード1:乱数

1 /

2 r a n d 1 . c−− −1 o r +1 を 確 率1 / 4 , 3/4で 選 ぶ 乱 数 3 Timestamp : ”20130409 Tue 1 8 : 5 7 JST h i g ”

4 ∗/

5 # d e f i n e _ C R T _ S E C U R E _ N O _ W A R N I N G S // VC++2008用 お ま じ な い 6 # i n c l u d e < s t d i o . h >

7 # i n c l u d e < s t d l i b . h > /∗s r a n d ( ) , r a n d ( ) を 使 う の に 必 要 ∗/

8

9 /∗ 関 数 プ ロ ト タ イ プ 宣 言∗/

10 d o u b l e g e t u n i f o r m ();

11 int g e t r a n d o m ( d o u b l e y );

12

13 int m a i n (){

14 int s e e d ; /∗疑 似 乱 数 の シ ー ド ∗/

15 int t ; /∗カ ウ ン タ ∗/

16 int t m a x = 1 0 0 ; /∗疑 似 乱 数 を 得 る 回 数 ∗/

17

18 s c a n f ( " % d " ,& s e e d );

19 s r a n d ( s e e d ); /∗ シ ー ド の 設 定∗/

20 for ( t =0; t < t m a x ; t + + ) {

21 /∗s r a n d ( s e e d ) ; ∗/ /∗ここに置くと? ∗/

22 p r i n t f ( " % f \ n " , g e t r a n d o m ( g e t u n i f o r m ( ) ) ;

23 }

24 r e t u r n 0;

25 } 26

27 /∗ ∗ [ 0 , 1 ) 一 様 疑 似 乱 数 を 返 す ∗/

28 d o u b l e g e t u n i f o r m (){

29 r e t u r n r a n d ( ) / ( R A N D _ M A X + 1 . 0 ) ; 30 }

31

32 /∗ ∗ −1 o r +1 を 確 率1 / 4 , 3/4で 返 す 乱 数 ∗/

33 int g e t r a n d o m ( d o u b l e y ){

34 if ( y < 0 . 2 5 ){

35 r e t u r n -1;

36 } e l s e {

37 r e t u r n +1;

38 }

39 }

(18)

ランダムウォーク 擬似乱数の正しい/間違ったプログラム

L01-Q1

Quiz(rand()の振る舞い)

次のプログラムで, Aが出力される確率は?

1 i f( g e t u n i f o r m ()== g e t u n i f o r m ( ) ){

2 p r i n t f ( ”A\n ” ) ;

3 } e l s e {

4 p r i n t f ( ”B\n ” ) ;

5 }

1 0

2 0 に近い

3 1/2

4 1/2 くらい

5 1 に近い

6 1

(19)

ランダムウォーク 擬似乱数の正しい/間違ったプログラム

L01-Q2

Quiz(rand()の振る舞い)

次のプログラムで, Aが出力される確率は?

1 i f( g e t u n i f o r m ( ) < 0 . 1 ){

2 i f( g e t u n i f o r m ( ) < 0 . 2 ){

3 p r i n t f ( ”A\n ” ) ;

4 }

5 }

1 0

2 0.02

3 0.1

4 0.2

5 0.3

6 1

(20)

ランダムウォーク 擬似乱数の正しい/間違ったプログラム

L01-Q3

Quiz(擬似乱数の使いかた)

サンプルプログラムを参考に,引数 y として[0,1)一様乱数が与えられた とき,下の確率で値を返すint getrandom(double y)を書こう.

返り値 確率

−1 1/3 0 1/2 +1 1/6

Hint: getrandom() のグラフは,なぜ,どういう形になるべき?

予習復習問題次回の演習までの間には,まだ予習復習問題はありません.

manaba出席カード提出

https://attend.ryukoku.ac.jp

参照

関連したドキュメント

The purpose of this course is for students to acquire basic knowledge required for AI Solution

平成 30 年度は児童センターの設立 30 周年という節目であった。 4 月の児―センまつり

図表 3 次世代型企業の育成 項 目 目 標 ニッチトップ企業の倍増 ニッチトップ企業の倍増(40 社→80 社). 新規上場企業数の倍増

区分 授業科目の名称 講義等の内容 備考.. 文 化

授業科目の名称 講義等の内容 備考

具体的な取組の 状況とその効果 に対する評価.

具体的な取組の 状況とその効果 に対する評価.

学年 海洋教育充当科目・配分時数 学習内容 一年 生活科 8 時間 海辺の季節変化 二年 生活科 35 時間 海の生き物の飼育.. 水族館をつくろう 三年