Subversion Repositories pentevo

Rev

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

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