[Index for tmp_for_tar/deriv_min.doc]
[Return to Master Index]
test_conjgrad_min
(tmp_for_tar/deriv_min.doc/test_conjgrad_min.m)
Function Synopsis
df = dtestf(x)
Help text
Test conjgrad_min
Last modified: October 2000
Listing of function file tmp_for_tar/deriv_min.doc/test_conjgrad_min.m
##
## Test conjgrad_min
## Author: Etienne Grossmann <etienne@isr.ist.utl.pt>
## Last modified: October 2000
1 ;
N = 1+floor(30*rand(1)) ;
global truemin ;
truemin = randn(N,1) ;
global offset ;
offset = 100*randn(1) ;
global metric ;
metric = randn(2*N,N) ;
metric = metric'*metric ;
if N>1,
[u,d,v] = svd(metric);
d = (0.1+[0:(1/(N-1)):1]).^2 ;
metric = u*diag(d)*u' ;
end
function v = testfunc(x)
global offset ;
global truemin ;
global metric ;
v = sum((x-truemin)'*metric*(x-truemin))+offset ;
end
function df = dtestf(x)
global truemin ;
global metric ;
df = 2*(x-truemin)'*metric ;
end
xinit = 10*randn(N,1) ;
[x,v,niter] = conjgrad_min("testfunc","dtestf",xinit) ;
printf("test_conjgrad_min\n");
if any(abs( x-truemin ) > 100*sqrt(eps) ) ,
printf("NOT OK 1\n");
else
printf("OK 1\n");
end
if v-offset > 1e-8 ,
printf("NOT OK 2\n");
else
printf("OK 2\n");
end
printf("niter=%d N=%d errx=%8.3g errv=%8.3g\n",...
niter,N,max(abs( x-truemin )),v-offset);
Produced by oct2html on Tue Oct 17 10:08:37 2000
Cross-Directory links are: ON