[其他] 數值分析 - 非整數次方 (幕次)

看板Programming作者 (閉上眼的魚)時間14年前 (2011/09/02 17:59), 編輯推噓2(2025)
留言27則, 3人參與, 最新討論串1/1
※ [本文轉錄自 Math 看板 #1EOARBpm ] 作者: EdisonX (閉上眼的魚) 看板: Math 標題: [其他] 數值分析 - 非整數次方 (幕次) 時間: Fri Sep 2 17:49:56 2011 大家好,我想知道一些非整數次方的算法,不用計算機,用手算即可, 只考慮實數係即可,可假設容許誤差為 10 ** -3。 我找過一些資料了,目前比較有用的想法,以下面例子帶出 (恕數學不好)。 2.5 ** 3.12 = 2.5 ** (3.0 + 0.12) = (2.5 ** 3.0) * (2.5 ** 0.12) = (2.5 ** 3.0) * (2.5 ** (12 / 100) ) = (2.5 ** 3.0) * ( (2.5 ** 12) * ( 2.5 ** 0.01 ) ) 這樣是先化成 (整數 + 小數),再將小數化成分數去計算, 但還是卡在 2.5 ** 0.01 (開 100 次根) 該如何算? 若真如此計算,速度略嫌慢,且在小數化為分數再計算時, 又怕誤差更大了。 --- 分隔線 --- 分隔線 --- 其實這是要寫 math.h 裡面的東西, 在完全不調用 math.h 函式下, 是否有什麼演算法可做?謝謝大家。 -- If there is no tomorrow, I want to see u last time. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.78.41 ※ 編輯: EdisonX 來自: 180.177.78.41 (09/02 18:03)

09/03 23:16, , 1F
請看NRiC (Numerical Recipes in C)
09/03 23:16, 1F

09/03 23:19, , 2F
感謝 MOONRAKER 指示提醒。
09/03 23:19, 2F

09/03 23:20, , 3F
抱歉,他們還是要用math.h X(
09/03 23:20, 3F

09/03 23:21, , 4F
那麼基礎的計算他們沒有自己做 X(
09/03 23:21, 4F

09/03 23:23, , 5F
只有參考價值 http://goo.gl/UlOYR
09/03 23:23, 5F

09/03 23:23, , 6F
嗯嗯,我是很好奇,目前想法卡在 e^x
09/03 23:23, 6F

09/03 23:23, , 7F
用taylor series 展開,速度差100倍.
09/03 23:23, 7F

09/03 23:24, , 8F
所以想說這部份是不是各家用組語寫的.
09/03 23:24, 8F

09/03 23:27, , 9F
再次感謝 M 大提供的資源 :)
09/03 23:27, 9F

09/04 02:29, , 10F
一定有optimization,而且運用更快的算
09/04 02:29, 10F

09/04 02:30, , 11F
法,不過我也不知道這種東東從哪裡找起
09/04 02:30, 11F

09/04 02:30, , 12F
當然最直接的就是看gcc的math.h原始碼
09/04 02:30, 12F

09/04 02:30, , 13F
不過那太累了 X(
09/04 02:30, 13F

09/04 13:59, , 14F
vc 的原始碼沒開發出來,gcc 的會開放嗎 ??
09/04 13:59, 14F

09/04 13:59, , 15F
有空我把 gcc 架起來,去端模一下,謝謝M大
09/04 13:59, 15F

09/07 11:59, , 16F
會吧,會在source的package裡面
09/07 11:59, 16F

09/07 12:00, , 17F
不過那真的是太累了
09/07 12:00, 17F

09/07 16:41, , 18F
真的不是件容易的事Orz,看懂一個就不容易.
09/07 16:41, 18F

09/08 01:53, , 19F
這有一個講用lookup table的實作法
09/08 01:53, 19F

09/08 01:54, , 20F
中間講用22項的表就可以應付2^x
09/08 01:54, 20F

09/08 01:54, , 21F
底下還有給範例程式,不過又沒看到表
09/08 01:54, 21F

09/08 01:55, , 22F
挺有趣可惜沒空看 http://goo.gl/bsb8J
09/08 01:55, 22F

09/08 08:36, , 23F
可以試試連分數(continued fraction)
09/08 08:36, 23F

09/08 08:42, , 24F
Shanks' 1954 algorithm for
09/08 08:42, 24F

09/08 08:42, , 25F
computing log(b)/log(a)
09/08 08:42, 25F

09/08 14:02, , 26F
Programming 真的到處都是神人,這些資料
09/08 14:02, 26F

09/08 14:03, , 27F
我都沒找到.謝謝 M 大及 b 大,感激不盡 !!
09/08 14:03, 27F
文章代碼(AID): #1EOAaLtu (Programming)
文章代碼(AID): #1EOAaLtu (Programming)