2015-11-19 16 views
0

我想看看動態系統的橢圓軌跡如何隨不同的系統參數旋轉。所以,我想考慮平方根的力最大值是虛構的

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]] 

看來,最大值沒有用我的假設。我怎樣才能使用這種假設或我需要手動完成?

+0

千里馬的假設能力不是很強。 – Rorschach

回答

0

您可以定義一個簡化的規則:

(%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]]