一个python包,用于多变量函数的前向模式自动微分、jacobian/hessian矩阵计算、根查找和优化例程。

hotAD的Python项目详细描述


热广告

一个python包,用于多变量函数的前向模式自动微分、jacobian/hessian矩阵计算、根查找和优化例程。

Build Status

Coverage Status

背景

传统上,科学家使用符号微分和有限差分法计算函数的导数,但这些方法面临着增加误差和增加时间成本的问题。automatic differentication(ad)将链式规则(一种基本的微分技术)一遍又一遍地应用于构成任何函数的一系列基本算术运算。随着阶数的增加,AD计算的复杂度不比原来的函数差,从而达到了效率。

我们的python包使用ad的前向模式来计算函数的一阶和二阶导数。欢迎用户使用我们的前向模式广告模块和基本功能模块为自己的应用程序,或利用我们更加用户友好的雅可比计算和优化模块。

安装

要安装,用户有两个选项

  • pippip install hotAD(即将推出)
  • 下载源代码:在hotAD/hotAD下查找代码,并在requirements.txt文件中查找需求。

用法

autodiffobject

用户可以实例化想要区分的变量,然后将这些变量组合成一个函数,该函数现在将包含函数值和一阶导数。要调用向量值函数,只需创建一个函数列表。如果用户也希望计算二阶导数,则可以指定可选参数H=True

x = AutoDiff(3, 'x')y = AutoDiff(4, 'y')f = x*y + x

基本功能

强烈建议用户使用我们的基本功能。目前我们已实施:

  • 三角函数(sincostanarcsinarccosarctan
  • 幂函数(powersqrt
  • 指数函数(logexp
  • 逻辑函数(logit

x = AutoDiff(np.pi, 'x')y = AutoDiff(np.pi/4, 'y'f = ef.sin(x) + np.tan(y)

Adfun

用户可以使用此模块中的方法计算函数的雅可比矩阵,通过牛顿法进行求根,通过newtonquasi-newton-BFGSgradient-descent方法进行最小化。

更多信息

有关如何使用包的其他信息,请参见docs/milestone2.ipynb

我们的组员是:

  • 王元恒
  • 陆家印
  • 丽皮卡·拉马斯瓦米
  • 安东尼·伦奇

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Hibernate会话/模板返回null   java Bluetooth无法连接到OBD2   smartGWT中的行分隔符的java等价物?   java如何删除可执行路径错误   java使用ICE Tar库对大文件进行Tar   java Spring Boot/JavaFX:添加一个仍然可以访问JPA的关机挂钩(ctrlc)   使用输入流读取java属性文件   如何在Java中迭代HashSet元素时覆盖该元素   内容类型中的javascript set charset=“utf8”   使用cassandra触发器的java   用户界面什么是适合我的GUI(JAVA)的update()方法   Java实例控制   java前置摄像头无法在不同设备上工作   java方法组织。postgresql。jdbc。连接。createClob()尚未实现