WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Num. Integration ergibt andere Werte als analytische

 

JayvH
Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 19.03.11
Wohnort: Hannover
Version: ---
     Beitrag Verfasst am: 27.07.2011, 14:51     Titel: Num. Integration ergibt andere Werte als analytische
  Antworten mit Zitat      
Wie in meinem letzten Thread bin ich auf ein Problem mit der numerischen Integration über quad gestossen.

Ich habe eine Formel der Form
C \cdot \frac{1}{v+\cos(\Omega) } , wo ich die Fläche unterhalb des Graphen in den Bereichen -\Omega_{1} bis -\Omega_{1} sowie \pi - \Omega_{1} bis \pi + \Omega_{1} benötige.

Die analytische Form des Integrals ist C \cdot \frac{2}{\sqrt{v^2-1}} \cdot \arctan({\sqrt{\frac{v-1}{v+1}} \cdot tan(\frac{\Omega}{2}}))

Halte ich in Matlab die beiden Bereiche gegeneinander, so machen ich das über folgendes Skript:
Code:
load Konstante.mat

% Berechnung des 1. Bereichs
Int_num_1 = quad(@myfun, -Omega_1, Omega_1);
Int_1_o = Konstante * 2 / sqrt(v^2-1) * atan(sqrt((v-1)/(v+1)) * tan(Omega_1/2));
Int_1_u = Konstante * 2 / sqrt(v^2-1) * atan(sqrt((v-1)/(v+1)) * tan(-Omega_1/2));
Int_1 = Int_1_o - Int_1_u;

% Berechnung des 2. Bereichs
Int_num_2 = quad(@myfun, pi-Omega_1, pi+Omega_1);
Int_2_o = Konstante * 2 / sqrt(v^2-1) * atan(sqrt((v-1)/(v+1)) * tan((pi+Omega_1)/2));
Int_2_u = Konstante * 2 / sqrt(v^2-1) * atan(sqrt((v-1)/(v+1)) * tan((pi-Omega_1)/2));
Int_2 = Int_2_o - Int_2_u;

mit der Funktion myfun
Code:
function I = myfun(Omega)
load Konstante.mat
I = Konstante * 1./(v + cos(Omega));
 

Im 1. Bereich erhalte ich das gleiche Ergebnis von 2,7133; im 2. Bereich jedoch die analytische Lösung von -134,8230 bzw. 134,8230 (wenn ich jetzt noch die Vorzeichen beachte, das die Fläche ja positiv sein muss). Die numerische Lösung wirft mir jedoch 479,1955 heraus. Ich denke, dass es wohl damit zu tun hat, dass der Faktor \tan(\frac{\Omega}{2}) für \Omega = \pi ja nicht definiert ist. Was ist denn nun aber richtig bzw. was mache ich falsch?

Ich habe das Skript, die Funktion sowie die mat-Datei mit den Werten einmal als ZIP-Archiv mit angefügt.

Kleine Zusatzfrage: Gibt es eigentlich eine elegantere Lösung als die Datei Konstante.mat (die neben der Konstanten auch die Werte für v und Omega_1 entält) nochmal einzulesen?

Integrationsproblem.zip
 Beschreibung:

Download
 Dateiname:  Integrationsproblem.zip
 Dateigröße:  787 Bytes
 Heruntergeladen:  480 mal
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.