function f = extended_powell1(x) ## ## The extended Powell function. See Dennis & Schnabel, Appendix B, ## problem #2. ## ## This function has a minimum at x=(0,0,...,0) with f(x) == 0. The ## suggested starting point is x0=(3, -1, 0, 1,..., 3, -1, 0, 1). ## Since the number of arguments is variable, we take a vector ## instead of its individual components. ## n = length(x); if (odd(n)) ## 'm' below must be an integer. f = NA; return; end m = n / 4; f = 0; % The extended Powell is simply a sum of Powell % applications. for k = [ 1 : m ] y1 = x(4*k - 3); y2 = x(4*k - 2); y3 = x(4*k - 1); y4 = x(4*k); f_k = powell(y1,y2,y3,y4); f = f + f_k; end end