Euler Explizit MATLAB

Neue Frage »

Frank750 Auf diesen Beitrag antworten »
Euler Explizit MATLAB
Hallo an Alle,

habe ein kleines Problem bzw. ich kann nicht erkennen wo der Fehler liegt.
Will eine ziemlich einfache Gleichung, die man auch Problemlos analytisch lösen kann, mit dem expliziten Euler-Verfahren lösen.





Anfangswerte:



Näherung über Euler:



Der entsprechende MATLAB-Code:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
close all
clc
clear

omega = 1;  %Vereinfachend angenommen
A = 1;


n = (1e3);	
deltaT = 20/n;

xp=zeros(n,1);
t=zeros(n,1);
x=zeros(n,1);

xp(1,1)=0;     %Anfangswerte
t(1,1)=0;
x(1,1)=0;

%------------------------------------------------------------------------%
for i = 1:n
	
	t(i+1,1)  =t(i)+deltaT;          
        xp(i+1,1) = xp(i) + deltaT*(-1)*A*(omega*omega)*sin(omega*t(i)); 
	x(i+1,1)  = x(i)+deltaT*xp(i);
	
end
%------------------------------------------------------------------------%
plot(t,x)



Der plot von üter passt absolut nicht zum plot der analytischen Gleichung.

Vllt. kann mir hier jemand auf die Sprünge helfen.

Grße Frank


Der Plot: x über t

[attach]36425[/attach]
Frank750 Auf diesen Beitrag antworten »
RE: Euler Explizit MATLAB
Hey,

das Problem hat sich erledigt.

Hab mit

begonnen abzuleiten.

bis


Anschließend wollte ich mit meinem Code das ganze auf zurückführen.

Jedoch ist mit hierbei entgangen, dass ist und nicht


Mit den korrigierten Anfangswerten passt dann ales.



code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
close all
clc
clear

omega = 1;  %Vereinfachend angenommen
A = 1;

n = (1e3);	
deltaT = 20/n;

xp=zeros(n,1);
t=zeros(n,1);
x=zeros(n,1);

xp(1,1)=(omega)*A;
t(1,1)=0;
x(1,1)=0;

%------------------------------------------------------------------------%
for i = 1:n
	
	t(i+1,1)  = t(i)+deltaT;
    xp(i+1,1) = xp(i) + deltaT*(-1)*A*(omega*omega)*(omega*sin(t(i)));
	x(i+1,1)  = x(i)+deltaT*xp(i);
	
end
%------------------------------------------------------------------------%
plot(t,x)

Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »