大家好,Hedgehog Lab 0.3版本已经发布了(https://hedgehog-lab.github.io/),这个版本最大的改动就是babel前端更新的operator overload插件配合nerdamer实现了JavaScript上的非常初级简单的符号计算,用户体验堪比Matlab。
先来像Matlab一样优雅地定义变量x:
let x = sym('x')
然后定义函数表达式f(x):
let fx = ( x^2 ) + exp(x) + sin(x)
好了!表达式部分已经完全写好了!接下来只要计算微分和积分,并且优雅地用LaTeX的方式打印出来就可以了——
formulaTex(`f(x) = ` + fx.toTex())
formulaTex(`f'(x) = ` + diff(fx,x).toTex())
formulaTex(`\\int{f(x)dx} = ` + integrate(fx,x).toTex())
看看结果——
完美!
接下来可以试试三个变量的W(x,y,z)
let x = sym('x')
let w = sym('w');
let y = sym('y');
let W = (x^w) + sin(w+y) + (y^-2) + 1/w + log(cos(x) + sin(x))
然后分别对W进行x,y,w的微分,并且对x进行积分——
formulaTex(`W(x,y,w) = ` + W.toTex())
formulaTex(`\\frac{dW(x,y,w)}{dx} = ` + diff(W,x).toTex());
formulaTex(`\\frac{dW(x,y,w)}{dy} = ` + diff(W,y).toTex());
formulaTex(`\\frac{dW(x,y,w)}{dw} = ` + diff(W,w).toTex());
formulaTex(`\\int{W(x,y,w)dx} = ` + integrate(W,x).toTex());
太简单太好用了吧!
而且以上功能全部包含在Hedgehog Lab环境中,并且是完全在浏览器里编译、运行、显示的结果——不需要安装任何软件,不需要任何配置,不需要任何服务器连接,不管您用的Windows笔记本、Macbook笔记本、iPad和iPhone自带浏览器、龙芯笔记本、华为Matepad Pro、三星Galaxy Tab、树莓派Firefox、小米手机、智能冰箱,只要有浏览器,打开网页就能完全无缝编译运行哦!
一个完整的教程已经发布在tutorial 7中了,可以进入hedgehog lab中点击tutorial 7然后编译运行查看结果:Hedgehog Lab, a powerful scientific computation environment in browser.hedgehog-lab.github.io
另外0.3版本的release notes:
完善了babel compiler的operator overload plugin,我把babel template重写了一下,现在的compiler不仅支持了symbolic computing的所有operator overload,还支持了“number (+/-/*) Matrix”的operator overload,还支持了2DArray [ALL_OPERATORS] Matrix,如果有一个很长的矩阵表达式,但是开头是非Mat类的scalar/vector/2D Array,现在用起来会更爽,也就是说,类似以下几种矩阵运算的表达式语法,在之前版本不支持,目前版本已经支持了——
let matB = 1 + matA;
let matC = [[1,2,3],[4,5,6]] + matA;
let matD = [[1,2,3],[4,5,6]] / matA;
let matE = 1 - matA;
什么是Hedgehog Lab?Hedgehog Lab是一个开源免费的、完完全全老老实实在浏览器里运行的、编译运行JavaScript进行科学计算、符号计算、代数和矩阵、数据画图、生成TeX公式、机器学习、数据分析的编程环境,并且尽可能地给JavaScript加上各种口味的语法糖,让用户用得舒服开心。
不需要安装任何软件,不需要任何配置,不需要任何服务器连接,不管您用的Windows笔记本、Macbook笔记本、iPad和iPhone自带浏览器、龙芯笔记本、华为Matepad Pro、三星Galaxy Tab、树莓派Firefox、小米手机、智能冰箱,只要有浏览器,打开网页就能完全无缝编译运行哦!