|
|
warum kommt beim integrieren plötzlich Komplexe Zahl dazu? |
|
Artjom |
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 16.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.03.2018, 03:47
Titel: warum kommt beim integrieren plötzlich Komplexe Zahl dazu?
|
|
|
|
|
Hey gomatlab Community,
ich hab ein kleines Problem und finde alleine nicht raus woran es liegen mag. Wäre dankbar wenn mir einer von euch helfen könnte.
Mein Ziel ist es in einem kleinen Programm, eine Funktion aufzubauen deren Werte ich dann in Vektoren abspeichere um sie später zu ploten. So sieht meine Code aus:
Die zd2 Funktion integriere ich und nenne sie in s2 um, dabei tauchen aber in der integrierten Funktion plötzlich Komplexe Zahlen auf. Könnte mir jemand erklären woran das genau liegt?
Verstehe ich die Funktion int() nicht richtig?
Den mit online Integralrechner kommt eine Stammfunktion raus die Matlab auch so wie gewollt beandelt. Also gibt keine Komplexe Zahlen aus.
So wie Matlab die Funktion integriert kommt plötzlich ~-49i dazu, die am weiter arbeiten hindern.
Davor habe ich folgende Funktion für zd2 gehabt: (alt)
Dazu hätte ich auch eine Frage. Die ''alte'' Funktion konnte Matlab gar nicht mit int() integrieren und hat nur eine Datei rausgegeben wo int() und in den Klammern die Funktion stand. Also nicht integriert sondern als sowas wie Text rausgegeben?
Kann den Fehler grade leider nicht reproduzieren.
Wäre dankbar für eure Hilfe.
Mfg Artjom
|
|
|
|
|
cyrez |
Forum-Fortgeschrittener
|
|
Beiträge: 81
|
|
|
|
Anmeldedatum: 15.09.10
|
|
|
|
Wohnort: Bayern
|
|
|
|
Version: 2020b
|
|
|
|
|
|
Verfasst am: 18.03.2018, 21:23
Titel:
|
|
Hallo Artjom,
ich habe eben versucht dein Problem zu rekonstruieren. Die Funktion s2, also das Integral von zd2 wird nicht geschlossen durch den Befehl
gelöst. Das ist immer dann der Fall, wenn es keine (analytische) Stammfunktion gibt.
Kannst du deine komplexe Lösung posten?
Das Integral einer rellen Funktion muss reell sein. Ich kann mir nur vorstellen, dass MATLAB die Variable z als komplexe Variable interpretiert (z=x+jy) und du deshalb eine komplexwertige Lösung erhälst.
ZUSATZ:
Probiere mal diesen Code hier
Gruss
|
|
|
Artjom |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 16.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.03.2018, 17:16
Titel:
|
|
Hey cyrez,
danke für die schnelle Antwort. Wieso genau denkst du aber, dass Matlab diese Funktion nicht als analytisch betrachtet? Also habe es eben auch mit anderen Variablen probiert trz kommt beim integrieren eine Komplexe Zahl dazu.
Die Code von dir gibt die Funktion als Symbolic Variable an. Kann ich den damit dann weiter arbeiten?
Also wenn ich die als symfun
definiere dann kann ich die mit einem Vektor füllen und die Ergebnisse als Vektor bekommen. Bräuchte halt die ganzen Ergebnisse über die Abzisse von 0 bis r in den Abständen x.
Deswegen wollte ich die Funktion unbestimmt integrieren, damit ich aus der Stammfunktion die Werte dann einzelnd abgreifen kann.
MfG Artjom
|
|
|
Artjom |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 16.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.03.2018, 18:44
Titel:
|
|
Bin grade durch ausprobieren auf das Problem von gestern gestossen was ich nicht geschafft habe nochmal zu reproduzieren.
Folgende Code habe ich eingegeben:
Wieso wird hier von Matlab gar nicht integriert sondern die Funktion so übernommen wie ich sie eingegeben habe?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.484
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.03.2018, 20:58
Titel:
|
|
Hallo,
das Problem der komplexen Zahlen konnte ich in der aktuellen Version nicht reproduzieren. Der Grund dürfte aber sein, dass exp, sin und cos über die Eulersche Formel zueinander in Beziehung stehen.
https://de.wikipedia.org/wiki/Eulersche_Formel
Wenn dich nur die numerischen Werte interessieren, sollte das helfen:
Zur Frage, warum scheinbar nicht integriert wird: sobald Ausdrücke etwas komplexer werden, existiert oft keine analytische Stammfunktion. Dann kann MATLAB natürlich auch keine finden.
In diesen Fällen hilft nur numerisches Integrieren, z.B. über
integral
.
Grüße,
Harald
|
|
|
Artjom |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 16.07.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.03.2018, 15:24
Titel:
|
|
Hey Harald,
danke für deine Antwort. Habe gestern festgestellt dass die Stammfunktion von der genanten Funktion zd2(z) nur in einem kleinen Bereich verläuft. Wenns den Bereich überschreitet dann bekommt man Komplexe Zahlen als Ergebniss.
Aber zu dem Command integral(). Mit numerischem Integral bekomme ich ja nur ein Ergebniss, bräuchte aber von der Stammfunktion mehrere Ergebnisse von 0 bis r in den Abständen x. Gibt es da irgendeine möglichkeit?
Mir würde jetzt einfallen mit integral die einzelnen Ergebnisse durch eine while schleife zu bekommen und in einem Vektor abzuspeichern. Ist aber ein ziemlicher Umweg oder?
Hmm wollte grade ne Code mit while schleife machen um die Werte von der Stammfunktion in einem Vektor abzuspeichern aber irgendwie klappt das nicht.
MfG Artjom
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.484
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 20.03.2018, 21:29
Titel:
|
|
Hallo,
mir fällt auf Anhieb auch nichts besseres als eine Schleife ein.
Mit dem vorherigen Vorschlag über
double
wäre das Problem aber doch ohnehin gelöst?
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|