2 equations, 2 unknowns - fminsearch(), fminunc() applied on numerical data
2 views (last 30 days)
Philipp Bisignano on 22 Jun 2022
I have 2 equations and , which should deliver the same result:
All of them are matrices with [m=800, n=1300]; A and B are certainly known, I tried to calculate Cx and Cy, but my problem is that the outcome is not the same - the equation is not satisfied!
I'm trying to treat Cx and Dy as unknowns and use fminsearch & fminunc by saying: to find the values for Cx and Cy which satisfy the equations. The calculation is done for every element of the matrices.
Cy_new = zeros(size(A));
Cx_new = zeros(size(A));
f2min_val = zeros(size(A));
f2min = @(C_xy) DRx(i,j) + C_xy(1) - ( DRy(i,j) + C_xy(2) );
[ C_xy, f2min_val(i,j) ] = fminunc( F2min, [-1, 0.5]); % Cx(i,j), Cy(i,j)
Cy_new(i,j) = C_xy(1); Cx_new(i,j) = C_xy(2);
The data for previously calculated Cx(i,j) and Cy(i,j) lies in a range of [-1, 0.5]
But I get the message for fminunc:
Problem appears unbounded.
fminunc stopped because the objective function value is less than
or equal to the value of the objective function limit.
<stopping criteria details>
fminunc stopped because the objective function value, -2.461927e+20, is less than
or equal to options.ObjectiveLimit = -1.000000e+20.
and for fminsearch
Exiting: Maximum number of function evaluations has been exceeded
- increase MaxFunEvals option.
Current function value: -111848999850590921804554051032055239655030784.000000
no matter what I use as starting values. Someone has an idea about what I might improve? Or is it just impossible with my data?
Bjorn Gustavsson on 22 Jun 2022
From your description you have 800-by-1300 linear equations of the type:
a + x = b + y
and you want to solve for both x and y. Therein liest the problem. If you re-arrange the terms you will find:
x-y = b - a
and that is all you can achieve with this type of problem. You will have to accept that you can only determine the difference between x and y, and either settle for that or add more information to the problem. The results you get from the optimization-problems is due to the problem being underdetermined.