在求解方程的过程中出现了虚数,理论上b不应该存在虚数,因为b是个距离,应该如何处理呢,谢谢
代码如下
$Assumptions = b > 5.2;
root = FullSimplify[NSolve[b^2 - P^3/(P - 2 M) == 0, P]] // Sort;
u0 = ComplexExpand[Re[root[[3, 1, 2]]]];
u1 = root[[1, 1, 2]] // FullSimplify;
u2 = root[[2, 1, 2]] // FullSimplify;
u3 = root[[3, 1, 2]] // FullSimplify;
k = \[Sqrt]((Q - P + 6 M)/(2 Q)) /.
Q -> \[Sqrt]((P - 2 M) (P + 6 M)) // FullSimplify;
A = ArcSin[Sqrt[(Q - P + 2 M)/(Q - P + 6 M)]] /.
Q -> Sqrt[(P - 2 M) (P + 6 M)] // FullSimplify;
B = ArcSin[Sqrt[(Q - P + 2 M + (4 M*P)/r)/(Q - P + 6 M)]] /.
Q -> Sqrt[(P - 2 M) (P + 6 M)] // FullSimplify;
T = ArcCos[Cos[\[Alpha]]/Sqrt[
Cos[\[Alpha]]^2 + Cot[\[Theta]]^2]] /. \[Theta] -> (4 \[Pi])/9 //
FullSimplify;
X0 = 1/r == (-((Q - P + 2 M)/(4 M P))) + ((Q - P + 6 M)/(4 M P))*
JacobiSN[((T/2)*\[Sqrt](P/Q) + EllipticF[A, k]), k]^2 /.
Q -> \[Sqrt]((P - 2 M) (P + 6 M)) /. r -> 30 /. M -> 1;
X1 = X0 /. P -> u2 /. M -> 1 /. \[Alpha] -> 1;
X2 = FindRoot[X1, {b, 5}, AccuracyGoal -> 6, PrecisionGoal -> 6]
代码如下
$Assumptions = b > 5.2;
root = FullSimplify[NSolve[b^2 - P^3/(P - 2 M) == 0, P]] // Sort;
u0 = ComplexExpand[Re[root[[3, 1, 2]]]];
u1 = root[[1, 1, 2]] // FullSimplify;
u2 = root[[2, 1, 2]] // FullSimplify;
u3 = root[[3, 1, 2]] // FullSimplify;
k = \[Sqrt]((Q - P + 6 M)/(2 Q)) /.
Q -> \[Sqrt]((P - 2 M) (P + 6 M)) // FullSimplify;
A = ArcSin[Sqrt[(Q - P + 2 M)/(Q - P + 6 M)]] /.
Q -> Sqrt[(P - 2 M) (P + 6 M)] // FullSimplify;
B = ArcSin[Sqrt[(Q - P + 2 M + (4 M*P)/r)/(Q - P + 6 M)]] /.
Q -> Sqrt[(P - 2 M) (P + 6 M)] // FullSimplify;
T = ArcCos[Cos[\[Alpha]]/Sqrt[
Cos[\[Alpha]]^2 + Cot[\[Theta]]^2]] /. \[Theta] -> (4 \[Pi])/9 //
FullSimplify;
X0 = 1/r == (-((Q - P + 2 M)/(4 M P))) + ((Q - P + 6 M)/(4 M P))*
JacobiSN[((T/2)*\[Sqrt](P/Q) + EllipticF[A, k]), k]^2 /.
Q -> \[Sqrt]((P - 2 M) (P + 6 M)) /. r -> 30 /. M -> 1;
X1 = X0 /. P -> u2 /. M -> 1 /. \[Alpha] -> 1;
X2 = FindRoot[X1, {b, 5}, AccuracyGoal -> 6, PrecisionGoal -> 6]