簡単な最小自乗法なら、以下のような感じでプログラムを書ける。
Matlab にそっくりな感じ。
==== least1.jl =====
function leastsquare(m, n, seed)
if m < n
error("Too small m")
end
srand(seed)
A = rand(m,n)
b = rand(m)
xhat = (A'*A) \ (A'*b)
e = A*xhat - b
norm_e = norm(e)
@show A
@show b
@show e
@printf "norm_e = %.3e\n" norm_e
end
===============
実行するには、
julia> include "least1.jl"
julia > leastsquare(5, 2, 1024)
といった感じ。
0 件のコメント:
コメントを投稿