matlab 编程求极限的问题,y(n)=0.5[y(n-1)+a/y(n-1)],
y(n)=0.5[y(n-1)+a/y(n-1)],初始情况y(-1)=1,y(0)=0.5,a>0;编程验证:当n趋于无穷大时,y(n)趋于根号下a...
y(n)=0.5[y(n-1)+a/y(n-1)],初始情况y(-1)=1,y(0)=0.5,a>0;
编程验证:当n趋于无穷大时,y(n)趋于根号下a 展开
编程验证:当n趋于无穷大时,y(n)趋于根号下a 展开
1个回答
展开全部
a=linspace(1,10,10); %取10个整数a依次验证
for i=1:10
y(1)=1;
y(2)=0.5;
n=3;
delta=abs(y(2)-y(1));
while(delta>eps) % 判断相邻两次y值得接近程度,若delta<=eps
y(n)=0.5*(y(n-1)+a(i)/y(n-1)); %则表示y已经很接近收敛,为增加准确性可以取更小的数
delta=abs(y(n)-y(n-1));
n=n+1;
end
r(i)=abs(y(n-1)-sqrt(a(i)))<=1e-15; %若最后一个y值与根下a差的绝对值小于1e-15
%则认为y收敛于根下a.
end %若收敛则r对应的分量为1,否则为0
r
运行结果为:r =
1 1 1 1 1 1 1 1 1 1
即在设定的标准下十次验证均收敛于相应的根下a,因此可以认为yn收敛于根下a。
for i=1:10
y(1)=1;
y(2)=0.5;
n=3;
delta=abs(y(2)-y(1));
while(delta>eps) % 判断相邻两次y值得接近程度,若delta<=eps
y(n)=0.5*(y(n-1)+a(i)/y(n-1)); %则表示y已经很接近收敛,为增加准确性可以取更小的数
delta=abs(y(n)-y(n-1));
n=n+1;
end
r(i)=abs(y(n-1)-sqrt(a(i)))<=1e-15; %若最后一个y值与根下a差的绝对值小于1e-15
%则认为y收敛于根下a.
end %若收敛则r对应的分量为1,否则为0
r
运行结果为:r =
1 1 1 1 1 1 1 1 1 1
即在设定的标准下十次验证均收敛于相应的根下a,因此可以认为yn收敛于根下a。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询