Files Classes Functions Hierarchy
#include <iostream>#include <cmath>#include <iomanip>#include <commandline.h>#include <exploreh.h>#include <exploreline.h>#include <explorelinetest.h>#include <explorequad.h>#include <lineoptimizergold.h>#include <print.h>#include <probparab.h>#include <probsysequ01.h>
Go to the source code of this file.
Functions | |
| void | explorelinetest01 (int argc, char **argv) |
| void | explorelinetest02 (int argc, char **argv) |
| void | explorelinetest03 (int argc, char **argv) |
| void explorelinetest01 | ( | int | argc, | |
| char ** | argv | |||
| ) |
Definition at line 18 of file explorelinetest.cpp.
References exploreline< EXP, LNM >::linet0, exploreline< EXP, LNM >::linet1, commandline::mapvar(), and exploreline< EXP, LNM >::reset().
Referenced by main().
00019 { 00020 cout << "explore and golden ratio line search" << endl; 00021 cout << " k=3 lineiter=10 are defaults." << endl; 00022 00023 00024 typedef exploreh<probparab2,double*,double> exp2; 00025 typedef lineoptimizergold<probparab2&,double*,double*,double> lnmin; 00026 00027 commandline cmd(argc,argv); 00028 uint lineiter(10); 00029 cmd.mapvar(lineiter,"lineiter"); 00030 uint k(3); 00031 cmd.mapvar(k,"k"); 00032 00033 exploreline< exp2, lnmin > w(3,lineiter); 00034 00035 cmd.mapvar(w.linet0,"t0"); 00036 cmd.mapvar(w.linet1,"t1"); 00037 00038 double x0[3] = { 0.0, 0.0, 0.0 }; 00039 w.reset(x0); 00040 //cout << printvecfunc(w.xi,3) << endl; 00041 00042 for (uint i=0; i<k; ++i) 00043 { 00044 ++w; 00045 } 00046 00047 double dist=0.0; 00048 dist = abs(w.xi[0]-1.0) + abs(w.xi[1]-2.0) + abs(w.xi[2]-5.0); 00049 00050 cout << "Compare with true solution" << endl; 00051 cout << "fn-count, k, lineiter, distance" << endl; 00052 cout << w.fn.counter << " "; 00053 cout << k << " "; 00054 cout << lineiter << " "; 00055 cout << scientific << dist << endl; 00056 00057 00058 //uintc imax=5; 00059 //for (uint i=0; i<imax; ++i) 00060 // ++w; 00061 //cout << printvecfunc(w.xi,3) << endl; 00062 00063 }
| void explorelinetest02 | ( | int | argc, | |
| char ** | argv | |||
| ) |
Definition at line 66 of file explorelinetest.cpp.
References exploreline< EXP, LNM >::linet0, exploreline< EXP, LNM >::linet1, commandline::mapvar(), and exploreline< EXP, LNM >::reset().
Referenced by main().
00067 { 00068 cout << "exploreh with quad and golden ratio line search" << endl; 00069 cout << " k=3 lineiter=10 are defaults." << endl; 00070 00071 00072 typedef explorequad< exploreh<probparab2,double*,double> > eh2; 00073 // typedef exploreh<probparab2,double*,double> exp2; 00074 typedef lineoptimizergold<probparab2&,double*,double*,double> lnmin; 00075 00076 commandline cmd(argc,argv); 00077 uint lineiter(10); 00078 cmd.mapvar(lineiter,"lineiter"); 00079 uint k(3); 00080 cmd.mapvar(k,"k"); 00081 00082 exploreline< eh2, lnmin > w(3,lineiter); 00083 00084 cmd.mapvar(w.linet0,"t0"); 00085 cmd.mapvar(w.linet1,"t1"); 00086 00087 double x0[3] = { 0.0, 0.0, 0.0 }; 00088 w.reset(x0); 00089 //cout << printvecfunc(w.xi,3) << endl; 00090 00091 00092 //w.move(); 00093 00094 00095 for (uint i=0; i<k; ++i) 00096 ++w; 00097 00098 00099 double dist=0.0; 00100 dist = abs(w.xi[0]-1.0) + abs(w.xi[1]-2.0) + abs(w.xi[2]-5.0); 00101 00102 cout << "Compare with true solution" << endl; 00103 cout << "fn-count, k, lineiter, distance" << endl; 00104 cout << w.fn.counter << " "; 00105 cout << k << " "; 00106 cout << lineiter << " "; 00107 cout << scientific << dist << endl; 00108 }
| void explorelinetest03 | ( | int | argc, | |
| char ** | argv | |||
| ) |
Definition at line 113 of file explorelinetest.cpp.
References exploreline< EXP, LNM >::linet0, exploreline< EXP, LNM >::linet1, commandline::mapvar(), and exploreline< EXP, LNM >::reset().
Referenced by main().
00114 { 00115 cout << "explore and golden ratio line search" << endl; 00116 cout << " k=3 lineiter=10 are defaults." << endl; 00117 00118 typedef exploreh<probsysequ01,double*,double> exp2; 00119 typedef lineoptimizergold<probsysequ01&,double*,double*,double> lnmin; 00120 00121 commandline cmd(argc,argv); 00122 uint lineiter(10); 00123 cmd.mapvar(lineiter,"lineiter"); 00124 uint k(3); 00125 cmd.mapvar(k,"k"); 00126 00127 exploreline< exp2, lnmin > w(2,lineiter); 00128 00129 cmd.mapvar(w.linet0,"t0"); 00130 cmd.mapvar(w.linet1,"t1"); 00131 00132 double x0[2] = { 0.5, 0.5 }; 00133 w.reset(x0); 00134 00135 for (uint i=0; i<k; ++i) 00136 { 00137 //cout << printvecfunc(w.xi,2) << endl; 00138 ++w; 00139 // cout << SHOW(w.fn.counter) << endl; 00140 } 00141 00142 long double y0((long double)0.2); 00143 long double y1((long double)2.0/(long double)3.0); 00144 long double dist = (y0-w.xi[0])*(y0-w.xi[0]) + (y1-w.xi[1])*(y1-w.xi[1]); 00145 00146 cout << "Compare with true solution" << endl; 00147 cout << "fn-count, k, lineiter, distance" << endl; 00148 cout << w.fn.counter << " "; 00149 cout << k << " "; 00150 cout << lineiter << " "; 00151 cout << scientific << dist << endl; 00152 00153 }
1.5.8