一个数值分析结合Matlab的问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 14:16:10
用Matlab的循环语句计算数列:5^(1/2),5^(1/2^2),5^(1/2^3),5^(1/2^4),······的极限,要求误差小于10^(-8)。
谢谢“也来参加”,请问为什么前后两项相减就是误差了呢?就是为什么用5^(2/(2^n))-5^(1/(2^(n+1))与10^(-8)比较呢?

Max=100 %所归定的最多计算次数,可设大些
for n=1:Max
if (5^(1/(2^n))-5^(1/(2^(n+1)))<10^(-8))
break;
end
end
limit=5^(1/(2^(n+1)))

运行后
limit =

1.0000

n=27

我也来回答。显然极限是1,应该用1来和最后一项比较。在不知道循环多少次的情况下,用while比for好。“也来参加”先生/女士的工作也很不错,值得肯定。

n=1
while abs(1-5^(1/(2^n)))>10e-8
n=n+1
end
format long e
final=5^(1/(2^n))

运行结果:
n = 24
final = 1.000000095929980e+000 %<10e-8

极限是1

对不起啊,我对Matlab的编程不是很懂,我是用它的符号计算算出来的。