您写道,“b=a^3 是唯一可能存在未定义解决方案的情况。”
因此看起来您在括号中打错了字,并打算将表达式改为,
expr := (a-b)/(b-a^3);
discont 命令处理该示例。
discont(expr, b);
/ 3\
{ a }
\ /
如果您有更多涉及的表达式,请展示它们(如果您有其他参数,例如a,知道这些限制不会有什么坏处)。
如果您不明确完整地展示您的实际示例,则很难正确回答。
[edit] 好的,您在其他地方发布了一个更复杂的示例。您可以使用discont 或singular 命令。
expr2 := tan(a*(b+log(1+(epsilon*a*r)/(c*s)))/2):
ans := [singular(expr2, {c, b})]:
ans := map[2](remove,u->lhs(u)=rhs(u), ans):
lprint(%);
[{c = 0}, {c = -epsilon*a*r/s},
{b = - (-2*_Z1*Pi+a*ln((a*epsilon*r+c*s)/(c*s))-Pi)/a}]
eval(expr2, ans[1]);
Error, numeric exception: division by zero
eval(expr2, ans[2]);
Error, (in ln) numeric exception: division by zero
eval(expr2, ans[3]):
simplify(%);
Error, (in tan) numeric exception: division by zero
ans1 := map[2](`=`,c,discont(expr2, c)):
lprint(%);
{c = 0, c = epsilon*a*r/(s*(exp((2*Pi*_Z2-a*b+Pi)/a)-1)),
c = -epsilon*a*r/s}
ans2 := map[2](`=`,b,discont(expr2, b)):
lprint(%);
{b = -(a*ln((a*epsilon*r+c*s)/(c*s))-2*Pi*_Z3-Pi)/a}
eval(expr2, ans1[1]);
Error, numeric exception: division by zero
eval(expr2, ans1[2]):
simplify(%) assuming real:
Error, (in assuming) when calling 'cot'. Received: 'numeric exception: division by zero'
eval(expr2, ans1[3]);
Error, (in ln) numeric exception: division by zero
eval(expr2, ans2[1]):
simplify(%) assuming real;
Error, (in assuming) when calling 'cot'. Received: 'numeric exception: division by zero'