Reputation: 939
In the field in which I work there's a kind of score called a SEDI:
I've been asked to solve this equation for F. I've been informed by a generally reliable source that there should be an analytic solution. Generally I use MATLAB for such problems, and so I tried
syms SEDI H F
solve(SEDI == ((log(F)-log(H)-log(1-F)+log(1-H)) / (log(F)+log(H)+log(1-F)+log(1-H))),F)
This gives the error message Warning: Cannot find explicit solution.
I then tried rearranging to
solve(SEDI*(log(F) + log(H) + log(1-F) + log(1-H)) == log(F) - log(H) - log(1-F) + log(1-H),F)
but just got the same error message. I'm wondering what's going on. Some possibilities:
There an analytic solution. MATLAB can't find it, but some other software could.
There is an analytic solution. MATLAB could solve it if I asked it in a different way, perhaps by rearranging the equation? Or, by giving more information to MATLAB - I know that F and H can only range from 0 to 1, and SEDI can only range from -1 to +1.
There no analytic solution.
Upvotes: 1
Views: 573
Reputation: 181
At best there is no simple explicit solution. With the restrictions that 0<f<1
and 0<h<1
, one can find solutions for various values of sedi
and h
. Consider sedi=0
. Then f=h
.
If sedi=1/3
, then f
is
One can play with this using Mathematica with the following code:
sedi = 1/3;
h =.;
ToRadicals[
Solve[(sedi (Log[f] + Log[h] + Log[1 - f] + Log[1 - h]) ==
Log[f] - Log[h] - Log[1 - f] + Log[1 - h]) && 0 < f < 1 &&
0 < h < 1, f]]
In addition, consider the contours for values of SEDI:
ContourPlot[(Log[f] - Log[h] - Log[1 - f] + Log[1 - h])/(Log[f] + Log[h] + Log[1 - f] + Log[1 - h]),
{f, 0.001, 0.999}, {h, 0.001, 0.999}, ContourLabels -> True,
Contours -> {-0.9, -0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0,
0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9},
FrameLabel -> (Style[#, Bold, Large] &) /@ {"f", "h",
"Contours of SEDI"}, ContourShading -> None, ContourStyle -> Gray]
Upvotes: 1
Reputation: 3440
Or there is an analytical solution that programs have trouble finding. I tried to do it in Mathematica and it didn't want to solve the equation. However, I was able to solve it by hand. If I didn't make an error, there are three solution. However, one of them 0 and does not fit the original equation. Therefore, the final two solutions are
f= 1 +/- exp(-s/2)/h
Double check that though
Upvotes: 0