|
|
asin von komplexem Winkel liefert nur reelles Ergebnis |
|
franzhauke |
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 06.03.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.03.2014, 23:24
Titel: asin von komplexem Winkel liefert nur reelles Ergebnis
|
|
|
|
|
Hallo,
ich schreibe gerade ein Programm zur Berechnung der optischen Eigenschaften einer dielektrischen Schicht. Dabei kommen für Totalreflexion komplexe Winkel heraus, die Matlab ja eigentlich berechnen können müsste.
Der Programmabschnitt sieht etwa so aus:
n1 = 3
n2 = 2
n3 = 4
einfallswinkel = 80 grad bzw. 1,39 rad
Wenn ich die Zeilen plotte, ergibt sich für theta2 ein komplexer Winkel von 1.57 - 0,94i (das soll auch so sein). Abhängig hiervon soll theta3 berechnet werden, der ja eigentlich auch komplex sein müsste...
Das Problem ist jetzt: Für theta3 wird nur der Realteil ausgegeben. Da erhalte ich 0.83-0.00i.
Wenn ich jetzt jedoch genau das Ergebnis von theta2 (1.57 - 0,94i) manuell in theta3 folgendermaßen einsetze (was ansich ja genau das gleiche ist),
dann klappt es, und es wird mir das Ergebnis von 0,95-0,94i richtig angeziegt. Ich habe es auch schon versucht so zusammenzubauen:
Aber auch das klappt nicht.... Was mache ich da falsch, oder ist das ein bug von matlab? Oder wie kann ich den Fehler umgehen Die variablen sind ganz normal als global definiert.
Eigentlich möchte ich daraus nachher noch einen Plot machen, bei dem ich über dem Einfallswinkel plotte, und da wird ab einem bestimmten Einfallswinkel das ja komplex. Also da muss ich das wohl als Variable einsetzen...
Vielen Dank schonmal im Voraus
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 06.03.2014, 23:53
Titel:
|
|
Hallo,
bitte konsequent Punkt als Dezimaltrennzeichen verwenden.
Bitte auch die Befehle in der Reihenfolge angeben, in der sie ausgeführt werden sollen.
ergibt bei mir
theta2 =
1.5708 - 0.9402i
theta3 =
0.8298 - 0.0000i
Wenn du nun
berechnest, dann arbeitest du ja mit 1.57 und 0.94 statt 1.5708 und 0.9402 (wobei selbst letztere Werte noch gerundet sind), es ist also kein Wunder, dass etwas anderes herauskommt.
Grüße,
Harald
|
|
|
franzhauke |
Themenstarter
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 06.03.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.03.2014, 09:54
Titel:
|
|
Vielen Dank Harald,
da hätte ich eigentlich auch selbst drauf kommen können
|
|
|
|
|
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.
|
|