Re: [問題] 黃金比例的級數已回收

看板MATLAB作者 (朱子)時間15年前 (2010/04/10 10:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/5 (看更多)
原po的問題是個連分數 即給定一數列 a_n 1 Q_n = a_1 + ------------------- 1 a_2 + ------------------- 1 a_3 + ------------- ... ... 1 ... ---------------- 1 a_(n-1) + ----- a_n = a_1 + 1/(a_2 + 1/(a_3 + 1/(...+ 1/( a_(n_1)+ 1/a_n ) ...))) 如果 a_n 不相同的話 CCWck大的解法會變成 Q_n = a_n + 1/(a_(n-1) + 1/( a_(n-2) + 1/(...+1/( a_2 + (1/a_1))...) 就不符合連分數的定義 但是這一題因為 a_n = 1 for all n, 所以CCWck大的解法算出來也是對的 如果是要計算任意的連分數的話 觀察 Q_1 = a_1/1 Q_2 = (a_1a_2 + 1)/a_2 Q_3 = (a_3( a_1 a_2+1 ) + a_1) / (a_2 a_3 + 1) ... 可以寫出遞迴式為 Q_n = h_n / k_n h_n = a_n h_(n-1) + h_(n-2) k_n = a_n k_(n-1) + k_(n-2) h_0 = 1 , h_(-1) = 0 k_0 = 0 , k_(-1) = 1 因此在這一題 a_n = 1 for all n 就變成 h_n = h_(n-1) + h_(n-2) k_n = k_(n-1) + k_(n-2) h_0 = 1 , h_(-1) = 0 k_0 = 0 , k_(-1) = 1 恰好就是費氏數列的前後項比值 因此truesword大的寫法也不能說是不符合題意喔 參考資料 http://en.wikipedia.org/wiki/Continued_fraction ※ 引述《CCWck (幹嘛要暱稱)》之銘言: : 你需要用一個程式的概念 : 遞回函數 recursive function : 一個自己呼叫自己的函數 : 以下是程式碼範例 : 請新增一m檔案 取名叫做 gold.m : 以下是程式碼 : ---------------------------- : function [go]=gold(gi,n) : if n>1 : go=1+1/gold(gi,n-1); : else : go=1+1/gi; : end : ----------------------------- : 存檔之後 : 你在matlab命令列 打 gold(1,10) 表示起始值為1 遞回十次 : 理論上 後面的值越大 會越準 : 如果看不懂 想像成以下的數列 : a1=1+1/gi : a2=1+1/a1 : a3=1+1/a2 : ... : an=1+1/an-1 : ※ 引述《cpr5566 (心肺復甦術56)》之銘言: : : 想請問黃金比例的級數應該要怎麼打 : : 1+____1____ : : 1+___1___ : : 1+__1__ : : 1+_1_ : : 1+... : : 這種級數應該要怎麼打才對呀? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.57.65.69 ※ 編輯: mantour 來自: 61.57.65.69 (04/10 10:45)
文章代碼(AID): #1Bl-DoL8 (MATLAB)
文章代碼(AID): #1Bl-DoL8 (MATLAB)