就是一个简单的循环就搞定了
代码如下:
Dim a, n, x
a = Val(TextBox1.Text)
x = a + 1
For n = 0 To 90
x = 1 / 2 * (x + a / x)
Next
TextBox2.Text = x
我自己试过了,可行!希望对你有帮助
这是函数的迭代问题
题中已经给出迭代式了,你只要选一个初值就可以进行计算了。
用mathematica软件极其简单就能算出来,命令
f[x_]:=1/2*(x+a/x); (*此处应该用具体的a代替*)
NestList[f,2.0,100]
运行一下,就OK了
这是著名的求解非线性方程f(x)=x^2-a=0的Newton法,一般的迭代公式为
x(n+1)=xn-f(xx)/f'(xn),将f(x)=x^2-a代入该公式得
x(n+1)=(xn+a/xn)/2,n=0,1,2,...
算法设计:
(1)事前估计,给定允许误差界,估计出计算次数N.
输入N,x=x0;
for i=0 to N do
x=(x+a/x)/2;
输出x
(2)事后估计,给定允许误差界e.
输入e.x=x0;
do(计算)
x1=x;
x=(x+a/x)/2;
直到x-x1的绝对值小于e,停止计算
输出x.
好难哪,先让我想一下
是一个循环
代码如下:
Dim a, n, x
a = Val(TextBox1.Text)
x = a + 1
For n = 0 To 90
x = 1 / 2 * (x + a / x)
Next
TextBox2.Text = x
我自己试过了,可行!希望对你有帮助
就是一个简单的循环就搞定了
代码如下:
Dima,n,x
a=Val(TextBox1.Text)
x=a+1
Forn=0To90
x=1/2*(x+a/x)
Next
TextBox2.Text=x
我自己试过了,可行!希望对你有帮助