实现公式和Sigma Sum到Java?

时间:2014-02-04 07:56:51

标签: java

我如何在java中实现这样的东西:

enter image description here

到目前为止,这是我的尝试:

float yPos = (float) ((Q* A) * D.y * Math.cos(w.y * (D.dot(x,y)) + phase_const * t));

我很困惑如何实现像Sigma或Sum()或wiDi这样的东西。(x,y)不确定我是否正确实现了它。

谢谢

2 个答案:

答案 0 :(得分:2)

该公式包含矩阵运算,每次从头开始编码都很昂贵。例如,使用像Jama这样的矩阵库来执行矩阵运算。总和很容易计算。

此外,像Maple这样的商业软件包可以生成Java(实际上是C但转换很简单)代码,可以从上面给出的公式中执行向量,矩阵和其他操作。

答案 1 :(得分:1)

嗯,你肯定不会把它变成一行代码。 ; - )

我不知道这个数学是做什么的,但是让我建议一个方法。

在各种sigma表达式中,有各种对象(Q,A,D等)具有相同数量的元素,这些对象将由下标“i”迭代。

这些对象似乎是在某个时刻创建的,当'P'函数应用于各种x,y和t值时保持不变。

这表明你需要一个'Calculator'类,它将这些对象(Q,A,D等)作为构造函数参数。 (或者也许在构造函数中计算它们。)

然后,您的Calculator.P()函数由x,y和t值参数化,并返回三个值。 (我不确定这是不是要讨论Points,而是使用合适的3值对象。)

P的主体然后变成3个“for(int i = 0; i< numValues; i ++)”的循环,计算每个表达式的总和。

简而言之,有一个类将不变量作为构造函数参数,因此可以存储它们以便在每次调用P时使用,并将所有参数化计算放入P函数中。