[問題] N的指令打在Do迴圈內無產生效果

看板Mathematica作者 (TOEFL_5!)時間11年前 (2013/03/18 00:02), 編輯推噓2(208)
留言10則, 2人參與, 最新討論串1/1
我有一個程式 x=1; Do[ x = 1/3 * x ; y = N[x,20] ; Print[y]; ,{i,1,20}]; 結果還是產生程式內部預設的6有效位數 請問這要怎麼排除困難@@? -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.16.74

03/18 00:56, , 1F
你確定你的程式真的如此嗎? x 的初始值是從哪裡來的?
03/18 00:56, 1F

03/18 00:57, , 2F
我照你這幾行自己打上去跑一遍是正常的
03/18 00:57, 2F

03/18 01:19, , 3F
03/18 01:19, 3F

03/18 01:19, , 4F
請LPH大大解惑QQ
03/18 01:19, 4F

03/18 01:31, , 5F
問題在那一個 0.33333 那個數的精確度是 MachinePrecision
03/18 01:31, 5F

03/18 01:31, , 6F
所以計算結果就會被影響 依然是 MachinePrecision
03/18 01:31, 6F

03/18 01:32, , 7F
所以顯示時就是預設的樣子了
03/18 01:32, 7F

03/18 01:33, , 8F
解法有兩個 一是照內文一樣打 1/3 另一是直接指定精確度
03/18 01:33, 8F

03/18 01:33, , 9F
改成 0.33333`20 就是 20 位精確了 (那個 ` 是 1 左邊的鍵)
03/18 01:33, 9F

03/18 01:36, , 10F
謝謝 我馬上試試看
03/18 01:36, 10F
文章代碼(AID): #1HHUa2ZC (Mathematica)
文章代碼(AID): #1HHUa2ZC (Mathematica)