12.12.2014, 00:49 |
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] |
12.12.2014, 14:24 |
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)
|
|
|