Здравсвуйте!
Мне нужна помощь в нахождении действительных решений уравнения (четвертой степени) где все величины положительны и действительны (включая все выражения под знаками корней). Мне удалось найти его комплексные корни. Получилось, что все четыре корня имеют как мнимую так и действительную части. Если выкинуть мнимую часть, то действительная не будет являться решением исходного уравнения (это происходит из-за того что мнимая часть всюду не мала).
Возможно, вся проблема в том, что я не уверен как можно правильно задать положительность всех исходных величин в уравнении. Вопрос: как можно объяснить математике что все величины изначально положительны и действительны?
Само уравнение
Код:
eqn = j -
Sqrt[q^2 + p^2 -
2 q p Cos[\[Theta]]] - \[Sqrt](p^2 +
1/2 (16 m5^2 + ma^2 + mp^2 -
Sqrt[(-(16 m5^2) - ma^2 - mp^2)^2 -
4 (ma^2 mp^2 - 16 m5^2 p^2)])) == 0;
И мое решение:
Код:
With[{gensol = Solve[eqn , p]},
Block[{\[Theta] = Pi/12, m = 5.5, M = 300, Nc = 3, c = \!\(\*
TagBox[
InterpretationBox[
RowBox[{"\"\<-4.46874\>\"", "*",
SuperscriptBox["10", "\"\<4\>\""]}],
-44687.3983417778,
AutoDelete->True],
ScientificForm]\), b = \!\(\*
TagBox[
InterpretationBox[
RowBox[{"\"\<1.61594\>\"", "*",
SuperscriptBox["10", "\"\<5\>\""]}],
161593.81818181818`,
AutoDelete->True],
ScientificForm]\), k1 = \!\(\*
TagBox[
InterpretationBox[
RowBox[{"\"\<1.6485\>\"", "*",
SuperscriptBox["10", "\"\<1\>\""]}],
16.485010961790245`,
AutoDelete->True],
ScientificForm]\), k2 = \!\(\*
TagBox[
InterpretationBox[
RowBox[{"\"\<-1.31313\>\"", "*",
SuperscriptBox["10", "\"\<1\>\""]}],
-13.131344420001051`,
AutoDelete->True],
ScientificForm]\), ma, mp,
j},(*subs vals when gensol is evaluated*){j = \[Sqrt](q^2 +
1/2 (16 m5^2 + ma^2 + mp^2 +
Sqrt[(-(16 m5^2) - ma^2 - mp^2)^2 -
4 (ma^2 mp^2 - 16 m5^2 q^2)])),
ma = \[Sqrt](-2 (M^2 -
2 (3 k1 + k2) (Sqrt[(c + M^2 + 2 m5^2)/(2 (k1 + k2))] +
m b/(2 (c + M^2 + 2 m5^2)))^2 - c + 2 m5^2)),
mp = Sqrt[
2 b m (Sqrt[(c + M^2 + 2 m5^2)/(2 (k1 + k2))] +
m b/(2 (c + M^2 + 2 m5^2)))^-1]};
sols = gensol]];
qpC31 = Compile[{{q, _Complex}, {m5, _Complex}},
Evaluate[p /. sols[[1]]],
RuntimeOptions -> "EvaluateSymbolically" -> False] ;
qpC32 = Compile[{{q, _Complex}, {m5, _Complex}},
Evaluate[p /. sols[[2]]],
RuntimeOptions -> "EvaluateSymbolically" -> False] ;
qpC33 = Compile[{{q, _Complex}, {m5, _Complex}},
Evaluate[p /. sols[[3]]],
RuntimeOptions -> "EvaluateSymbolically" -> False] ;
qpC34 = Compile[{{q, _Complex}, {m5, _Complex}},
Evaluate[p /. sols[[4]]],
RuntimeOptions -> "EvaluateSymbolically" -> False] ;
На самом деле оно короче, просто вставилось длинно на форум.
Буду очень-очень благодарен за помощь!