test_bracket_minimum.cxx
来自「DTMK软件开发包,此为开源软件,是一款很好的医学图像开发资源.」· CXX 代码 · 共 74 行
CXX
74 行
#include <vcl_iostream.h>
#include <vnl/vnl_vector.h>
#include <vnl/algo/vnl_bracket_minimum.h>
#include <testlib/testlib_test.h>
struct bm_square1 : public vnl_cost_function {
bm_square1() : vnl_cost_function(1) {}
double f(const vnl_vector<double>& x) {
return (2 - x[0]) * (2 - x[0]) + 10;
}
};
struct bm_quartic1 : public vnl_cost_function {
bm_quartic1() : vnl_cost_function(1) {}
double f(const vnl_vector<double>& x) {
double y = (2 - x[0]) * (2 - x[0]);
return y*y + 10;
}
};
void test_bracket_minimum()
{
bm_square1 f1;
double a=5,b=6,c;
double fa,fb,fc;
vnl_bracket_minimum(f1,a,b,c,fa,fb,fc);
vcl_cout<<"Bracket: ("<<a<<','<<b<<','<<c<<')'<<vcl_endl
<<"fn: ("<<fa<<','<<fb<<','<<fc<<')'<<vcl_endl;
TEST("a<b",a<b,true);
TEST("a<c",a<c,true);
TEST("fa>fb",fa>fb,true);
TEST("fb<fc",fb<fc,true);
a = -10; b=-9;
vnl_bracket_minimum(f1,a,b,c,fa,fb,fc);
vcl_cout<<"Bracket: ("<<a<<','<<b<<','<<c<<')'<<vcl_endl
<<"fn: ("<<fa<<','<<fb<<','<<fc<<')'<<vcl_endl;
TEST("a<b",a<b,true);
TEST("a<c",a<c,true);
TEST("fa>fb",fa>fb,true);
TEST("fb<fc",fb<fc,true);
bm_quartic1 f2;
a=5; b=6;
vnl_bracket_minimum(f2,a,b,c,fa,fb,fc);
vcl_cout<<"Bracket: ("<<a<<','<<b<<','<<c<<')'<<vcl_endl
<<"fn: ("<<fa<<','<<fb<<','<<fc<<')'<<vcl_endl;
TEST("a<b",a<b,true);
TEST("a<c",a<c,true);
TEST("fa>fb",fa>fb,true);
TEST("fb<fc",fb<fc,true);
a = -10; b=-9;
vnl_bracket_minimum(f2,a,b,c,fa,fb,fc);
vcl_cout<<"Bracket: ("<<a<<','<<b<<','<<c<<')'<<vcl_endl
<<"fn: ("<<fa<<','<<fb<<','<<fc<<')'<<vcl_endl;
TEST("a<b",a<b,true);
TEST("a<c",a<c,true);
TEST("fa>fb",fa>fb,true);
TEST("fb<fc",fb<fc,true);
}
TESTMAIN(test_bracket_minimum);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?