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