2012-01-08 18 views
5

azaltın pozitif, beklenmedik/yedekli çıkış olmak. Reduce'un bunun için mükemmel olacağını düşündüm, ama gereksiz çıktılar verir (sadeleştirmeden sonra bile). Örneğin:Mathematica: Bir karmaşık sayının reel kısmı koşullarını bulma Negatif olmak bir karmaşık sayının gerçek kısmı için koşulları bulmalıyız

In[543]: Reduce[{Re[-1 - Sqrt[a - b] ] < 0, a > 0, b > 0}, {a, b}, Complexes] 
Out[543]: a > 0 && (0 < b < a || b >= a) 
bir olarak

b onlar eşitsizlik görünür, çünkü gerçek olduğu varsayılır, a ve b arasındaki ilişki hakkında daha fazla varsayım olması gerekir, beklediğim sonucudur:

Out[543]: a > 0 && b > 0 
o elde edilmez bir nedeni var mı? (Benim gözlerimde) gereksiz sonuçlar daha karmaşık ifadeler için birikir ve bunlardan birkaçını azaltmam gerekiyor. Beklenen sonucu elde etmek için bir hile var mı? Reals'i alan adı olarak seçip hiçbir Domain seçmeyerek oynadım ama hiçbir şey gerçekten istediğimi vermiyor. Bu arada özdeğerleri kontrol ederek sabit noktaların stabilitesini analiz ediyorum ... çok yaygın bir görev.

cevap

4

Burada Mathematica tek adımda bekliyoruz sonucunu döndürmez neden bilmiyorum, ama yok iki adımda bunu elde etmek için: Genellikle

Mathematica graphics

, can iki işlev Eşitsizliklerle genel bir şekilde ilgilenmek Reduce ve LogicalExpand'dur. (Ama bu alandaki bilgilerim çok sınırlı!) (Full)Simplify'un sadece ikincisini kullanacağına inanıyorum.


Reduce ayarını etki hakkında bir yorum: "dom Reals veya bu tür Tamsayılar veya rasyonellerde gibi bir alt kümesi ise o zaman bütün sabitler ve fonksiyon değerleri de sınırlıdır: dokümantasyon diyor

Not gerçekçi ol." Eğer @ Belisarius'un yanıtında olarak Reals olarak etki alanını belirlemek için olsaydı Dolayısıyla ReduceSqrt[a-b] gerçek de olması için gerekli olan 0 < b <= a dönecekti.

2

ComplexExpand ifadesiyle Re[...] ifadesini sarın ve beklenen sonucu a > 0 && b > 0 elde edersiniz.

+0

Ama etki açıkça 'Complexes' veya' Reals' ya olarak belirtilmişse. Aksi takdirde, "a> 0 && 0 Szabolcs

+0

(Bu yorumu, aynı şeyle ilgili bir MathGroup sorgusuna ekledim.) Kesinlikle doğru bir sonuç için etki alanı belirtimi gerekiyor. E., a = 1/4 ve b = 1/2 alır. Dokümanlarda ne anlama geldiğini "bir alanın üzerinde azaltarak" hiç anlamadım. Aksi alanı için gerçek olduğu varsayılır - docs söylenir kadarıyla, bu değişkenler bu alandadır sadece, ama durumun oluşturan ifadeler bu alandaki değerlere sahip izin verilen ziyade anlamına görünmüyor ifade. https://groups.google.com/d/topic/comp.soft-sys: – murray

+1

arada ben başvuru için buradaki bağlantıyı koyacağım Mathematica 8. yılında Reduce' 'bir hata var olduğunu MathGroup teyit edilmiştir. math.mathematica/C3ooYLXxZE0/tartışma – Szabolcs

İlgili konular