計算我有了這個代碼,計算複數的複雜的權力:優化的JavaScript中複數的複雜權力的準確性
var ss = a.re*a.re + a.im*a.im;
var arg1 = math.arg(a);
var mag = Math.pow(ss,b.re/2) * Math.exp(-b.im*arg1);
var arg = b.re*arg1 + (b.im * Math.log(ss))/2;
return math.complex(mag*Math.cos(arg), mag*Math.sin(arg));
(複數看起來像{回覆:1,即時通訊:1} ,而math.arg只給出Math.atan2(n.im.n.re)。math.complex是複數的構造函數)
這不是特別複雜,我也不是很精通效率/準確度分析。
我希望在複數的整數次冪上得到更好的結果,因爲用二項式展開可以更準確地做到這一點。有沒有人有類似的東西寫在在JavaScript,在我離開之前做我自己的?我並不十分擔心速度,更關心準確性。
你是什麼意思? '(1 + i)^ 5'不等於'1^5 + i^5'。 – 2012-04-26 12:06:57
@ChristianPerfect:哦,對不起,我沒有看到你說的話「我不是很擔心速度,更關心準確性」;由於您對效率/準確度分析的評論,我認爲您暗示您擔心效率。我將編輯我的答案... – ninjagecko 2012-04-26 12:46:10
這是一個普通的數學軟件包,作爲基於瀏覽器的數學評估系統的一部分,所以我不希望使用特別大的數字。我認爲無處不在的整數係數將是最常見的用途。 這是一個問題,原因是(1 + i)^ 5使用logs-and-trig方法評估{re:-4.0000000001,im:-4},這非常煩人。 – 2012-04-26 13:26:55