用solve不能求解简单的指数方程?
本帖最后由 lin2009 于 2010-10-15 21:47 编辑restart;
alpha := exp((I*(2/3))*Pi);
solve(exp((I*(2/3))*Pi) = alpha^k, k);
# 显然 k 的值应该为 1,复杂一点的可以用evalb((exp((I*(2/3))*Pi))^2 = alpha^2)验证。
但是上述方程解,竟然得出下面如此复杂的结果。
${\rm{RootOf}}\left( { - {{\rm{2}}^{{\rm{\_Z}}}} + {\rm{I}}\sqrt {\rm{3}} {{\rm{2}}^{{\rm{\_Z}}}} - {\rm{2}}{{\left( { - {\rm{1}} + {\rm{I}}\sqrt {\rm{3}} } \right)}^{{\rm{\_Z}}}}} \right)$
用
solve(exp((I*(2/3))*Pi) = alpha^k, k) assuming k::positive
allvalues(%)
也都不奏效,大家看看什么问题?
solve((exp((I*(2/3))*Pi))^2 = alpha^k, k) #-->k = 2;
"显然 k 的值应该为 1"...
k = 3n+1, n \in Z 2# ithinksoim
是的,那怎么把结果化成这个简单的形式呢? 这个。。。我没装Maple...
用Mathematica是能求出正确结果的 用fsolve可以给出复数形式的解,虚部很小,结果对。 本帖最后由 MMMS 于 2010-12-21 23:46 编辑
restart;
alpha := exp((I*(2/3))*Pi);
soln:=solve(exp((I*(2/3))*Pi) = alpha^k, k);
op(soln);
k=fsolve(op(soln));
结果是 k=1
为什么不用evalf对solve输出的结果求值?
从输出的结果可以找到原因,轻微的虚部值是数值舍入误差引起的,详细的解释以后再发。。。 前面帖子里的代码是怎么输入的?谢谢。 点击回复栏上面的<>按钮,在弹出的对话框中输入要插入的代码即可。
前面帖子里的代码是怎么输入的?谢谢。
MMMS 发表于 2010-12-22 08:49 http://forum.simwe.com/images/common/back.gif
页:
[1]