MATLAB-验证拉马努金连根式
题目描述
原理分析
拉马努金恒等式,简单地说,就是反复利用平方差公式把一个数展开成一个开方式
数学证明
算法分析
①既然是反复展开成一个式子,考虑利用循环即设计循环方式进行计算,最好的方式是一个函数的递归调用。
程序设计
写到这发现堂堂CSDN居然没有MATLAB代码块,我惊了!
function a=lama(n)
num=60; %规定最大递归次数
if nargin<1
n=2; %判断是否输入变量,如果没有输入变量,则默认为2
end
if n==num %如果变量等于最大递归次数,令a等于一个任意小的常数。防止调用次数太多,消耗太多内存
a=1;
else
a=sqrt(1+n*lama(n+1)); %公式①:递归调用
end
代码调试
>> lama
ans =
3
>> lama(2)
ans =
3
>> lama(5)
ans =
6.0000
>> lama(10)
ans =
11.0000
>> lama(20)
ans =
21.0000
>> lama(30)
ans =
31.0000
>> lama(40)
ans =
40.9998
>> lama(50)
ans =
50.7973
>> lama(55)
ans =
49.2884
>> lama(57)
ans =
34.7924
>> lama(59)
ans =
7.7460
>> lama(60)
ans =
1
可以看出lama/lama(2)=3,程序成功运行。
由于规定了lama(60),函数lama(n)会先随着n的增大而增大,在靠近60的时候收敛于1。