diff options
Diffstat (limited to 'packages/sundials')
-rw-r--r-- | packages/sundials/src/Main.hs | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/packages/sundials/src/Main.hs b/packages/sundials/src/Main.hs index b65d668..14b1f8a 100644 --- a/packages/sundials/src/Main.hs +++ b/packages/sundials/src/Main.hs | |||
@@ -25,8 +25,8 @@ lorenz _t u = [ sigma * (y - x) | |||
25 | y = u !! 1 | 25 | y = u !! 1 |
26 | z = u !! 2 | 26 | z = u !! 2 |
27 | 27 | ||
28 | lorenzJac :: Double -> Vector Double -> Matrix Double | 28 | _lorenzJac :: Double -> Vector Double -> Matrix Double |
29 | lorenzJac _t u = (3><3) [ (-sigma), rho - z, y | 29 | _lorenzJac _t u = (3><3) [ (-sigma), rho - z, y |
30 | , sigma , -1.0 , x | 30 | , sigma , -1.0 , x |
31 | , 0.0 , (-x) , (-beta) | 31 | , 0.0 , (-x) , (-beta) |
32 | ] | 32 | ] |
@@ -51,8 +51,8 @@ brusselator _t x = [ a - (w + 1) * u + v * u * u | |||
51 | v = x !! 1 | 51 | v = x !! 1 |
52 | w = x !! 2 | 52 | w = x !! 2 |
53 | 53 | ||
54 | brussJac :: Double -> Vector Double -> Matrix Double | 54 | _brussJac :: Double -> Vector Double -> Matrix Double |
55 | brussJac _t x = (3><3) [ (-(w + 1.0)) + 2.0 * u * v, w - 2.0 * u * v, (-w) | 55 | _brussJac _t x = (3><3) [ (-(w + 1.0)) + 2.0 * u * v, w - 2.0 * u * v, (-w) |
56 | , u * u , (-(u * u)) , 0.0 | 56 | , u * u , (-(u * u)) , 0.0 |
57 | , (-u) , u , (-1.0) / eps - u | 57 | , (-u) , u , (-1.0) / eps - u |
58 | ] | 58 | ] |
@@ -120,13 +120,13 @@ main = do | |||
120 | putStrLn $ show res | 120 | putStrLn $ show res |
121 | putStrLn $ butcherTableauTex res | 121 | putStrLn $ butcherTableauTex res |
122 | 122 | ||
123 | let res = butcherTable (KVAERNO_4_2_3 undefined) | 123 | let resA = butcherTable (KVAERNO_4_2_3 undefined) |
124 | putStrLn $ show res | 124 | putStrLn $ show resA |
125 | putStrLn $ butcherTableauTex res | 125 | putStrLn $ butcherTableauTex resA |
126 | 126 | ||
127 | let res = butcherTable (SDIRK_5_3_4 undefined) | 127 | let resB = butcherTable (SDIRK_5_3_4 undefined) |
128 | putStrLn $ show res | 128 | putStrLn $ show resB |
129 | putStrLn $ butcherTableauTex res | 129 | putStrLn $ butcherTableauTex resB |
130 | 130 | ||
131 | let res1 = odeSolve brusselator [1.2, 3.1, 3.0] (fromList [0.0, 0.1 .. 10.0]) | 131 | let res1 = odeSolve brusselator [1.2, 3.1, 3.0] (fromList [0.0, 0.1 .. 10.0]) |
132 | renderRasterific "diagrams/brusselator.png" | 132 | renderRasterific "diagrams/brusselator.png" |
@@ -151,12 +151,12 @@ main = do | |||
151 | let res3 = odeSolve lorenz [-5.0, -5.0, 1.0] (fromList [0.0, 0.01 .. 10.0]) | 151 | let res3 = odeSolve lorenz [-5.0, -5.0, 1.0] (fromList [0.0, 0.01 .. 10.0]) |
152 | putStrLn $ show $ last ((toLists $ tr res3)!!0) | 152 | putStrLn $ show $ last ((toLists $ tr res3)!!0) |
153 | 153 | ||
154 | let res3 = odeSolve lorenz [-5.0, -5.0, 1.0] (fromList [0.0, 0.01 .. 10.0]) | 154 | let res3A = odeSolve lorenz [-5.0, -5.0, 1.0] (fromList [0.0, 0.01 .. 10.0]) |
155 | putStrLn $ show $ last ((toLists $ tr res3)!!0) | 155 | putStrLn $ show $ last ((toLists $ tr res3A)!!0) |
156 | 156 | ||
157 | renderRasterific "diagrams/lorenz.png" | 157 | renderRasterific "diagrams/lorenz.png" |
158 | (D.dims2D 500.0 500.0) | 158 | (D.dims2D 500.0 500.0) |
159 | (renderAxis $ kSaxis $ zip ((toLists $ tr res3)!!0) ((toLists $ tr res3)!!1)) | 159 | (renderAxis $ kSaxis $ zip ((toLists $ tr res3)!!0) ((toLists $ tr res3A)!!1)) |
160 | 160 | ||
161 | let res3a = odeSolve lorenz [-5.0, -5.0, 1.0] (fromList [0.0, 0.01 .. 10.0]) | 161 | let res3a = odeSolve lorenz [-5.0, -5.0, 1.0] (fromList [0.0, 0.01 .. 10.0]) |
162 | renderRasterific "diagrams/lorenzA.png" | 162 | renderRasterific "diagrams/lorenzA.png" |