我有一個等式表示了這樣的:求解第一度方程 - 代碼優化
其中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