看板 Mathematica 關於我們 聯絡資訊
我有一個程式 x=1; Do[ x = 1/3 * x ; y = N[x,20] ; Print[y]; ,{i,1,20}]; 結果還是產生程式內部預設的6有效位數 請問這要怎麼排除困難@@? -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.16.74
LPH66:你確定你的程式真的如此嗎? x 的初始值是從哪裡來的? 03/18 00:56
LPH66:我照你這幾行自己打上去跑一遍是正常的 03/18 00:57
ntust661:http://ppt.cc/3zFd 03/18 01:19
ntust661:請LPH大大解惑QQ 03/18 01:19
LPH66:問題在那一個 0.33333 那個數的精確度是 MachinePrecision 03/18 01:31
LPH66:所以計算結果就會被影響 依然是 MachinePrecision 03/18 01:31
LPH66:所以顯示時就是預設的樣子了 03/18 01:32
LPH66:解法有兩個 一是照內文一樣打 1/3 另一是直接指定精確度 03/18 01:33
LPH66:改成 0.33333`20 就是 20 位精確了 (那個 ` 是 1 左邊的鍵) 03/18 01:33
ntust661:謝謝 我馬上試試看 03/18 01:36