Changes between Initial Version and Version 1 of GB12301/2013-04-23


Ignore:
Timestamp:
04/23/2013 09:53:02 AM (11 years ago)
Author:
chris
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • GB12301/2013-04-23

    v1 v1  
     1== 数値計算法 第2週 ==
     2
     3モンテカルロ法はサンプル数nに対してsqrt(n)程度で制度が上がる。 → サンプル数を100増やして1/10の改善
     4
     5* MATLABが遅い原因は
     6* メモリはどれくらい必要なのか
     7
     8実験によると、モンテカルロ法のオーダはO(n)とみられる。
     9
     10* MATLABでは配列を宣言しなくても使える
     11 * 遅くなる原因のひとつ
     12 * 0で埋まってる配列を作ってメモリを確保する方法がある
     13
     14{{{
     15  x = zeros(1,n); % 1行n列のゼロ行列を生成
     16}}}
     17{{{
     18  x = rand(1,n); % for-loop無しで乱数を生成。x,yどちらも一気に代入すると値の順序が異なっているためアレ
     19}}}
     20
     21{{{#!comment
     22LINQ星人のお出ましじゃあ
     23}}}
     24
     25ベクトルや行列の要素ごとに計算
     26{{{
     27 r = x.^2 + y.^2; % x,yの各要素を2乗してrに入れる
     28}}}
     29 rがベクトルであるとき、t = (r <= 1) は、rの要素ごとを調べて1以下ならtに代入している(のでかならずしもベクトルrの大きさと一致しない)
     30
     31工夫次第でfor文を完全に除去できる場合もある。
     32
     33MATLABでの関数の作り方
     34{{{
     35function [a,b,c] = function_name(x,y) % ファイルに関数を分離するときは、先頭にこの行を付ける
     36
     37ただし、
     38a,b,c ... 出力する変数のリスト
     39x,y ... 入力する変数のリスト
     40
     41呼び出し方:
     42[a,b,c] = function_name(x,y);
     43}}}
     44
     45* function_name.m として保存
     46 * 呼び出すときには".m"を除いた関数名を用いる
     47* 関数内の変数はローカル