rather I would use the local optimization aroung my solutions
Can you understand discrete optimizer ?
You have to set precise grids.
For example, assume 1 <= x <= 10.
We don't have to set delta_x in continuous optimizer.
Here optimizer samples x in adaptive step or randomly between 1 and 10.
However we have to set very small delta_x manually in discrete optimizer.
Here optimizer samples x in equi-spaced step of delta_x.
For example, if delta_x is 1, optimizer never set x as intermediate value such as 2.1.
It is too unefficient.
but I didn't understand why you devided it by IM7 in your second solution
Relative deviation or relative torelance.
For example, consider following case.
I(M7)=1e-6
I(M6)=1e-12
abs(I(M7)-I(M6))=1e-6 is very small, although I(M7) is not equal to I(M6).
abs(I(M7)-I(M6))/abs(I(M7))=1
This is very basic thing of numerical computation.