我有一个等式表示了这样的:求解第一度方程 - 代码优化
其中A和X是数字的两个向量和N> 2的用户输入(每次都不同),而G是一个数字常量,Y是我想找到的变量。 使一些计算,我想说的解决方案可能是(它的测试)概括如下:
因此,这里是我的问题。当前求解方程的代码是使用二分法,即它通过以迭代方式替换公式中的值来估计Y的值,直到表达式的全局值足够接近0(无法访问代码,所以我不能说关于中断级别或其结构的附加信息,不幸的是)。
但是,我在考虑实现一个计算代码的代码,如上面的解决方案(第二个公式)所示。这是我的尝试:
num = 0
den = 0
For j = 1 To N
prods = 1
For k = 1 To N
If k <> j Then
prods = prods * X(k)
End If
Next k
num = num + prods
den = den + (prods/A(j))
Next j
Y = num/den
从来没有研究过任何计算机科学,所以我不能够评估自己这个方法w.r.t.质量经典的二分之一。 任何人都可以请给我一个关于如何理解两个代码中的哪一个更好地工作的提示,并且如果可能的话有一些解释?提前致谢。
注意:不能提供足够的信息进行正确的分析我不希望有任何详细的结果。我只是想获得一些专家“第一眼”的意见,是我不是你一个:)
是有一些原因,你不使用公式'Y = sum_j(1/X(j))/ sum_j(1 /(A(j)* X(j)))'? – 2014-10-07 17:23:58
在总和本身内部进行底部总和划分,所以我认为你说的划分在数学上是不可行的。 N = 2时的示例: 'y = [x(1)+ x(2)]/[[x(2)/ A(1)] + [x(1)/ A(2)]]。 – 2014-10-07 17:32:10
我在第一个评论中错误地使用了不到一分钟的公式,但是现在的那个公式是通过用右边的分子和分母除以product_j X(j)来得到的。 – 2014-10-07 17:35:04