How do I get formula for the nth term of this on matlab?
10 次查看(过去 30 天)
显示 更早的评论
sqrt(1+2sqrt(1+3sqrt(1+4sqrt(1+...))))
I know this limit is 3...but I need to get matlab to give me the first 40 terms. I am confused on how to code it.
3 个评论
Alberto
2014-9-24
I think the sucession should be like this:
a_1=sqrt(1)
a_2=sqrt(1 + 2*sqrt(1))
a_3=sqrt(1 + 2*sqrt(1 + 3*sqrt(1)))
...
Has the same limit and doesn't need initial value for recursion.
采纳的回答
Image Analyst
2014-9-24
What would be inside the parentheses of the 40th sqrt()? Just a 1?
Try a for loop and see what happens
s(40) = 1;
for k = 39 : -1 : 1
s(k) = k * sqrt(s(k+1)+1)
end
8 个评论
Image Analyst
2014-9-25
There is no "a". If you want, put a semicolon at the end of the s(k) line and just put s on its own line after the loop to have it print out the whole array.
更多回答(3 个)
Stephen23
2014-9-24
编辑:Stephen23
2014-9-24
You could try writing a for loop. The loop would just need to increment down itr = 40:-1:1, and calculates itr*sqrt(1+last_val) , with last_value defined before the loop (what value?).
Check it first with a small number of iterations first (1, 2, 3), to confirm that it calculates the expected values. Then try it with more iterations.
0 个评论
Roger Stafford
2014-9-24
编辑:Roger Stafford
2014-9-24
It doesn't matter what you initialize it at, the limit as n approaches infinity is always 2, not 3.
Correction: You were right. I was in error. The limit is always 3 no matter what your initial value is.
0 个评论
Roger Stafford
2014-9-25
编辑:Roger Stafford
2014-9-25
Since I made an error in my first answer, here is a bit more information. The problem can be expressed this way:
x(1) = sqrt(1+2*x(2))
x(2) = sqrt(1+3*x(3))
x(3) = sqrt(1+4*x(4))
...
x(n-1) = sqrt(1+n*x(n))
Now suppose x(n) were equal to n+2. Then
x(n-1) = sqrt(1+n*(n+2)) = sqrt((n+1)^2) = n+1
x(n-2) = sqrt(1+(n-1)*(n+1)) = sqrt(n^2) = n
...
x(1) = 3
However, if x(n) is not equal to n+2, express its ratio to n+2 as x(n)/(n+2) = 1+e(n). Then we have
1+e(n-1) = x(n-1)/(n+1)
= sqrt((1+n*(n+2)*(1+e(n)))/(n+1)^2)
= sqrt(1+n*(n+2)/(n+1)^2*e(n))
e(n-1) = sqrt(1+n*(n+2)/(n+1)^2*e(n)) - 1
This will always approach zero for sufficiently large n to start with and hence the limit for x(1) must be 3 no matter what the initial value is.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!