ขอต้อนรับ ผู้มาเยือน กรุณา ล็อกอิน หรือ สมัครสมาชิก

ล็อกอินด้วยชื่อผู้ใช้ รหัสผ่่าน และระยะเวลาใช้งาน

 
Advanced search

41578 Posts in 6276 Topics- by 9823 Members - Latest Member: Supakitt
Pages: 1   Go Down
Print
Author Topic: continued fraction  (Read 4478 times)
0 Members and 1 Guest are viewing this topic.
Europa
neutrino
*
Offline Offline

Posts: 19

เราเป็นอย่างไร สังคมเป็นอย่างนั้น


« on: November 05, 2009, 06:41:28 PM »

สวัสดีครับ ผมมีคำถามเกี่ยวกับ การใช้ mathematica6.0 ในการ evaluate ค่าของ continued fraction แบบนี้ครับ

\beta[n]-\tfrac{\alpha[n-1]\gamma[n-1]}{\beta[n-1]-\tfrac{\alpha[n-2]\gamma[n-1]}{\beta[n-2]-\tfrac{\alpha[n-3]\gamma[n-2]}{......}}}

จะเห็นว่า มัน รัน n ย้อนลงไปเรื่อยๆๆ ผมไม่รู้ว่าจะสั่งให้ mathematica เข้าใจยังไง

Logged
Bright
neutrino
*
Offline Offline

Posts: 212

เราเป็นอย่างไร สังคมเป็นอย่างนั้น


« Reply #1 on: November 09, 2009, 05:36:02 PM »

ลองดูตัวอย่างจากในคำสั่ง ContinuedFraction , FromContinuedFraction หรือ Nest ครับ

ผมว่าความยากของปัญหาคุณมันอยู่ที่ index ในตัวแปร alpha beta, gamma ผมยังคิดไม่ออกครับว่าจะทำยังไงครับ   Smiley

อันนี้เป็นฟังก์ชั่น สำหรับที่ผมใช้สำหรับสร้างตัวส่วน

below[i_] :=
 Quiet[If[i == 0, \[Beta][[n]] - \[Alpha][[n - 1]] \[Gamma][[n - 1]],
   \[Beta][[n - i]] - \[Alpha][[n - i - 1]] \[Gamma][[n - i]]
   ]]

แต่อันนี้ยังไม่ถูกครับเพราะ index ยังเหมือนกัน แต่คุณอาจจะมีทางที่ดีกว่านี้ก็ได้ครับ
Quiet[Nest[\[Beta][[n]] - \[Alpha][[n - 1]] \[Gamma][[n - 1]]/# &, below[0],
  5]]

ถ้าคิดออกจะกลับมาตอบให้ครับ Smiley

Logged
Bright
neutrino
*
Offline Offline

Posts: 212

เราเป็นอย่างไร สังคมเป็นอย่างนั้น


« Reply #2 on: November 15, 2009, 01:14:24 AM »

ลองดูแบบนี้แล้วกันครับ index น่าจะถูกแล้ว

below1[i_] :=
  Quiet[If[i ==
     0, \[Alpha][[n - 1]] \[Gamma][[n - 1]], \[Alpha][[n - i -
        1]] \[Gamma][[n - i]]]];

frac[j_] :=
 Quiet[tmp1 = below1[j];
  For[m = j, m > 0, m--,
   tmp1 = below1[m - 1]/(\[Beta][[n - m]] - tmp1)
   ];
  \[Beta][[n]] - tmp1
  ]

ลองทดสอบโดยพิมพ์

frac[5] ดูครับ

มันจะแสดงส่วนจนถึง \[beta][[n-5]] ครับ

 
Logged
Bright
neutrino
*
Offline Offline

Posts: 212

เราเป็นอย่างไร สังคมเป็นอย่างนั้น


« Reply #3 on: August 19, 2010, 04:27:46 PM »

ลองวิธีเขียนแบบนี้ก็ได้ครับ แต่ index ของแกรมม่ายังไม่ถูก  Grin ยังไงลองเล่นดูเป็นแนวทางนะครับ

continuedfractionX[{b0_, l_List?MatrixQ}] :=
 b0 - Fold[#2[[1]] #2[[3]]/(#1 + #2[[2]]) &, 0, Reverse[l]]

continuedfractionX[{b0_, {}}] := b0

continuedfractionX[{b[0], Table[{a[ i ], b [i ], c[ i - 1 ]}, {i, 5}]}] /.
 x_[y_] :> x[n - y]
Logged
Pages: 1   Go Up
Print
Jump to: