怎么用python求导_如何使用Python求导?

展开全部

通过符号e69da5e6ba903231313335323631343130323136353331333365633865计算

from sympy import *x=Symbol("x")diff(1/(1+x**2),x)

抛砖引玉:import astimport astunparse  class BrainHoleDiff(ast.NodeTransformer):    def has_symbol(self, node):        return node.id == "x"     def expr_parse(self, expr):        node = ast.parse(expr)

return node.body[0].value     def visit_Call(self, node):        func_name = node.func.id

if not self.has_symbol(node.args[0]):

return self.generic_visit(node)

if func_name == "sin":

node.func.id = "cos"

elif func_name == "cos":

node = self.expr_parse("-sin(x)")

elif func_name == "ln":

node = self.expr_parse("1.0/x")        elif func_name == "pow":            times = node.args[1].n            node = self.expr_parse("%s*pow(x, %s)" % (times, times - 1))         return node     def __call__(self, expr):        ast_node = ast.parse(expr)        ast_node = self.visit(ast_node)        return astunparse.unparse(ast_node) diff = BrainHoleDiff() print diff("3*sin(x)-cos(x)") # 3*cos(x) + sin(x)print diff("ln(x)") # 1.0/xprint diff("3*ln(x)+sin(x)-pow(x, 3)+cos(x)") # 3.0/x+cos(x)-3*pow(x, 2)-sin(x)print eval(diff("pow(x, 3)-pow(x, 2)"), {"x": 1}) # 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值