Haskell の学習を始めたばかりで、hmatrix ライブラリの使用に問題があります。累乗反復法を使用して固有値を計算する簡単なコードを書きたいと思います。私はから始めます:
c = fromList [4.0, 4.0, 4.0, 4.0]::Vector Double
n = norm2 c
ベクトル c を作成し、ベクトルの 2 ノルムを見つけます。
との乗算c
:
c * 2 (Works)
c * 0.5 (Works)
c * pi (Works)
c * n (Error)
私はそれをチェックしました:
>:t pi
pi :: Floating a => a
>:t n
n :: Double
問題は型にありますが、それを回避する方法がわかりません。
(/)
この場合、独自の関数を定義する必要がありますか?
更新: ghci から取得したエラー:
Couldn't match expected type `Vector Double'
with actual type `Double'
In the second argument of `(*)', namely `n'
In the expression: c * n
In an equation for `it': it = c * n