diff --git a/practical_work/rc_circuit/main.c b/practical_work/rc_circuit/main.c
index 6e41bbc35d2ce07104b87bc61bf0bb5293bb7283..d7dce0bc68b6c7aaebbfaa35fc80cc1726c8d052 100644
--- a/practical_work/rc_circuit/main.c
+++ b/practical_work/rc_circuit/main.c
@@ -18,27 +18,27 @@ int main(int argc, char *argv[]) {
 
     double dt = 0.001;
     double max_t = 5.0;
-    int i = 0;
 
     PLFLT x[NSIZE], y[NSIZE];
-    PLFLT xmin = 0., xmax = max_t, ymin = 0., ymax = rc.eps;
+    PLFLT xmin = 0., xmax = max_t, ymin = rc.eps-1, ymax = rc.eps+1;
 
     for (double t = 0.0; t < max_t; t += dt) {
         double ve = exact_solution(t, v_ini, &rc);
         printf("t = %f, v = %f, v_e = %f, diff = %f\n", t, v, ve, ve - v);
-        x[i] = t;
-        y[i] = v;
         v = rc_advance(v, dt, &rc);
-        i += 1;
     }
 
     v = v_ini = 1.0;
-    double omega = 0.0;
+    double omega = 10.0;
+    int i = 0;
     for (double t = 0.0; t < max_t; t += dt) {
-        rc.eps = sin(omega * t);
+        rc.eps = v_ini * (1.0 + cos(omega * t));
         double ve = exact_solution(t, v_ini, &rc);
         printf("t = %f, v = %f, v_e = %f, diff = %f\n", t, v, ve, ve - v);
+        x[i] = t;
+        y[i] = v;
         v = rc_advance(v, dt, &rc);
+        i += 1;
     }
 
     // Parse and process command line arguments