快速、透明的一阶和二阶自动微分

ad的Python项目详细描述


https://travis-ci.org/tisimst/ad.png?branch=master

概述

ad包允许您轻松地透明地执行 一阶和二阶自动微分。高等数学 涉及三角函数、对数函数、双曲函数等。 使用admath子模块直接计算。

支持所有基数值类型intfloatcomplex, 等等)。这个包的设计使得底层的数值类型 在执行任何 计算。因此,这个包更像是一个“包装器”,它只是帮助 在保持原始功能的同时跟踪派生 数值计算。

摘自Automatic differentiation(ad)上的维基百科条目:

“AD exploits the fact that every computer program, no matter how complicated, executes a sequence of elementary arithmetic operations (addition, subtraction, multiplication, division, etc.) and elementary functions (exp, log, sin, cos, etc.). By applying the chain rule repeatedly to these operations, derivatives of arbitrary order can be computed automatically, and accurate to working precision.”

有关详细信息和示例,请参见package documentation

主要功能

  • 透明计算和派生:没有或很少 需要修改现有代码,包括使用时 Numpy模块。
  • 几乎支持所有数学运算,包括 来自标准math模块的函数(sin、cos、exp、erf, 以及cmath模块(相位、极性等),具有额外的便利性 三角函数、双曲函数和对数函数(csc、acoth、ln等)。 比较运算符遵循与基础数字相同的规则。 类型
  • real和complex算术处理无缝。像对待自己一样对待对象 通常会使用mathcmath函数,但是使用 admath个副本。
  • 自动梯度和hessian函数生成器用于优化 使用scipy.optimize例程和gh(your_func_here)进行研究。
  • 兼容线性代数例程,位于ad.linalg子模块中, 类似于numpy的linalg子模块中的那些,它们不是 依赖于拉帕克。目前有:
    1. 分解
      1. chol:cholesky分解
      2. lu:lu分解
      3. qr:qr分解
    2. 解方程和逆矩阵
      1. solve:线性方程组的通用解算器
      2. lstsq:线性方程组的最小二乘解算器
      3. inv:求解矩阵的(乘法)逆

安装

您有几个简单、方便的选项来安装ad包 (可能需要管理权限):

  1. 下载下面的包文件,解压缩到任何目录,然后运行 python setup.py install来自命令行。
  2. 只需将解压缩的ad-XYZ目录复制到任何其他位置 python可以找到它并将其重命名为ad
  3. 如果安装了setuptools,请运行easy_install --upgrade ad 从命令行。
  4. 如果安装了pip,请从 命令行。
  5. GitHub
  6. 上下载bleeding版本

联系人

请将功能请求、错误报告或反馈发送到 Abraham Lee

致谢

作者表示感谢:

  • Eric O. LEBIGOT (EOL),提供uncertainties包的作者 代码洞察力和灵感
  • 斯蒂芬·马克斯,波莫纳学院教授,关于 与scipy.optimize中的优化例程的接口。
  • Wendell Smith,用于更新测试功能和许多其他有用的 功能更新
  • Jonathan Terhorst,因为他发现了一个能产生对数导数的错误 功能(基本!(e)给出错误的答案。
  • github用户fhgd,用于捕捉admath.atan2中的错误计算

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

推荐PyPI第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本