python - 给定一个多项式函数作为字符串,将一阶导数作为字符串返回
问题描述
我正在尝试创建一个简单的导数计算器函数,它将多项式函数作为字符串,并将一阶导数作为另一个字符串返回。我是初学者,完全不知道如何开始。
def derivative(str):
derivative("3*x^2 + 4*x - 22") # Should return 6*x^1 + 4*x^0 - 0
如果有人可以帮助我开始这个,我将不胜感激!
解决方案
Python 的符号库sympy
可以处理将字符串转换为符号表达式并获取导数。请注意,Python 使用**
for power
, while^
仅用于布尔异或。 convert_xor
负责将 转换^
为电源。
下面是一些示例代码,可帮助您开始和试验。
from sympy import sympify, Derivative
from sympy.parsing.sympy_parser import parse_expr, standard_transformations, convert_xor
def derivative(str_expr):
transformations = (standard_transformations + (convert_xor,))
expr = parse_expr(str_expr, transformations=transformations)
return str(Derivative(expr).doit())
print(derivative("3*x^2 + 4*x - 22"))
print(derivative("sin(x/cos(x))"))
print(derivative("exp(asin(x^2)/sqrt(x))"))
print(derivative("LambertW(x)"))
print(derivative("erf(x)"))
输出:
6*x + 4
(x*sin(x)/cos(x)**2 + 1/cos(x))*cos(x/cos(x))
(2*sqrt(x)/sqrt(1 - x**4) - asin(x**2)/(2*x**(3/2)))*exp(asin(x**2)/sqrt(x))
LambertW(x)/(x*(LambertW(x) + 1))
2*exp(-x**2)/sqrt(pi)
推荐阅读
- php - SOAP 调用 PHP 未发送所有参数
- android - 在顶部为 android 中的微调器数组添加标题
- transactions - 块处理模式下的 Spring Batch 事务回滚
- firebase - Firebase 存储:我应该删除 Firebase 存储中的工件文件吗?
- python - Openpyxl - 如何引用另一张纸上的单元格
- android - 我的 Android 应用程序数据库访问在模拟器中工作,但在生产中获取空值
- java - 后台服务崩溃
- java - 同步异步回调方法调用
- spring-boot - 无法从 Kubernetese 配置映射中读取 int 值
- ios - 如何在 SwiftUI ZStack 中对齐文本以适应较小的屏幕尺寸?