1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
2 // Copyright (C) 2009 - DIGITEO - Michael Baudin\r
3 // Copyright (C) 2010 - DIGITEO - Allan CORNET\r
5 //\r
6 // This file must be used under the terms of the CeCILL.\r
7 // This source file is licensed as described in the file COPYING, which\r
8 // you should have received as part of this distribution.  The terms\r
9 // are also available at\r
10 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
11 \r
12 function demo_derivative()\r
13 \r
14     mprintf(_("Running optimization ...\n"));\r
15 \r
16     function f = rosenbrock ( x )\r
17         f = 100.0 *(x(2)-x(1)^2)^2 + (1-x(1))^2;\r
18     endfunction\r
19 \r
20     function [ f , g , ind ] = rosenbrockCost2 ( x , ind )\r
21 \r
22         if ((ind == 1) | (ind == 4)) then\r
23             f = rosenbrock ( x );\r
24         end\r
25 \r
26         if ((ind == 1) | (ind == 4)) then\r
27             g = derivative ( rosenbrock , x.' , order = 4 );\r
28         end\r
29 \r
30     endfunction\r
31 \r
32     x0 = [-1.2 1.0];\r
33     [ f , x ] = optim ( rosenbrockCost2 , x0 );\r
34 \r
35     //\r
36     // Display results\r
37     //\r
38     mprintf("x = %s\n",strcat(string(x)," "));\r
39     mprintf("f = %e\n",f);\r
40 \r
41     //\r
42     // Load this script into the editor\r
43     //\r
44     m = messagebox(_("View Code?"), "Question", "question", [_("Yes") _("No")], "modal")\r
45     if(m == 1)\r
46         filename = 'optim_withderivative.sce';\r
47         dname = get_absolute_file_path(filename);\r
48         editor ( dname + filename );\r
49     end\r
50 endfunction\r
51 \r
52 \r
53 demo_derivative();\r
54 clear demo_derivative;\r
55 \r
56 \r
57 \r
58 \r
59 \r
60 \r\r