Verfasst am: 27.04.2014, 11:39
Titel: Numerische Integration bis unendlich
Hallo Forum,
ich muss folgende Funktion über w von 0 bis unendlich integrieren:
f(w)=a*cos(w*t)*w^b
mit t>0 und -1<b<0 .
Das integral stellt eine TraFo von vom Frequenz- (w) in den Zeitbereich (t) dar.
So wie ich das sehe ist das Integral nicht analytisch lösbar, ist das richtig?
Wie würdet ihr da vorgehen?
Ich habe mir überlegt das ganze numerisch zu Integrieren, z.B. mit der Trapezregel.
Die untere Grenze 0 sollte kein Problem sein, da f(w=0)=a definiert ist.
Bei der oberen Grenze hatte ich mir gedachte, das ganze in eine for-Schleife zu packen mit verschiedenen oberen grenzen (z.B. w_end=[1 10 100 1000]) und zu überprüfen, wie das Integral konvergiert. Das gleiche hätte ich mit der Schrittweite danach gemacht.
Bin ich da auf dem richtigen Weg? Habe nicht viel Ahnung von numerischer Integration.
Hier mein Code
Code:
load interpolation % lädt die a_long und b_long
t=[00.11510]; %in s
omega_end=[110100100010000100000]; % vektor mit verschiedenen oberen Integrationsgrenzen
f_L=((a_long(2,1)/((2*pi)^(b_long(2,1))))*omega.^(b_long(2,1))).*cos(omega*t(4)); % zu integrierende funktion, jetzt erstmal für t=5s.
A_L(k)=trapz(f_L, omega); % integration mit Trapezregel
"Warning: Reached the limit on the maximum number of
intervals in use. Approximate bound on error is
9.0e+09. The integral may not exist, or it may be
difficult to approximate numerically to the requested
accuracy. "
Hört sich nicht so gut an... Kann man das mit Einer höheren Rechnerleistung verbessern? Wahrscheinlich nicht... Und wenn man das mit Matlab nicht machen kann, wie dann?
bitte angeben, was du jetzt genau machst.
Wie von der Fehlermeldung angedeutet ist die erste Frage, ob das Integral überhaupt existiert (d.h. endlich ist).
time=0:0.1:2; % in [s]
G=zeros(length(time),1);
p_long=zeros(4,1);
figure(1) color=[101; 010; 011; 001; 100];
set(gca, 'FontSize', 16) hold on
title('Time-curves of shear moduli') xlabel('time in [s]') ylabel('Shear modulus in [N/mm^2]')
for T=1:4% plot of shear moduli for the 4 different temperatures
for t=1:length(time)% determination of shear modulus for each time-step
f_L = @(omega)((a_long(T,1)/((2*pi)^(b_long(T,1))))*omega.^(b_long(T,1))).*cos(omega*time(t));
G(t)=integral(f_L, 0 , inf)*2/pi;
end
tritt die Warnung für jedes t auf?
Für jede Kombination von a und b?
Ich würde dem ja gerne nachgehen. Das geht aber nur, wenn ich die vollständigen Informationen habe. Poste also doch bitte noch die je vier Werte von a_long und b_long.
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
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.