summaryrefslogtreecommitdiff
path: root/graph.py
diff options
context:
space:
mode:
authorHolden Rohrer <hr@hrhr.dev>2020-04-17 22:31:14 -0400
committerHolden Rohrer <hr@hrhr.dev>2020-04-17 22:31:14 -0400
commit7d32b4b78455cf2bd0f37d07f976e04e249a8923 (patch)
tree13cc5236459ff4809118ee288fe3e9c41212ae5c /graph.py
parentf86de943734e10fa90fe63ed8431088839f5abde (diff)
python makes png
Diffstat (limited to 'graph.py')
-rw-r--r--graph.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/graph.py b/graph.py
index 5c1bbb5..1a32a8a 100644
--- a/graph.py
+++ b/graph.py
@@ -3,9 +3,10 @@
import matplotlib.pyplot as plt
import tkinter
from math import sin,cos,e
+from sys import argv
def f(x):
- return G*sin(x) + B*cos(x) + 2*e**(rer1 * x) * (reE * cos(imr1 * x) - imE * sin(imr1 * x))
+ return G*sin(A*x) + B*cos(B*x) + 2*e**(rer1 * x) * (reE * cos(imr1 * x) - imE * sin(imr1 * x))
for w in range(100,10000,100):
c1 = 2.5*10**(-6)
c2 = 1*10**(-6)
@@ -26,10 +27,10 @@ for w in range(100,10000,100):
D = - b*c1*c2*rload**3*w/(b**2*w**2 + rload**2 - 2*rload*w**2 + w**4) # from https://www.wolframalpha.com/input/?i=solve+for+x1%2Cx2%2Cx3%2Cx4+in+%7B%7B1%2C0%2C1%2C0%7D%2C+%7Bb%2C1%2C0%2C1%7D%2C+%7BR%2C+b%2C+w%5E2%2C+0%7D%2C+%7B0%2C+R%2C+0%2C+w%5E2%7D%7D*%7Bx1%2Cx2%2Cx3%2Cx4%7D+%3D+%7B0%2C0%2Cw*c_1*c_2*R%5E2%2C0%7D and an insane partial fraction decomposition
E = (D-C*r1)/(r2-r1)
F = C - E # Another PFD of Cs-D/(as^2+bs+c)
- G = B/w
+ G = A/w
# Final solution should be
- # Gsin(theta) + Bcos(theta) + Ee^(r1 t) + Fe^(r2 t)
+ # Gsin(A * theta) + Bcos(B * theta) + Ee^(r1 t) + Fe^(r2 t)
# But E, F, r1, and r2 are complex. Luckily, conjugates make it that
# = 2e^(Re(r1) t) ( Re(E)cos(Im(r1)t) - Im(E)sin(Im(r1)t) )
rer1 = r2.real
@@ -37,7 +38,7 @@ for w in range(100,10000,100):
imr1 = r2.imag
imE = F.imag # switched because positive ones were needed
- print("%.2E * sin(t) + %.2E * cos(t) + 2e^(%.2f t) (%.2E cos(%.2f t) - %.2E sin(%.2f t))" % (G, B, rer1, reE, imr1, imE, imr1))
+ print("%.2E * sin(%.2E t) + %.2E * cos(%.2E t) + 2e^(%.2f t) (%.2E cos(%.2f t) - %.2E sin(%.2f t))" % (G, A, B, B, rer1, reE, imr1, imE, imr1))
x = []
y = []
@@ -46,4 +47,7 @@ for w in range(100,10000,100):
y.append(f(i/100))
plt.plot(x,y)
-plt.show()
+if len(argv) > 1 and argv[1] == 'img':
+ plt.savefig('plot.png')
+else:
+ plt.show()