|
|
5.2版本时 上面代码中有些命令不支持 下面这个可以在5.2上运行 你试试4.0
代码写的很笨 可能有很大空间可以优化 也许有极简单的内部命令完成 就是不清楚 哪个选项
只是计算简单 不讲究效率也可以....
--------------------------------
Clear["Global`*"]
f[x_] := x^7 + 2
t1 = x /. Solve[f[x] == 0, x];
t1 = DeleteCases[t1, x_ /; Element[x, Reals]];
t2 = x /. Solve[f[x] == 0, x];
t2 = Cases[t2, x_ /; Element[x, Reals]];
eq1 := {ComplexExpand[Im[t1[[j]]^2 - a*t1[[j]] + b]] == 0};
r1 = Table[Solve[eq1, a], {j, 1, Length[t1]}] // Flatten;
r1t = N[r1, 10];
r1 = Table[If[! MemberQ[Take[r1t, j - 1], r1t[[j]]],
r1[[j]], xxxx], {j, 1, Length[r1t]}];
r1 = DeleteCases[r1, xxxx];
(*r1 = DeleteDuplicates[r1]*)
eq2 := {ComplexExpand[Re[t1[[j]]^2 - a*t1[[j]] + b]] == 0};
r2 = Table[Solve[eq2, b], {j, 1, Length[t1]}] // Flatten;
(*r2 = DeleteDuplicates[r2]*)
r2t = N[r1, 10];
r2 = Table[If[!
MemberQ[Take[
r2t, j - 1], r2t[[j]]], r2[[j]], xxxx], {j, 1, Length[r2t]}];
r2 = DeleteCases[r2, xxxx];
r3 = Table[{r1[[j]], r2[[j]] /. r1[[j]]}, {j, 1, Length[r1]}];
ff1 = Table[temp1 = x^2 - a*x + b /. r3[[j]] // Expand; Print[temp1];
temp1, {j, 1, Length[r3]}];
ff2 = Table[temp1 = x - t2[[j]]; Print[temp1];
temp1, {j, 1, Length[t2]}];
ff = Join[ff1, ff2];
N[Apply[Times, ff], 20] |
|