在线矩阵微积分工具,可以生成 Python/Latex 代码哦!
时间:2022-04-25
本文章向大家介绍在线矩阵微积分工具,可以生成 Python/Latex 代码哦!,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
社区在线技术交流群
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 Acdot x+ccdot sin(y)^top cdot x
end{align*}
gradient:
begin{align*}
frac{partial f}{partial x} = 2cdot Acdot x+ccdot sin(y)
end{align*}
end{document}
- Angular企业级开发(4)-ngResource和REST介绍
- CSS魔法堂:"那不是bug,是你不懂我!" by inline-block
- scala 学习笔记(03) 参数缺省值、不定个数参数、类的属性(Property)、泛型初步
- Cmd Markdown编辑器简明语法手册
- 如何让spring mvc web应用启动时就执行特定处理
- CSS魔法堂:小结一下Box Model与Positioning Scheme
- jboss EAP 6.2+ 通过代码控制JNDI数据源
- jboss CLI 命令行接口学习(适用JBOSS EAP 6.2+)
- WebComponent魔法堂:深究Custom Element 之 面向痛点编程
- 修复bootstrap daterangepicker中的3个问题
- 搭建AngualarJS开发环境
- CSS魔法堂:重拾Border之——更广阔的遐想
- Jboss EAP:native management API学习
- linux:手动校准系统时间和硬件CMOS时间
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法