在线矩阵微积分工具,可以生成 Python/Latex 代码哦!

2017 年 11 月 29 日 量化投资与机器学习 编辑部


编辑部

微信公众号

关键字全网搜索最新排名

『量化投资』:排名第一

『量       化』:排名第一

『机器学习』:排名第三


我们会再接再厉

成为全网优质的金融、技术类公众号


社区在线技术交流群

https://bbs.mlqi.org

(大家多去逛逛哈)


今天给大家介绍一个实用的在线小工具,矩阵微积分在线生成 Python/Latex 代码。


链接:

http://www.matrixcalculus.org/matrixCalculus


Python代码如下:

"""
d/dx x'*A*x + c*sin(y)'*x = 2*A*x+c*sin(y)
A is a matrix
c is a scalar
y is a vector
x is a vector
"""


from __future__ import division, print_function, absolute_import
   
import numpy as np
   
def fAndG(A, c, x, y):
   assert(type(A) == np.ndarray)
   dim = A.shape
   assert(len(dim) == 2)
   A_rows = dim[0]
   A_cols = dim[1]
   if type(c) == np.ndarray:
       dim = c.shape
       assert(dim == (1, ))
   assert(type(x) == np.ndarray)
   dim = x.shape
   assert(len(dim) == 1)
   x_rows = dim[0]
   assert(type(y) == np.ndarray)
   dim = y.shape
   assert(len(dim) == 1)
   y_rows = dim[0]
   assert(A_cols == x_rows == y_rows == A_rows)

   t_0 = np.dot(A, x)
   t_1 = np.sin(y)
   functionValue = (np.dot(x, t_0) + (c * np.dot(t_1, x)))
   gradient = ((2 * t_0) + (c * t_1))

   return functionValue, gradient

def generateRandomData():
   A = np.random.randn(3, 3)
   c = np.random.randn(1)
   x = np.random.randn(3)
   y = np.random.randn(3)
   return A, c, x, y

if __name__ == '__main__':
   A, c, x, y = generateRandomData()
   functionValue, gradient = fAndG(A, c, x, y)
   print('functionValue = ', functionValue)
   print('gradient = ', gradient)


Latex代码如下:

\documentclass[12pt]{article}
\usepackage{amsmath,amsthm,amssymb}
\begin{document}
function:
\begin{align*}
 f = x^\top \cdot A\cdot x+c\cdot \sin(y)^\top \cdot x
\end{align*}

gradient:
\begin{align*}
 \frac{\partial f}{\partial x} = 2\cdot A\cdot x+c\cdot \sin(y)
\end{align*}
\end{document}



登录查看更多
0

相关内容

一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
【新书】Python中的经典计算机科学问题,224页pdf
专知会员服务
145+阅读 · 2019年12月28日
机器学习领域必知必会的12种概率分布(附Python代码实现)
算法与数学之美
21+阅读 · 2019年10月18日
一文读懂PyTorch张量基础(附代码)
数据派THU
6+阅读 · 2018年6月12日
深度学习线性代数简明教程
论智
11+阅读 · 2018年5月30日
【干货】--基于Python的文本情感分类
R语言中文社区
5+阅读 · 2018年1月5日
推荐|2017年最受数据科学欢迎的Top15个Python库!
全球人工智能
8+阅读 · 2017年10月28日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
Meta-Learning with Implicit Gradients
Arxiv
13+阅读 · 2019年9月10日
Arxiv
3+阅读 · 2018年10月8日
Arxiv
4+阅读 · 2018年5月10日
Arxiv
8+阅读 · 2018年5月1日
Arxiv
4+阅读 · 2018年3月23日
VIP会员
相关资讯
机器学习领域必知必会的12种概率分布(附Python代码实现)
算法与数学之美
21+阅读 · 2019年10月18日
一文读懂PyTorch张量基础(附代码)
数据派THU
6+阅读 · 2018年6月12日
深度学习线性代数简明教程
论智
11+阅读 · 2018年5月30日
【干货】--基于Python的文本情感分类
R语言中文社区
5+阅读 · 2018年1月5日
推荐|2017年最受数据科学欢迎的Top15个Python库!
全球人工智能
8+阅读 · 2017年10月28日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
Top
微信扫码咨询专知VIP会员