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

Integration einer unendlichen Reihe

 

hexa5000

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.10.2011, 13:01     Titel: Integration einer unendlichen Reihe
  Antworten mit Zitat      
Hallo,

ich möchte gern eine unendliche Reihe integrieren. Meine Formel hat die Form wie auf dem Bild.
Folgendes habe ich bereits versucht (x1 = x')
Code:

n=-50:50;
T=quadgk(@(x1)(exp(x-x1)*sum(besselk(0,(x-x1)^2+(z+n)^2),-b,b);
 

x, z und b sind einfach nur Konstanten
besslk ist die Implementierung der Besselfunktion in Matlab

Die Fehlermeldung von quadgk ist "Matrix dimensions must agree.", weil es ein Problem mit der Summe innerhalb der Besselfunktion hat (meine Vermutung).

Mit der Trapezregel wiederum funktioniert die Integration der e-Funktion nur schlecht bis gar nicht.

Hat jemand eine Idee, wie ich es vielleicht noch machen könnte?

mfg

hexa5000

CodeCogsEqn.gif
 Beschreibung:

Download
 Dateiname:  CodeCogsEqn.gif
 Dateigröße:  2.06 KB
 Heruntergeladen:  525 mal


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 06.10.2011, 17:03     Titel: Re: Integration einer unendlichen Reihe
  Antworten mit Zitat      
Hallo hexa5000,

Zitat:
Die Fehlermeldung von quadgk ist "Matrix dimensions must agree.", weil es ein Problem mit der Summe innerhalb der Besselfunktion hat (meine Vermutung).

Das ist nur eine Vermutung. Du könntest den Befehl in einzelne Teile zerlegen, um festzustellen, wo der Fehler liegt. Möglicherweise ist schon dies nicht mehr korrekt berechenbar: "(x-x1)^2+(z+n)^2".

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.10.2011, 19:23     Titel:
  Antworten mit Zitat      
Hallo,

Bitte Werte für b, z und x angeben.
Was soll (x1 = x') denn hier heißen?

Ich würde vermuten, dass du diese Integrale nicht in einer Schleife berechnen kannst und zudem eventuell komponentenweise Operationen (.* und .^) nutzen musst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
hexa5000

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.10.2011, 07:20     Titel:
  Antworten mit Zitat      
@Jan S: Also wenn ich für n=1 (oder einen beliebigen anderen Skalar anstatt eines Vektors) angebe, wird der Ausdruck ohne Probleme berechnet.

@Harald:
x=-0.05:1/100:.05;
z=0.002;
b=0.005

Wenn du mal in das angehängte Bild schaust, dann steht dort x' dx'. Das kann man nur schlecht in Matlab eingeben, deswegen habe ich die Variable einfach x1 genannt.

Welche Integrale meinst du genau? Wenn ich dasselbe Integral OHNE die Summe habe, funktioniert alles einwandfrei. Komponentenweise kann ich nicht operieren, weil das quadgk nicht unterstützt. Deswegen ja die Schleife.

mfg

hexa5000
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.10.2011, 21:45     Titel:
  Antworten mit Zitat      
Hallo,

x' ist für MATLAB-User sehr verwirrend, da es für die Transponierte steht.

Von welcher Schleife sprichst du?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.10.2011, 13:56     Titel:
  Antworten mit Zitat      
Hallo hexa5000

QUADGK benötigt eine Funktion mit einem skalaren Wert. Diese soll bei Eingabe eines Vektors auch einen solchen zurückgeben.
Deine Funktion hängt aber von Vektor n ab und gibt deshalb für skalare Inputs Vektoren aus Outputs aus. Deshalb kann QUADGK nichts damit anfangen. Bitte lies nochmal "help quadgk" durch.

Gruß, Jan
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 - 2025 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.