Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def differentiate(fxn):
- if fxn == '(x)' or fxn == 'x':
- return '1'
- else:
- open = fxn.find('(')
- close = fxn.rfind(')')
- gxn = fxn[open:close+1]
- coefficient = fxn[:open]
- exponent = fxn[close+1:]
- trig = ''
- trigs = ['sin','cos','tan','csc','sec','cot']
- if coefficient == "":
- coefficient = 1
- elif coefficient == "-":
- coefficient = -1
- elif coefficient not in trigs:
- coefficient = int(coefficient)
- else:
- trig = coefficient
- coefficient = 1
- if exponent == '':
- exponent = 1
- else:
- exponent = int(exponent[1:])
- fdx = ''
- if trig == '':
- coefficient *= exponent
- exponent -= 1
- fdx = gxn
- else:
- if trig == 'sin':
- fdx = 'cos' + gxn
- elif trig == 'cos':
- fdx = 'sin' + gxn
- coefficient *= -1
- elif trig == 'tan':
- fdx = 'sec' + gxn
- exponent *= 2
- elif trig == 'csc':
- fdx = 'csc' + gxn + 'cot' + gxn
- coefficient *= -1
- elif trig == 'sec':
- fdx = 'sec' + gxn + 'tan' + gxn
- elif trig == 'cot':
- fdx = 'csc' + gxn
- exponent *= 2
- coefficient *= -1
- parentheses = exponent > 1 or coefficient < 0 or trig != ''
- if exponent == 1:
- exponent = ''
- else:
- exponent = '^{}'.format(str(exponent))
- if coefficient == 1:
- coefficient = ''
- elif coefficient == -1:
- coefficient = '-'
- else:
- coefficient = str(coefficient)
- if parentheses == True:
- coefficient = "({}".format(coefficient)
- exponent = "{})".format(exponent)
- gdx = differentiate(gxn[1:len(gxn)-1])
- if gdx == '1':
- gdx = ''
- else:
- gdx = "*{}".format(gdx)
- fdx = coefficient + fdx + exponent + gdx
- return fdx
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement