回答
這可以很容易地使用upvalues
f[x_] + f[y_] /; x == -y ^:= 0
通常數學會嘗試上述規則分配給Plus
,這當然因爲這是保護不工作來完成。通過使用^:=
而不是:=
,您可以將規則分配到f
。快速檢查產量:
In[2]:= f[3]+f[-3]
Out[2]:= 0
編輯:但是,這隻適用於Plus
。它可能更好地使用更多的東西一般情況下,這樣的:
f[x_?Negative] := -f[-x]
現在,這還與東西像
In[4]:= -f[3] - f[-3]
Out[4]:= 0
如果您還想要的功能,以象徵性的工作,你可以像添加的東西:
f[-a_] := -f[a]
你的回答完全震驚。謝謝,einbandi。真的,真的是我想要的。 –
是的,用於數字的'f [x_?Negative]:= -f [-x]'和用於符號的'f [-a_]:= -f [a]'也是一個很好的選擇。謝謝,einbandi。 –
我不擅長這個,但是如何使用TransformationFunctions
的Simplify
?
例如,假設您的表達式爲2 Sin[x] + f[x] + 3 + f[-x] + g[x] + g[-x]
,並且想簡化它,假設f[x]
是奇函數,而g[x]
是偶數。然後我們想要一個規則說f[x]+f[-x]->0
和規則g[x]+g[-x]->2 g[x]
。
因此寫
myRules[e_]:=e/.f[x]+f[-x]->0/.g[x]+g[-x]->2 g[x]
Simplify[2 Sin[x]+ f[x]+ 3 +f[-x]+ g[x] + g[-x],
TransformationFunctions->{Automatic,myRules}]
由此給
3+2 g[x]+2 Sin[x]
順便說一下,在上述中,我使用的f[x]
它真正應該是一個圖案f[x_]
,以便表達如f[anything]+f[-anything]
還將變成零。所以,這需要改進以使myRules
更一般化。現在它只適用於確切的表達式f[x]
。我不確定現在如何改善這一點。可能需要延遲的規則左右。會多想一想。但是你明白了我希望的想法。
謝謝,阿巴西。 :) –
- 1. 在mathematica包中定義私有函數
- 2. 如何在mathematica中定義一個通用函數?
- 3. 如何定義在Mathematica中通過D的函數
- 4. 如何在Mathematica 9.0中定義多個變量的函數?
- 5. 如何定義抽象類
- 6. Mathematica 9 - 函數定義問題
- 7. 如何在Matlab中調用Mathematica函數?
- 8. 抽象函數
- 9. 在抽象類定義
- 10. 如何在Mathematica中繪製單位單形中定義的函數?
- 11. Mathematica函數的奇怪輸出
- 12. 如何定義一個函數供Mathematica稍後使用
- 13. 如何在C++中的抽象基類和派生類中定義基類的虛函數定義?
- 14. 如何定義兩個抽象類
- 15. 在Mathematica中使用MaxValue []函數定義一個區域
- 16. 在Mathematica中修改Map函數的用戶定義版本?
- 17. 如何簡化Mathematica中的抽象矢量運算?
- 18. 如何在Mathematica中以某種形式定義三角函數結果?
- 19. 如何強制Mathematica在Simplify和FullSimplify中包含用戶定義的函數?
- 20. 如何用抽象類調用抽象函數
- 21. 在選定範圍內定義函數,Mathematica
- 22. 如何抽象出這個.each函數?
- 23. 如何在JS中抽象出一個函數作爲參數?
- 24. 如何在JavaScript對象內正確定義(函數||函數)?
- 25. 如何在Django抽象模型中定義ImageField?
- 26. 在企業庫中,抽象Validator.cs如何具有方法定義?
- 27. 定義抽象基類的默認構造函數
- 28. 抽象類的用戶定義的構造函數
- 29. 無法找到抽象函數的定義
- 30. PowerShell在函數中定義對象?
m @中有幾個函數atrributes,如'Orderless'。我想要的是一個「OddFunction」atrribute,有沒有辦法做到這一點?謝謝:) –