[微積] 一道關於sup的問題

看板Math作者 (艾若帆)時間9年前 (2016/05/06 15:20), 編輯推噓4(4032)
留言36則, 4人參與, 最新討論串1/1
最近想了幾天了,題目是sup (x^2-ln(1+x^2))/(x^4), for x≠0. 從他的定義的地方實在很容易猜出答案應該是當x→0時的極限。 透過一些計算以及圖形也很容易發現在x>1時的時候圖形都遞減,式子也表明他是偶函數。 所以我就集中在x=0附近的行為來考慮,可是把這個函數丟入Google或是其他的數值計算 器中都會發現數值忽大忽小,很嚴重。 所以原先認為答案應該靠近1/2,現在又開始想會不會其實這個函數會發散至無窮, 希望大家給一點提示,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.99 ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1462519207.A.F8A.html

05/06 17:04, , 1F
ln(1+x^2)=x^2-x^4/2+O(x^6) x small
05/06 17:04, 1F

05/06 18:03, , 2F

05/06 18:03, , 3F
忽大忽小一定是你算錯了
05/06 18:03, 3F

05/07 10:27, , 4F
樓上的scale也太大了吧, 如果尺度放在-.005至.0005
05/07 10:27, 4F

05/07 11:23, , 5F
尺度很小的話不是 = 1/2 - x^2/3 + x^4/4 - x^6/5
05/07 11:23, 5F

05/07 11:23, , 6F
+ O(x^8) 嗎?
05/07 11:23, 6F

05/07 11:33, , 7F
數值計算器正常來講都是有限精度的計算喔
05/07 11:33, 7F

05/07 14:25, , 8F
https://goo.gl/ZyJDxL 小尺度,可是這能信嗎?
05/07 14:25, 8F

05/07 14:30, , 9F
級數展開得到 \sum (-x^2)^n/(n+2)
05/07 14:30, 9F

05/07 14:31, , 10F
跟 log(1+x^2) 的級數相比就知道它在 |x| < 1 時都
05/07 14:31, 10F

05/07 14:31, , 11F
絕對收斂
05/07 14:31, 11F

05/07 14:33, , 12F
所以級數跟函數可以掛等號沒問題
05/07 14:33, 12F

05/07 14:34, , 13F
然後級數的和會被 1/2 +- log(1-x^2) 上下綁住
05/07 14:34, 13F

05/07 14:35, , 14F
所以在 x = 0 附近不應該震盪,更不會爆炸
05/07 14:35, 14F

05/07 14:40, , 15F
注意分子是兩個很靠近的數字相減。若 x = O(10^-4)
05/07 14:40, 15F

05/07 14:41, , 16F
分子兩邊的leading order是 x^2,減完剩下 x^4
05/07 14:41, 16F

05/07 14:42, , 17F
一來一往就先噴掉整整八位的有效位數
05/07 14:42, 17F

05/07 14:44, , 18F
然後離開 x -> 0 極限多遠是下一項在控制的,所以又
05/07 14:44, 18F

05/07 14:45, , 19F
要再噴掉額外的八位有效位數才能開始看到這個。
05/07 14:45, 19F

05/07 14:46, , 20F
所以你需要遠多出16的有效位數才能精確計算 0.0001
05/07 14:46, 20F

05/07 14:46, , 21F
附近的函數走向
05/07 14:46, 21F

05/07 14:47, , 22F
但是32bit double也不過給你16位數,爆炸很正常
05/07 14:47, 22F

05/07 20:46, , 23F
是64bit double吧?32bit是single (Cray除外)
05/07 20:46, 23F

05/07 23:51, , 24F
好像有道理耶Q
05/07 23:51, 24F

05/08 00:45, , 25F
好唄我記錯了是64bit
05/08 00:45, 25F

05/08 00:46, , 26F
不過16位數沒錯,所以以上推論還是對的
05/08 00:46, 26F

05/08 00:53, , 27F
如果你要用電腦計算這個函數在 |x| < 0.0001 與極限
05/08 00:53, 27F

05/08 00:54, , 28F
值的差異,正確的做法是用手先幫電腦減掉1/2,然後
05/08 00:54, 28F

05/08 00:55, , 29F
級數展開到 x^6,這樣你才可以保住全部16個有效位數
05/08 00:55, 29F

05/08 15:26, , 30F
我猜原PO是直接叫log(1+x^2)而非log1p(x^2)
05/08 15:26, 30F

05/08 22:15, , 31F
其實我也是直接叫log(1+x^2),不過wolframe alpha
05/08 22:15, 31F

05/08 22:15, , 32F
夠聰明的樣子 XD
05/08 22:15, 32F

05/08 22:16, , 33F
如果那個 1 也有差的話,還要再多噴掉x^2有效位數
05/08 22:16, 33F

05/08 22:16, , 34F
那應該會更早爆炸
05/08 22:16, 34F

05/08 22:19, , 35F
所以我恨死數值計算了,明明數學都是對的,搬到電腦
05/08 22:19, 35F

05/08 22:19, , 36F
上面這裡不行那裏不行...
05/08 22:19, 36F
文章代碼(AID): #1NB4Md-A (Math)