2

Sage で次のマップを使用しています。

f = lambda x: sgn(x)*sgn(x);

x= 0 の場合はf(x) = 0x!=0の場合はf(x)=1と評価されます。

シンボリックな結果では、sgn(x)^2sgn(x)^4sgn(x)^8などは、 xのすべての値が等しいにもかかわらず、等しくないものとして扱われます。次のようなものに置き換える方法はありますか:

sgn(x)^2 == sgn(x)^4 == sgn(x)^8

これらの関係のすべての出現、およびxのすべての記号値に対して?

すべてのシンボルに対して新しい置換ルールを作成できます。

result.subs(sgn(c)^2 == sgn(c)^4).subs(sgn(d)^2 == sgn(d)^4)...

などですが、それを制御するのは難しいようです。

4

2 に答える 2

2

これはおそらく私が尋ねる愚かな質問です...あなたの結果の性質は、あなたが因数分解できるものですか?

sage: f(x) = sgn(x)^2
sage: f
x |--> sgn(x)^2
sage: Z = (1+f)^3
sage: Z = Z.expand()
sage: Z
x |--> sgn(x)^6 + 3*sgn(x)^4 + 3*sgn(x)^2 + 1
sage: Z.factor()
x |--> (sgn(x)^2 + 1)^3

その場合、あなたの質問は意味がありません。うまくいけば:

sage: Z.subs(sgn(x)^2==x)
x |--> (x + 1)^3

例として、それがあなたの潜水艦であるということではありません。

于 2014-03-23T02:09:54.743 に答える