Subversion Repositories pentevo

Rev

Rev 1250 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. from sympy import *
  2. #import math
  3.  
  4. prec=30
  5.  
  6. r1,r2,r3,r4,c1,c2,c3 = symbols('r1,r2,r3,r4,c1,c2,c3')
  7.  
  8. A,B,C = symbols('A,B,C')
  9.  
  10. print('')
  11.  
  12. DD = sympify('(A-c3*r3)*(r1+r2)')
  13. print('D={}'.format(DD))
  14. EEE = sympify('r1*r2')
  15. print('E={}'.format(EEE))
  16. FF = sympify('c3*(r1+r2+r3)')
  17. print('F={}'.format(FF))
  18. GG = sympify('B*(r1+r2)/c3')
  19. print('G={}'.format(GG))
  20. HH = sympify('r1*r2*r3')
  21. print('H={}'.format(HH))
  22. KK = sympify('r1*(r2+r3)')
  23. print('K={}'.format(KK))
  24. LL = sympify('r3*(r1+r2)')
  25. print('L={}'.format(LL))
  26. MM = sympify('C*(r1+r2)/(c3*r1*r2*r3)')
  27. print('M={}'.format(MM))
  28.  
  29. D,EE,F,G,H,K,L,M = symbols('D,EE,F,G,H,K,L,M')
  30. r4 = sympify('-(-3*(D**2*K - 2*D*F*H + EE*F*G)/(F**2*K) + (-2*D*K + F*H)**2/(F**2*K**2))/(3*(sqrt(-4*(-3*(D**2*K - 2*D*F*H + EE*F*G)/(F**2*K) + (-2*D*K + F*H)**2/(F**2*K**2))**3 + (27*(D**2*H - D*EE*G + EE**2*L*M)/(F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(F**3*K**2) + 2*(-2*D*K + F*H)**3/(F**3*K**3))**2)/2 + 27*(D**2*H - D*EE*G + EE**2*L*M)/(2*F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(2*F**3*K**2) + (-2*D*K + F*H)**3/(F**3*K**3))**(1/3)) - (sqrt(-4*(-3*(D**2*K - 2*D*F*H + EE*F*G)/(F**2*K) + (-2*D*K + F*H)**2/(F**2*K**2))**3 + (27*(D**2*H - D*EE*G + EE**2*L*M)/(F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(F**3*K**2) + 2*(-2*D*K + F*H)**3/(F**3*K**3))**2)/2 + 27*(D**2*H - D*EE*G + EE**2*L*M)/(2*F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(2*F**3*K**2) + (-2*D*K + F*H)**3/(F**3*K**3))**(1/3)/3 - (-2*D*K + F*H)/(3*F*K)')
  31. c1 = sympify('D/EE - F*(-(-3*(D**2*K - 2*D*F*H + EE*F*G)/(F**2*K) + (-2*D*K + F*H)**2/(F**2*K**2))/(3*(sqrt(-4*(-3*(D**2*K - 2*D*F*H + EE*F*G)/(F**2*K) + (-2*D*K + F*H)**2/(F**2*K**2))**3 + (27*(D**2*H - D*EE*G + EE**2*L*M)/(F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(F**3*K**2) + 2*(-2*D*K + F*H)**3/(F**3*K**3))**2)/2 + 27*(D**2*H - D*EE*G + EE**2*L*M)/(2*F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(2*F**3*K**2) + (-2*D*K + F*H)**3/(F**3*K**3))**(1/3)) - (sqrt(-4*(-3*(D**2*K - 2*D*F*H + EE*F*G)/(F**2*K) + (-2*D*K + F*H)**2/(F**2*K**2))**3 + (27*(D**2*H - D*EE*G + EE**2*L*M)/(F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(F**3*K**2) + 2*(-2*D*K + F*H)**3/(F**3*K**3))**2)/2 + 27*(D**2*H - D*EE*G + EE**2*L*M)/(2*F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(2*F**3*K**2) + (-2*D*K + F*H)**3/(F**3*K**3))**(1/3)/3 - (-2*D*K + F*H)/(3*F*K))/EE')
  32. c2 = sympify('EE*M/(D*(-(-3*(D**2*K - 2*D*F*H + EE*F*G)/(F**2*K) + (-2*D*K + F*H)**2/(F**2*K**2))/(3*(sqrt(-4*(-3*(D**2*K - 2*D*F*H + EE*F*G)/(F**2*K) + (-2*D*K + F*H)**2/(F**2*K**2))**3 + (27*(D**2*H - D*EE*G + EE**2*L*M)/(F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(F**3*K**2) + 2*(-2*D*K + F*H)**3/(F**3*K**3))**2)/2 + 27*(D**2*H - D*EE*G + EE**2*L*M)/(2*F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(2*F**3*K**2) + (-2*D*K + F*H)**3/(F**3*K**3))**(1/3)) - (sqrt(-4*(-3*(D**2*K - 2*D*F*H + EE*F*G)/(F**2*K) + (-2*D*K + F*H)**2/(F**2*K**2))**3 + (27*(D**2*H - D*EE*G + EE**2*L*M)/(F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(F**3*K**2) + 2*(-2*D*K + F*H)**3/(F**3*K**3))**2)/2 + 27*(D**2*H - D*EE*G + EE**2*L*M)/(2*F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(2*F**3*K**2) + (-2*D*K + F*H)**3/(F**3*K**3))**(1/3)/3 - (-2*D*K + F*H)/(3*F*K)) - F*(-(-3*(D**2*K - 2*D*F*H + EE*F*G)/(F**2*K) + (-2*D*K + F*H)**2/(F**2*K**2))/(3*(sqrt(-4*(-3*(D**2*K - 2*D*F*H + EE*F*G)/(F**2*K) + (-2*D*K + F*H)**2/(F**2*K**2))**3 + (27*(D**2*H - D*EE*G + EE**2*L*M)/(F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(F**3*K**2) + 2*(-2*D*K + F*H)**3/(F**3*K**3))**2)/2 + 27*(D**2*H - D*EE*G + EE**2*L*M)/(2*F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(2*F**3*K**2) + (-2*D*K + F*H)**3/(F**3*K**3))**(1/3)) - (sqrt(-4*(-3*(D**2*K - 2*D*F*H + EE*F*G)/(F**2*K) + (-2*D*K + F*H)**2/(F**2*K**2))**3 + (27*(D**2*H - D*EE*G + EE**2*L*M)/(F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(F**3*K**2) + 2*(-2*D*K + F*H)**3/(F**3*K**3))**2)/2 + 27*(D**2*H - D*EE*G + EE**2*L*M)/(2*F**2*K) - 9*(-2*D*K + F*H)*(D**2*K - 2*D*F*H + EE*F*G)/(2*F**3*K**2) + (-2*D*K + F*H)**3/(F**3*K**3))**(1/3)/3 - (-2*D*K + F*H)/(3*F*K))**2)')
  33.  
  34. replacer={D:DD,EE:EEE,F:FF,G:GG,H:HH,K:KK,L:LL,M:MM}
  35.  
  36. r4_expr=r4.subs(replacer)
  37. c1_expr=c1.subs(replacer)
  38. c2_expr=c2.subs(replacer)
  39.  
  40. #breakpoint()
  41.  
  42. print('\nr4={}'.format(r4_expr))
  43. print('\nc1={}'.format(c1_expr))
  44. print('\nc2={}'.format(c2_expr))
  45.  
  46. rr4,cc1,cc2=symbols('rr4 cc1 cc2')
  47. #pprint(Eq(rr4,r4_expr))
  48. #pprint(Eq(cc1,c1_expr))
  49. #pprint(Eq(cc2,c2_expr))
  50.  
  51. #print('\nsimplified r4={}'.format(simplify(r4_expr)))
  52. #print('\nsimplified c1={}'.format(simplify(c1_expr)))
  53. #print('\nsimplified c2={}'.format(simplify(c2_expr)))
  54.  
  55.  
  56. rr1 = Float(1.2e3)
  57. rr2 = Float(47e3)
  58. rr3 = Float(68e3)
  59. cc3 = Float(10e-12)
  60.  
  61.  
  62. def R4C1C2(r4_expr,c1_expr,c2_expr,w1,w2,q,rr1,rr2,rr3,cc3,prec):
  63.  
  64.     AA=N(1/w1 + 1/(w2*q),n=prec)
  65.     BB=N(1/(q*w1*w2) + 1/(w2*w2),n=prec)
  66.     CC=N(1/(w1*w2*w2),n=prec)
  67.  
  68.     rr4 = r4_expr.evalf(subs={A:AA,B:BB,C:CC,r1:rr1,r2:rr2,r3:rr3,c3:cc3},n=prec)
  69.     cc1 = c1_expr.evalf(subs={A:AA,B:BB,C:CC,r1:rr1,r2:rr2,r3:rr3,c3:cc3},n=prec)
  70.     cc2 = c2_expr.evalf(subs={A:AA,B:BB,C:CC,r1:rr1,r2:rr2,r3:rr3,c3:cc3},n=prec)
  71.  
  72.     return (rr4,cc1,cc2)
  73.  
  74. f1=30000
  75. f2=f1
  76. q=1.0
  77.  
  78. w1=N(f1*2*pi,n=prec)
  79. w2=N(f2*2*pi,n=prec)
  80. q=Float(q)
  81.  
  82. rrr4,ccc1,ccc2=R4C1C2(r4_expr,c1_expr,c2_expr,w1,w2,q,rr1,rr2,rr3,cc3,prec)
  83.  
  84. print('\nfrom r1={},r2={},r3={},c3={}; f1={},f2={},q={}'.format(rr1,rr2,rr3,cc3,f1,f2,q))
  85. print('r4={},c1={},c2={}'.format(rrr4,ccc1,ccc2))
  86.  
  87.