基本的には BigFloat を使えば簡単に行うことができて、with_bigfloat_precision を使えば特定の範囲だけ精度を変更できる。
with_bigfloat_precision(30) do
x = BigFloat(0.1)
i = 0
while true
i += 1
x = x/2
y = e^(-x^2)
print(i)
print(",")
print(x)
print(",")
println(y)
if y==1
break
end
end
end
このようにすると、30ビット分の精度で計算できるし、30を1000にすれば、もちろんもっと精度が出せる。
ちなみに、
X = [BigFloat(rand()) for i=1:5, j=1:5]
とすれば、5x5 の行列なども作れる。
足し算や inv など基本的な操作はすでに行えるが、eig や chol のあたりはまだ実行できない様子である。
行列周りが完全ではないけど、いろいろとできる範囲はそれなりに広くて、なかなかに面白そうな機能だ。
0 件のコメント:
コメントを投稿