Scilab で数値計算

Preview:

DESCRIPTION

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

Citation preview

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

Y.Sawa

Scilab で数値計算

2008 年 8 月 30 日Lightweight Language Future

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

INRIA で開発 Ocaml や Coq と同様

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

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

えいやっ

やり方

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

2d3d

)min( 23

22

21 ddd

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

nn y

y

y

b

a

x

x

x

2

1

2

1

1

1

1

の最小二乗解を求める!

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

n

T

y

y

y

Qb

aR

2

1

の最小化問題に帰着

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

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

2.最小二乗問題を解く

1

1

1

2

1

nx

x

x

Scilab 使うとこんなの楽勝

行列生成 nxxxxxs ,,, 321

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

1

1

1

2

1

nx

x

x

A

//配列

最小二乗解法

b = A ys';

nyyyyys ,,, 321

1

1

1

2

1

nx

x

x

A

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

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

さらにグラフまで・・・

すごいでしょ?

でもこれだけじゃなくて

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

簡単モデリング

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

簡単モデリング

        

ばね壁

おもり

バネ定数: k質量 : m

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

定式化

ばね壁

おもり

動きを数式で表すと

t

xmmlxk

t

x

//)(2

2

式の意味

t

xmmlxk

t

x

//)(2

2

加速度 ばねの力 抵抗力

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

Scicos で解く

t

xmmlxk

t

x

//)(2

2

cbxt

xa

t

x

2

2

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

cbxt

xa

t

x

2

2

2

2

t

x

t

x

x

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

定数ブロック

×a ×b

シミュレーション START

実行結果取得

総和ブロック

cbxt

xa

t

x

2

2

2

2

t

x

t

x

x

の数値解

ここまでのまとめ

Scilab すげーScicos すげー

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

ということで

お知らせです

学生の皆さんScilab Toolbox Contest 2008

が開催されます

なんでもいいので

Scilab の Toolbox作ってください

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

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

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

勝てる確率高し!

奮ってご参加ください

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

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

Recommended