Hanging Chain
Benchmarking Optimization Software with COPS Elizabeth D. Dolan and Jorge J. More ARGONNE NATIONAL LABORATORY
Contents
Problem Formulation
Find x(t) over t in [0; 1 ] to minimize
subject to:
% Copyright (c) 2007-2008 by Tomlab Optimization Inc.
Problem setup
toms t p = tomPhase('p', t, 0, 1, 30); setPhase(p); tomStates x % Initial guess a = 1; b = 3; x0 = icollocate(x == 2*abs(b-a)*t.*(t-2*(0.25+(b<a)*0.5))+1); % Constraints con = {initial(x) == a final(x) == b integrate(sqrt(1+dot(x).^2)) == 4}; % Objective objective = integrate(x.*sqrt(1+dot(x).^2));
Solve the problem
options = struct;
options.name = 'Hanging Chain';
solution = ezsolve(objective, con, x0, options);
t = subs(collocate(t),solution);
x = subs(collocate(x),solution);
Problem type appears to be: con ===== * * * =================================================================== * * * TOMLAB - Tomlab Optimization Inc. Development license 999001. Valid to 2010-02-05 ===================================================================================== Problem: --- 1: Hanging Chain f_k 5.068480111111110600 sum(|constr|) 0.000000000515360569 f(x_k) + sum(|constr|) 5.068480111626470800 f(x_0) 4.742150260697741300 Solver: snopt. EXIT=0. INFORM=1. SNOPT 7.2-5 NLP code Optimality conditions satisfied FuncEv 295 GradEv 293 ConstrEv 293 ConJacEv 293 Iter 244 MinorIter 279 CPU time: 0.484375 sec. Elapsed time: 0.484000 sec.
Plot result
figure(1) plot(t,x,'*-'); legend('x'); title('Hanging Chain state variable');