Entry 3215

Euler

   

Submitted by anonymous on Feb. 17, 2010 at 7 p.m.
Language: Matlab. Code size: 785 bytes.

R = 900;
C = 0.001;

h = 0.001;
tmax = 10;
t = (0:h:tmax);

P = zeros(size(t));
P(1) = 0;

PT = zeros(size(t));
PT(1) = 0;

PRK = zeros(size(t));
PRK(1) = 0;

f = 70/60;
Q0 = 20/60;
Q = Q0*sin(2*pi*f.*t);

Q(Q<0)=0;

%% euler
for n = 1:(length(t)-1)
    P(n+1)= P(n) + h*((Q(n)-(P(n)/R))/C);
end

% triprvkovy
for i = 1:length(PT)
    PT(i) = P(i) + 10*Q(i);
end

%% runge kutt

for n = 1:(length(t)-1);
    Qpul =(Q0*sin(2*pi*f*(t(n)+h/2)));
%     Qh = (Q0*sin(2*pi*f*(t(n)+h)));
    Qpul(Qpul<0) = 0;
%     Qh(QQQ<0) = 0;
    
    k1 = (Q(n)-(PRK(n)/R))/C;
    k2 = ((Qpul-((PRK(n)+((h/2)*k1))/R))/C);
    k3 = ((Qpul-((PRK(n)+((h/2)*k2))/R))/C);
    k4 = ((Q(n+1)-((PRK(n)+(h*k3))/R))/C);
    PRK(n+1) = PRK(n)+h/6*(k1+2*k2+2*k3+k4);
end

This snippet took 0.01 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).