Advertisement
vinocastro

MPe

Aug 10th, 2020
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.16 KB | None | 0 0
  1. def differentiate(fxn):
  2.     if fxn == '(x)' or fxn == 'x':
  3.         return '1'
  4.     else:
  5.         open = fxn.find('(')
  6.         close = fxn.rfind(')')
  7.         gxn = fxn[open:close+1]
  8.         coefficient = fxn[:open]
  9.         exponent = fxn[close+1:]
  10.         trig = ''
  11.         trigs = ['sin','cos','tan','csc','sec','cot']
  12.         if coefficient == "":
  13.             coefficient = 1
  14.         elif coefficient == "-":
  15.             coefficient = -1
  16.         elif coefficient not in trigs:
  17.             coefficient = int(coefficient)
  18.         else:
  19.             trig = coefficient
  20.             coefficient = 1
  21.  
  22.         if exponent == '':
  23.             exponent = 1
  24.         else:
  25.             exponent = int(exponent[1:])
  26.  
  27.         fdx = ''
  28.  
  29.         if trig == '':
  30.             coefficient *= exponent
  31.             exponent -= 1
  32.             fdx = gxn
  33.         else:
  34.             if trig == 'sin':
  35.                 fdx = 'cos' + gxn
  36.             elif trig == 'cos':
  37.                 fdx = 'sin' + gxn
  38.                 coefficient *= -1
  39.             elif trig == 'tan':
  40.                 fdx = 'sec' + gxn
  41.                 exponent *= 2
  42.             elif trig == 'csc':
  43.                 fdx = 'csc' + gxn + 'cot' + gxn
  44.                 coefficient *= -1
  45.             elif trig == 'sec':
  46.                 fdx = 'sec' + gxn + 'tan' + gxn
  47.             elif trig == 'cot':
  48.                 fdx = 'csc' + gxn
  49.                 exponent *= 2
  50.                 coefficient *= -1
  51.  
  52.         parentheses = exponent > 1 or coefficient < 0 or trig != ''
  53.  
  54.         if exponent == 1:
  55.             exponent = ''
  56.         else:
  57.             exponent = '^{}'.format(str(exponent))
  58.  
  59.         if coefficient == 1:
  60.             coefficient = ''
  61.         elif coefficient == -1:
  62.             coefficient = '-'
  63.         else:
  64.             coefficient = str(coefficient)
  65.  
  66.         if parentheses == True:
  67.             coefficient = "({}".format(coefficient)
  68.             exponent = "{})".format(exponent)
  69.  
  70.         gdx = differentiate(gxn[1:len(gxn)-1])
  71.  
  72.         if gdx == '1':
  73.             gdx = ''
  74.         else:
  75.             gdx = "*{}".format(gdx)
  76.  
  77.         fdx = coefficient + fdx + exponent + gdx
  78.  
  79.         return fdx
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement