首页 > 解决方案 > 在 Math.js 中添加/乘以符号表达式

问题描述

我是 javascript / Math.js 相对较新的数学家,我正在尝试弄清楚如何对一组函数进行基本的代数运算。设置如下:我有三个函数(根据参数 u,v 的某些参数化的 x、y、z 坐标),我以字符串开头,由用户输入。我想做一些微分几何,所以现在我正在使用 Math.js 来解析它们并获取它们的导数:

const x = math.parse(xCoordText);
const y = math.parse(yCoordText);
const z = math.parse(zCoordText);
const u = math.parse('u');
const v = math.parse('v');

const RXu = math.derivative(x, u);
const RYu = math.derivative(y, u);
const RZu = math.derivative(z, u);

const RXv = math.derivative(x, v);
const RYv = math.derivative(y, v);
const RZv = math.derivative(z, v);

到目前为止,一切似乎都运行良好。但是我需要做的下一个计算涉及 R 的总和和乘积。一个例子:我需要向量 [RXu,RYu,RZu] 与其自身的点积。但是像下面这样的表达式不起作用

const E = math.parse('RXu*RXu+RYu*RYu+RZu*RZu');

由于解析器不知道 RXu 应该是上面定义的东西,而不仅仅是一串字母。我想我找到了解决这个问题的方法:我可以使用 .toString() 将每个 R** 表达式转换为字符串,然后手动创建正确的添加:例如,要获得 RXu*RXu,我可以这样做:

RXu.toString();
math.parse(RXu.concat('*').concat(RXu));

但我认为这不是正确的方法 - 无论如何都会很混乱,因为我希望在达到我需要的最终表达式之前做很多计算!我尝试查看 Math.js 站点上的文档以了解如何对两个表达式树进行代数运算,但没有弄清楚。非常感谢任何帮助或指向资源!

标签: javascriptmathjs

解决方案


推荐阅读