From 03009f782465dcced19bc5b54955b8000cbc9863 Mon Sep 17 00:00:00 2001 From: Valentin Gehrke Date: Thu, 17 Mar 2016 11:55:11 +0100 Subject: [PATCH] Patched frequencies in rk3.py --- rk3.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/rk3.py b/rk3.py index 5b6201a..c83ad18 100644 --- a/rk3.py +++ b/rk3.py @@ -1,5 +1,6 @@ #!/usr/bin/env python import math +import matplotlib.pyplot as plt def rk3(h,tn,yn,ys,param=[]): k1 = ys(tn,yn,*param) @@ -13,17 +14,23 @@ def main(): C = 1e-6 us = lambda tn, un, f: (U(tn,f) - un)/(R*C) fc = 1.0/(2*math.pi*R*C) - for f in [ 2**(i) * fc for i in range(-5,8)]: + frequencies = [ 2**(i) * fc for i in range(-5,8)] + ucmax_list = [] + ucmin_list = [] + for f in frequencies: + print("Simulation f = %.3f Hz" % f) ucmax = 0 ucmin = 0 tn = 0 un = 0 - for i in range(1000000): - tn, un = rk3(0.000001, tn, un, us, [f]) + for i in range(int(1000*f)): + tn, un = rk3(1/(1000*f), tn, un, us, [f]) ucmax = max(un,ucmax) ucmin = min(un,ucmin) + ucmax_list.append(ucmax) + ucmin_list.append(ucmin) - print(" %10.3f : %10.6f %10.6f" % (f,ucmax,ucmin)) + plt.plot(frequencies, ucmax_list, 'r', frequencies, ucmin_list, 'b').show() if __name__ == '__main__':