求解变量平方的方程?

Nas*_*ser 7 wolfram-mathematica

给出一个表达式(多项式,或一般的任何方程),如

a s^2+b = 0
Run Code Online (Sandbox Code Playgroud)

我想解决s ^ 2,得到s ^ 2 = -b/a.我们都知道,不能只写

Solve[eq==0,s^2]
Run Code Online (Sandbox Code Playgroud)

因为s ^ 2不是'变量'.只有s是'变量'.所以我做的是

eq  = a s^2+b;
sol = First@Solve[eq==0/.s^2->z,z];
z/.sol

-(b/a)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法在没有中间变量替换的情况下完成上述操作?我尝试了很多命令,但没有成功(减少,收集,消除,因素等等).

谢谢 - 纳瑟

abc*_*bcd 3

一种方法是求解s然后平方......

eq=a s^2+b;
sol=#^2 &@ (s/.Solve[eq==0,s])//DeleteDuplicates

Out[1]= {-(b/a)}
Run Code Online (Sandbox Code Playgroud)

  • 我认为稍微更直接的是DeleteDuplicates[s^2 /。求解[a*s^2 + b == 0, s]] Out[89]= {-(b/a)} (3认同)