2012-01-08 5 views
5

Devo trovare le condizioni per la parte reale di un numero complesso che sia negativo. Pensavo che Reduce sarebbe stato perfetto per questo, ma ha dato risultati ridondanti (anche dopo la semplificazione). Ad esempio:Mathematica: trovare le condizioni per la parte reale di un numero complesso da produrre in modo positivo, inatteso/ridondante di Reduce

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) 

Come e b sono supposti essere reale perché appaiono in una disuguaglianza, c'è bisogno di alcuna ulteriore ipotesi sulla relazione tra A e B, il risultato mi aspetto è:

Out[543]: a > 0 && b > 0 

c'è una buona ragione per cui non si ottiene? I risultati ridondanti (ai miei occhi) si accumulano per espressioni più complesse e ho bisogno di ridurne alcuni. C'è un trucco per ottenere il risultato atteso? Mi sono divertito a scegliere Reals come dominio e non ho scelto alcun Dominio, ma niente mi dà veramente quello che voglio. Dal modo in cui sto analizzando la stabilità dei punti fissi controllando gli autovalori ... un compito molto comune.

risposta

4

Non so perché Mathematica non restituirà il risultato che ci si aspetta in un solo passaggio, ma ecco come ottenerlo in due fasi:

Mathematica graphics

In generale, le due funzioni che possono affrontare le disparità in modo generale sono Reduce e LogicalExpand. (Ma la mia conoscenza è molto limitata in questo settore!) Credo che (Full)Simplify userà solo quest'ultimo.


Un commento sui domini di impostazione in Reduce:

Nota che la documentazione dice: "Se dom è reali, o un sottoinsieme, come numeri interi o Razionali, quindi tutte le costanti e valori di funzione sono anche limitati a Sii reale." Quindi se si dovesse specificare il dominio come Reals come nella risposta di @ belisarius, Reduce restituirebbe 0 < b <= a che è necessario per Sqrt[a-b] essere reale pure.

2

Avvolgi l'espressione Re[...] con ComplexExpand e otterrai il risultato previsto a > 0 && b > 0.

+0

Ma solo se il dominio è esplicitamente specificato come 'Complexes' o' Reals'. Altrimenti restituisce 'a> 0 && 0 Szabolcs

+0

(Ho aggiunto questo commento a una query di MathGroup sulla stessa cosa). Sicuramente la specifica del dominio è necessaria per un risultato corretto. Ad esempio, prendi a = 1/4 eb = 1/2. Non ho mai capito cosa si intende nei documenti "riducendo su un dominio". Da quanto detto nei documenti, questo non sembra significare solo che le variabili si trovino in quel dominio, ma piuttosto che le espressioni che costituiscono la condizione siano autorizzate ad avere valori in quel dominio - altrimenti si presume che il dominio sia reale per il espressioni. – murray

+1

Nel frattempo è stato confermato su MathGroup che c'è un bug in "Reduce" in Mathematica 8. Metterò il link qui per riferimento: https://groups.google.com/d/topic/comp.soft-sys. math.mathematica/C3ooYLXxZE0/discussione – Szabolcs

Problemi correlati