[一种计算sqrt(a),a> 0的方法是
X(n+1) = (a + (X(n)*X(n-1))/(X(n)+X(n-1)), n = 1, 2, …,
具有
X0=1
和X1=a
(即,已知lim n-> infin of Xn = sqrt(a)
] >>编写实现此计算的函数
[sqa, nitr] = mySqrt(a)
。该函数应使用while循环,当Xn + 1与Xn之差变得小于eps(10*a)
时终止,并在sqa
中输出Xn + 1并在[[ C0]。测试nitr
的功能。我已经写了这个,但是没用
a = 103041
我收到错误:
function [sqa, nitr] = mySqrt (a) %[sqa, nitr] = mySqrt (a) % computes square root of a % sqa = a; sqaprev = a; nitr = 0; X(n+1) = (a + (X(n)*X(n-1))/(X(n)+X(n-1))); %find the second term sqa= X(n+1) while abs (sqaprev-sqa) >= eps (10*a) sqaprev = sqa; sqa = (1/2) *(sqaprev+ (a/sqaprev)); nitr = nitr + 1; end %while end
有人可以帮我吗?
计算sqrt(a)的一种方法,a> 0是X(n + 1)=(a +(X(n)* X(n-1))/(X(n)+ X(n -1)),n = 1,2,…,且X0 = 1且X1 = a(即,已知lim n-> Xn的无穷大= sqrt(a)...
您应该先声明变量并为其赋值
根据您提出的平方根算法,您可以尝试下面的代码