y = [2.1544; 1.71; 1.99; 1.59];
rhs = @(a,b,c,d) [a*(5.95.^b) + c.*(5.95.^d); a.*(6.72.^b) + c.*(6.72.^d); a.*(6.35.^b) + c.*(6.35.^d); a.*(6.98.^b) + c.*(6.98.^d)];
gs = GlobalSearch;
fcn = @(b) norm(y - rhs(b(1),b(2),b(3),b(4)));
Problem = createOptimProblem('fmincon', 'x0',randn(4,1), 'objective',fcn)
B = run(gs, Problem)
fval = fcn(B)
producing (with reasonable consistency):
B =
67.619440740979044
-1.924836292732742
81.251260559584935
-43.549761874231805
and:
That is likely as good as it can get, although other values may be possible, with:
B =
46.932805349518709
-15.145390708060569
67.619902371215474
-1.924839968141592
producing approximately the same value for ‘fval’.
Note that this is not a particularly well-posed problem, so the individual parameter values will vary, and there could be a wide range of possible solutions.