我想看看一个动力学系统的椭圆轨道是如何在不同的系统参数下旋转的。所以我试着
assume(c<0);
assume(b>0);
assume(b*c<-a^2);
A:matrix([a,b],[c,-a]);
eigenvalues(A);我得到了结果
[[-sqrt(b*c+a^2),sqrt(b*c+a^2)],[1,1]]但是,我想
[[-%i*sqrt(a^2+b*c),%i*sqrt(a^2+b*c)],[1,1]]看来maxima没有使用我的假设。我怎样才能让它使用这样的假设,或者我需要手动完成呢?
发布于 2015-11-27 23:28:32
您可以定义一个简化规则:
(%i1) display2d: false $
(%i2) assume(c<0, b>0, b*c<-a^2) $
(%i3) A:matrix([a,b],[c,-a]) $
(%i4) negp(e):= is(sign(e)='neg) $
(%i5) matchdeclare(NN, negp) $
(%i6) tellsimpafter(sqrt(NN), -%i*sqrt(-NN)) $
(%i7) eigenvalues(A);
(%o7) [[%i*sqrt((-b*c)-a^2),-%i*sqrt((-b*c)-a^2)],[1,1]]https://stackoverflow.com/questions/33811781
复制相似问题