Komplexen Zahlenbereich aussch < Mathematica < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 14:36 Do 11.03.2010 | Autor: | lyx |
Hallo,
Ich wuerde gern wissen ob es und wie es moeglich ist Mathematica zu verbieten im komplexen Zahlenbreich zu rechnen. Denn ich muss einige symbolische Berechnungen ausfuehren, Mathematica nimmt aber immer den allgemeinen Fall des Komplexen an. Alles was ich bis jetzt gefunden habe ich das ich die Ergebniss im hinterher aufs reelle vereinfachen kann. Ich hoffe es gibt eine Moeglichkeit im vorher zu sagen das er reell rechnen soll, damit das alles auch ein wennig schneller geht.
vielen dank fuer eure hilfe
gruesse
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt
|
|
|
|
Hallo,
Du kannst es ja mal mit dem RealOnly Paket versuchen.
Da ich es mal zu Mathematica-4.0-Zeiten ausprobiert und seitdem nicht mehr gebraucht habe, weiß ich leider nicht mehr, ob es wirklich zufriedenstellend funktioniert (Versuch macht kluch).
Gruß,
Peter
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 14:15 Fr 12.03.2010 | Autor: | lyx |
Hallo, Danke fuer deine Hilfe.
Aber das funktioniert nicht fuer mein Problem. Damit kann ich ihn sagen das er bei der Nullstellenberechnung von Funktionen nicht ein Komplexes Ergebniss Anzeigt sondern nur x->nonreal wenn x Komplex ist.
Ich werde mein Problem mal genauer schildern. Ich habe eine Matrix (symbolisch) und zerlege diese mit SVD oder QR. Als Ausgabe bekomme ich nun ein grossen Ausdruck mit viele conjungate. Dies soll er aber nicht machen da die Matrix Reell ist. Es ist ja nicht nur ein Problem der schoenheit der Ausgabe, sondern auch das er nicht so schnell rechnet wenn er immer dieses conjungate mitschleppen muss...
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 15:17 Fr 12.03.2010 | Autor: | Sigma |
Hallo lyx,
löst Refine dein Problem vielleicht.
Hier ein Minimalbeispiel.
1: | z = SingularValueDecomposition[{{a, b}, {c, d}}];
| 2: | r = Refine[z, Element[{a, b, c, d}, Reals]]; |
mfg sigma10
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:55 Sa 13.03.2010 | Autor: | Peter_Pein |
Was auch geht, aber üblicherweise nicht empfohlen wird, da man schon mal gerne vergisst, dass Systemvariablen geändert wurden, ist,
1: | $Assumptions={Element[{a,b,c,d},Reals](* evtl weitere durch Kommata getrennt *)};
| 2: | $Post=Refine; |
an den Anfang des Notebooks zu setzen.
Jedoch geben Funktionen wie (N)Solve dann trotzdem noch eventuell vorhandene komplexe Lösungen aus. Da ist mir dann nichts anderes bekannt, als nach der Rechnung die reellen Lösungen zu extrahieren (Reduce dauert meistens länger als Solve und Select).
Aber die Ausgabe von SingularValueDecompisition beispielsweise ist Conjugate[]-frei.
Gruß,
Peter
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:47 Mo 15.03.2010 | Autor: | lyx |
hey danke fuer die hilfe.
nein keines der beiden Vorschlaege ist hilfreich. Da die genutzten Symbole spaeter nicht a,b,c,d seihen werden sondern voellig unbestimmt sind, auch die groesse des Systems ist abhaening vom probelm...
ich habe aber mittlerweile ihn einen Buch gelesen das diese option in Mathematica nicht oder nur fuer einige befehle (solve,...) vorgesehen ist. In Maple soll dies aber auch global gehen. Da aber auch andere Probleme aufgetretten sind haben wir uns nun von der symbolischen Berechnung verabschiedet und gehen ueber zu nummerischen Behandlung. Das aber in Matlab.
troztem nochmal danke fuer eure muehen
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:51 Mi 17.03.2010 | Autor: | halirutan |
Moin,
wenn man weiss, was man da macht koennte man einzelne Teile eines sehr grossen Ausdrucks "von Hand" vereinfachen:
1: | svd = SingularValueDecomposition[{{a, b}, {c, d}}];
| 2: | sol=svd //. {Abs[expr__] :> ComplexExpand[Abs[expr]],
| 3: | Arg[expr__] :> Arg[ComplexExpand[expr]],
| 4: | Conjugate[a__] :> ComplexExpand[Conjugate[a]]} // Simplify;
|
liefert in sol einen Ausdruck frei von Conjugates und Abs.. am besten nur sol[[1]] bis sol[[3]] einzeln anschauen, da die Ausdruecke immer noch fuerchterlich gross sind.
Cheers
Patrick
|
|
|
|