scilab で数値計算

32
東東東東東東東東東東東東東東東東 Y.Sawa Scilab 東東東東東 2008 東 8 東 30 東 Lightweight Language Future

Upload: zephr-horton

Post on 01-Jan-2016

97 views

Category:

Documents


0 download

DESCRIPTION

Scilab で数値計算. 2008 年 8 月 30 日 Lightweight Language Future. 東京大学大学院情報理工学系研究科 Y.Sawa. Scilab って何? 数値計算言語! MATLAB っぽい言語 フリーソフト INRIA で開発 Ocaml や Coq と同様. 数値計算って何? 語りだすと終わらない コンピュータの発達   =数値計算の歴史 今回は簡単な例だけ. 数値計算の具体例. グラフ上の点を直線で近似. えいやっ. やり方. 各点の直線からのずれの 二乗和を最小化する. とりあえず. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Scilab で数値計算

東京大学大学院情報理工学系研究科

Y.Sawa

Scilab で数値計算

2008 年 8 月 30 日Lightweight Language Future

Page 2: Scilab で数値計算

Scilab って何? 数値計算言語! MATLAB っぽい言語 フリーソフト

INRIA で開発 Ocaml や Coq と同様

Page 3: Scilab で数値計算

数値計算って何?語りだすと終わらないコンピュータの発達  =数値計算の歴史今回は簡単な例だけ

Page 4: Scilab で数値計算

数値計算の具体例グラフ上の点を直線で近似

えいやっ

Page 5: Scilab で数値計算

やり方

各点の直線からのずれの二乗和を最小化する1d

2d3d

)min( 23

22

21 ddd

Page 6: Scilab で数値計算

とりあえず点のリストを(x1,y1), (x2,y2), ... (xn,yn)と置くと・・・

nn y

y

y

b

a

x

x

x

2

1

2

1

1

1

1

の最小二乗解を求める!

Page 7: Scilab で数値計算

難しい数学の解説行列を QR 分解して、

n

T

y

y

y

Qb

aR

2

1

の最小化問題に帰着

Page 8: Scilab で数値計算

とかいう議論は難しすぎるので置いといて

Page 9: Scilab で数値計算

やるべきこと1.行列生成

2.最小二乗問題を解く

1

1

1

2

1

nx

x

x

Page 10: Scilab で数値計算

Scilab 使うとこんなの楽勝

Page 11: Scilab で数値計算

行列生成 nxxxxxs ,,, 321

A = [xs', ones(n,1)];

1

1

1

2

1

nx

x

x

A

//配列

Page 12: Scilab で数値計算

最小二乗解法

b = A ys';

nyyyyys ,,, 321

1

1

1

2

1

nx

x

x

A

Page 13: Scilab で数値計算

さらにグラフまで・・・// 点のプロット

> plot(xs, ys, ".");// 線のプロット> xs2 = [1:0.1:6];> plot(xs2, b(1)*xs2+b(2));

Page 14: Scilab で数値計算

さらにグラフまで・・・

Page 15: Scilab で数値計算

すごいでしょ?

でもこれだけじゃなくて

モデリングツールも付属してます

Page 16: Scilab で数値計算

簡単モデリング

Scilab 上から起動できるモデリングツール Scicos> scicosと打つだけで起動!

Page 17: Scilab で数値計算

簡単モデリング

        

ばね壁

おもり

バネ定数: k質量 : m

( 速度に比例する ) 抵抗係数 : α

Page 18: Scilab で数値計算

定式化

ばね壁

おもり

動きを数式で表すと

t

xmmlxk

t

x

//)(2

2

Page 19: Scilab で数値計算

式の意味

t

xmmlxk

t

x

//)(2

2

加速度 ばねの力 抵抗力

・・・で、どうやって解くのさ?

Page 20: Scilab で数値計算

Scicos で解く

t

xmmlxk

t

x

//)(2

2

cbxt

xa

t

x

2

2

この式を基にして、お絵かきする

Page 21: Scilab で数値計算

cbxt

xa

t

x

2

2

2

2

t

x

t

x

x

積分ブロック 積分ブロック

定数ブロック

×a ×b

シミュレーション START

実行結果取得

総和ブロック

Page 22: Scilab で数値計算

cbxt

xa

t

x

2

2

2

2

t

x

t

x

x

の数値解

Page 23: Scilab で数値計算

ここまでのまとめ

Scilab すげーScicos すげー

Page 24: Scilab で数値計算

皆さんも使ってみたくなったでしょ?

Page 25: Scilab で数値計算

ということで

お知らせです

Page 26: Scilab で数値計算

学生の皆さんScilab Toolbox Contest 2008

が開催されます

Page 27: Scilab で数値計算

なんでもいいので

Scilab の Toolbox作ってください

Page 28: Scilab で数値計算

めでたく優勝するとフランスに 2 か月行けます

Page 29: Scilab で数値計算

締切: 9 月末日まだ一か月も!

Page 30: Scilab で数値計算

Contest 参加者2006 年 4 人2007 年 6 人2008 年 ????

勝てる確率高し!

Page 31: Scilab で数値計算

奮ってご参加ください

詳細はhttp://www.nii.ac.jp/scilab/contest/2008/index.htmlhttp://scilab.inria.fr/

Page 32: Scilab で数値計算

ご清聴ありがとうございました