diff options
Diffstat (limited to 'coursework17')
| -rw-r--r-- | coursework17/RK4second.m | 12 | ||||
| -rw-r--r-- | coursework17/RLC_script.m | 27 | 
2 files changed, 39 insertions, 0 deletions
| diff --git a/coursework17/RK4second.m b/coursework17/RK4second.m new file mode 100644 index 0000000..7388c27 --- /dev/null +++ b/coursework17/RK4second.m @@ -0,0 +1,12 @@ +function [x, y] = RK4second(t,x,y,h,g,f)
 +k1x = h*g(t, x,y);
 +k1y = h*f(t, x,y);
 +k2x = h*g(t+h/3, x+k1x/3, y+k1y/3);%if it doesnt work try k1y after y
 +k2y = h*f(t+h/3, x+k1x/3, y+k1y/3);
 +k3x = h*g(t+2*h/3, x-k1x/3+k2x, y-k1y/3+k2y);
 +k3y = h*f(t+2*h/3, x-k1x/3+k2x, y-k1y/3+k2y);
 +k4x = h*g(t+h, x+k1x-k2x+k3x, y+k1y-k2y+k3y);
 +k4y = h*f(t+h, x+k1x-k2x+k3x, y+k1y-k2y+k3y);
 +x = x+(1/8)*(k1x+3*k2x+3*k3x+k4x);
 +y = y+(1/8)*(k1y+3*k2y+3*k3y+k4y);
 +end
 diff --git a/coursework17/RLC_script.m b/coursework17/RLC_script.m new file mode 100644 index 0000000..42f0344 --- /dev/null +++ b/coursework17/RLC_script.m @@ -0,0 +1,27 @@ +h = 1e-4;
 +R = 280;
 +C = 4*10^(-6);
 +L = 600*10^(-3);
 +t0 = 0;
 +tf = 0.04;
 +N = round((tf-t0)/h);
 +
 +y = zeros(1, N);
 +x = zeros(1, N);
 +t = zeros(1, N);
 +n = zeros(1, N);
 +
 +
 +t(1) = t0;
 +Vout = zeros(1, N);
 +x(1) = 500*10^(-9);
 +y(1) = 0;
 +Vin = @(a)5;
 +g = @(t,x,y) y;
 +f = @(t,x,y)(Vin(t) - x/C - R*y)/L;
 +for i = 1:N-1
 +    [x(i+1), y(i+1)] = RK4second(t(i),x(i),y(i),h,g,f);
 +    t(i+1) = t(i) + h;
 +    Vout(i) = R*y(i);
 +end
 +plot(Vout);
 | 
