看板 trans_math 關於我們 聯絡資訊
你求得是近似值 你得到的這個當然只是個近似值 偏大是正常的 因為你只取第一項 第二項是負的 會再修正一些回來 ※ 引述《Trewf (Trewf)》之銘言: : 這是我的算法,但是答案與計算機算出的值有落差... : 426^(1/4)=(4^4 + 170)^(1/4)=4 * (1 + 170/256)^(1/4) -------A : f(x+h)=(x + h)^(1/4) -------B : f(x)=x^(1/4) -------C //四次根號內的x=1, h=170/256 ------E ^^^^^^^^^這邊滿大的 誤差大也很合理 : f'(x)=1/4 * x^(-3/4) -------D //f(x)的微分 : f(x+h) = f'(x) * h + f(x) //由f(x)微分的定義推導而來 f(x+h) = f(x) + f'(x)h + f''(c)h^2/2!, c 是某個在 (x,x+h) 之間的數字 (h > 0) 若你要更接近,展開到更高階項的話, f(x+h) = f(x) + f'(x)h + f''(x)h^2/(2!) + f'''(c')h^3/(3!) 同樣, c' 是某個在 (x,x+h) 中未知的數字 (h > 0) 算出來是 f(x+h) ~ x^(1/4) + 1/4 x^(-3/4)*h - 3/16 x^(-7/4)*h^2/2 一樣代 x = 1, h = 170/256 得 4f(1+h) ~ 4 + h - 3/4 h^2/2 = 4 + 170/256 - 86700/524288 ~ 4.49869537 當然 這又偏小了 再繼續展開, 第三項是正的, 會補回來. 這裡重要的一點就是誤差估計, 誤差就是 f^(n+1)(c)*h^(n+1)/(n+1)!. 由於 h > 0, c 在 (x,x+h) 之間. 估計上面這項的最大值就是了. 例如這題展開一項是 4*(-h^2/2! 3/16 c^(-7/4)) (因為最後還 *4 ) 由於 h = 170/256, 這項(絕對值)最大可以接近 (170/256)^2/2 * 3/4, 看得出滿大的. (其中, c 在 (1, 1+170/256) 之間) 或是, 另一種比較簡單的估計方法是, 因為這題用的這個展開是交錯級數, 誤差最大就是被丟掉的第一項. 這裡的理由是因為 x^(1/4) (1 + h/x)^(1/4) 的泰勒展開式在 |h/x|<1 時收斂 到原函數, 所以可以用該級數的誤差估計法. : B, C ,D 式代入f(x+h): : f(x+h) = 1/4 * x^(-3/4) * h + x^(1/4) : = 1/4 * 1 * 170/256 + 1 //E式代入 : = 170/1024 + 1 = 597/512 : = 1.166015625 : 將1.166015625代回A式: : 426^(1/4) = 4 * 1.166015625 = 4.6640625 # : 本算式的答案為4.6640625,但是計算機按出來的卻是4.543101082... : 接著驗算,我的答案(4.6640625)^4並非426,而是473... : 結論是我的算式有問題,但是我找不到Orz : 有請解惑。 如果說不使用 4^4 + 170, 用 5^4 - 199, 直觀上 170/256 > 199/625, 說不定比較好 (不過最後因為是 *5, 效果會打折XD 哪樣比較划算, 我也不知道) 5*(1/4 * 1 * (-199/625) + 1) = 199/500 + 5 = 4.602, ^4~448, 稍微接近一點XD" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.51.224 ※ 編輯: suhorng 來自: 118.166.51.224 (01/25 18:12)
Trewf:謝謝大大的詳解XD 1.163.20.141 01/26 11:23