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