]> gitweb.michael.orlitzky.com - numerical-analysis.git/commitdiff
Finish the eigenvectors_symmetric tests.
authorMichael Orlitzky <michael@orlitzky.com>
Tue, 4 Feb 2014 20:03:56 +0000 (15:03 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Tue, 4 Feb 2014 20:03:56 +0000 (15:03 -0500)
src/Linear/QR.hs

index f9c5e30294856de0f3f50d7c157067f1e0c9e48f..b628c125e2b0f3b3fc44c449917e8045d72f2dd7 100644 (file)
@@ -13,7 +13,7 @@ where
 import qualified Algebra.Ring as Ring ( C )
 import qualified Algebra.Algebraic as Algebraic ( C )
 import Control.Arrow ( first )
-import Data.Vector.Fixed ( N1, S, ifoldl )
+import Data.Vector.Fixed ( S, ifoldl )
 import Data.Vector.Fixed.Cont ( Arity )
 import NumericPrelude hiding ( (*) )
 
@@ -217,7 +217,9 @@ eigenvalues iterations matrix =
 --   Examples:
 --
 --   >>> import Linear.Matrix ( Col2, Col3, Mat2, Mat3 )
---   >>> import Linear.Matrix ( frobenius_norm, fromList, identity_matrix )
+--   >>> import Linear.Matrix ( column', frobenius_norm, fromList )
+--   >>> import Linear.Matrix ( identity_matrix, vec3d )
+--   >>> import Normed ( Normed(..) )
 --
 --   >>> let m = identity_matrix :: Mat3 Double
 --   >>> let (vals, vecs) = eigenvectors_symmetric 100 m
@@ -233,11 +235,16 @@ eigenvalues iterations matrix =
 --   >>> let expected_vals = fromList [[8],[-1],[-1]] :: Col3 Double
 --   >>> let v0' = vec3d (2, 1, 2) :: Col3 Double
 --   >>> let v0  = (1 / (norm v0') :: Double) *> v0'
---   >>> let v1' = vec3d (1, -2, 0) :: Col3 Double
+--   >>> let v1' = vec3d (-1, 2, 0) :: Col3 Double
 --   >>> let v1  = (1 / (norm v1') :: Double) *> v1'
---   >>> let v2' = vec3d (4, 2, 5) :: Col3 Double
+--   >>> let v2' = vec3d (-4, -2, 5) :: Col3 Double
 --   >>> let v2  = (1 / (norm v2') :: Double) *> v2'
---   >>> frobenius_norm (vals - expected_vals)
+--   >>> frobenius_norm ((column' vecs 0) - v0) < 1e-12
+--   True
+--   >>> frobenius_norm ((column' vecs 1) - v1) < 1e-12
+--   True
+--   >>> frobenius_norm ((column' vecs 2) - v2) < 1e-12
+--   True
 --
 eigenvectors_symmetric :: forall m a. (Arity m, Algebraic.C a, Eq a)
                        => Int