diff options
Diffstat (limited to 'examples/minimize.hs')
-rw-r--r-- | examples/minimize.hs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/examples/minimize.hs b/examples/minimize.hs index d7bc350..5beba3b 100644 --- a/examples/minimize.hs +++ b/examples/minimize.hs | |||
@@ -2,6 +2,7 @@ | |||
2 | import Numeric.GSL | 2 | import Numeric.GSL |
3 | import Numeric.LinearAlgebra | 3 | import Numeric.LinearAlgebra |
4 | import Graphics.Plot | 4 | import Graphics.Plot |
5 | import Text.Printf(printf) | ||
5 | 6 | ||
6 | -- the function to be minimized | 7 | -- the function to be minimized |
7 | f [x,y] = 10*(x-1)^2 + 20*(y-2)^2 + 30 | 8 | f [x,y] = 10*(x-1)^2 + 20*(y-2)^2 + 30 |
@@ -26,18 +27,20 @@ main = do | |||
26 | -- conjugate gradient with true gradient | 27 | -- conjugate gradient with true gradient |
27 | let (s,p) = minimizeCG f df [5,7] | 28 | let (s,p) = minimizeCG f df [5,7] |
28 | print s -- solution | 29 | print s -- solution |
29 | dispR 2 p -- evolution of the algorithm | 30 | disp p -- evolution of the algorithm |
30 | let [x,y] = drop 2 (toColumns p) | 31 | let [x,y] = drop 2 (toColumns p) |
31 | mplot [x,y] -- path from the starting point to the solution | 32 | mplot [x,y] -- path from the starting point to the solution |
32 | 33 | ||
33 | -- conjugate gradient with estimated gradient | 34 | -- conjugate gradient with estimated gradient |
34 | let (s,p) = minimizeCG f (gradient f) [5,7] | 35 | let (s,p) = minimizeCG f (gradient f) [5,7] |
35 | print s | 36 | print s |
36 | dispR 2 p | 37 | disp p |
37 | mplot $ drop 2 (toColumns p) | 38 | mplot $ drop 2 (toColumns p) |
38 | 39 | ||
39 | -- without gradient, using the NM Simplex method | 40 | -- without gradient, using the NM Simplex method |
40 | let (s,p) = minimizeS f [5,7] | 41 | let (s,p) = minimizeS f [5,7] |
41 | print s | 42 | print s |
42 | dispR 2 p | 43 | disp p |
43 | mplot $ drop 3 (toColumns p) | 44 | mplot $ drop 3 (toColumns p) |
45 | |||
46 | disp = putStrLn . format " " (printf "%.2f") \ No newline at end of file | ||