2016-09-26 2 views
1

В поле, в котором я работаю, есть своего рода оценка называется Sedi:Как найти явное решение этого уравнения?

SEDI

Я попросил, чтобы решить это уравнение для F. Я был проинформирован в целом надежным источником, должно быть аналитическое решение. Как правило, я использую MATLAB для таких задач, и поэтому я попытался

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) 

Это дает сообщение об ошибке Warning: Cannot find explicit solution. Затем я попытался реконфигурированием к

solve(SEDI*(log(F) + log(H) + log(1-F) + log(1-H)) == log(F) - log(H) - log(1-F) + log(1-H),F) 

но только что получили такое же сообщение об ошибке. Мне интересно, что происходит. Некоторые возможности:

  1. Существует аналитическое решение. MATLAB не может найти его, но может быть и другое программное обеспечение.

  2. Существует аналитическое решение. MATLAB может решить эту проблему, если я попрошу об этом по-другому, возможно, переставив уравнение? Или, предоставив больше информации MATLAB - я знаю, что F и H могут варьироваться от 0 до 1, а SEDI может варьироваться от -1 до +1.

  3. Там нет аналитического решения.

ответ

1

В лучшем случае не существует простого явное решение. С ограничениями, которые 0<f<1 и 0<h<1, можно найти решения для различных значений sedi и h. Рассмотрим sedi=0. Затем f=h.

Предположим, sedi=1/2. Тогда f является Equation for sedi equal one-half

Если sedi=1/3, то f является

Result for f when sedi is one-third

Можно играть с этим, используя Mathematica со следующим кодом:

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]] 

Кроме того, рассмотрим контуры для значений 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] 

enter image description here

0

Или есть аналитическое решение, которое программы не могут найти. Я попытался сделать это в Mathematica, и он не хотел решать уравнение. Однако я смог решить это вручную. Если я не сделал ошибку, есть три решения. Однако одно из них 0 и не соответствует исходному уравнению. Таким образом, конечные два решения

F = 1 +/- ехр (-s/2)/ч

Дважды проверьте, что хотя

+0

Очевидно, что только 'F = 1-ехр (-S/2)/H' может иметь смысл (0

+0

@SeverinPappadeux Я попытался, и, насколько я могу судить, он не соответствует исходному уравнению. Возможно, в вашем коде есть опечатка? – user1205197

+0

Извините, я ошибся в своей математике. Я могу упростить его до (f-1)^(s + 1) f^(s-1) = (h-1)^(1-s)/h^(s + 1) ' – user1543042

Смежные вопросы