fun函数设置循环,当x0-x1的绝对值小于0.000001循环结束。
#include
<stdio.h>
#include
<math.h>
float
fun()
{float
x,n=0.0,root
while(root>=0.000001||root<=-0.000001)
{
x=n
n=cos(x)
root=x-n
}
root=n
return
root
}
void
main()
{
float
f=fun()
printf("root=%f\n",f)
}
while 和do while是不同地第二个改成
#include <math.h>
#include <stdio.h>
main()
{float x,t,c
int a
scanf("%d",&a)
x=1
t=xx=(1.0/2)*(x+a/x)c=x-t
while(fabs(c)/x>1e-5)
{
t=xx=(1.0/2)*(x+a/x)c=x-t
}
printf("%f",x)
getch()
}
才会等价于第一个程序
main(){double
x1,x2
x1=0.0
x2=cos(x1)
while(fabs(x2-x1)>le-6)//当误差大于10的负六次方循环。
{x1=x2
x2=cos(x1)
}
printf("x=%f\n",x2)
}
牛顿迭代法,是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式
x(n+1)
=
g(x(n))
=
x(n)–f(x(n))/f‘(x(n)).然后按以下步骤执行:
(1)
选一个方程的近似根,赋给变量x1
(2)
将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0
(3)
当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。
若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就
认为是方程的根。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)