在我们数学计算中,都会遇到平方根的求值,但是基本上我们只能够记住经常用到的数的平方根,比如144的平方根是12;625的平方根是25,以及√2=1.414,√3=1.732。如果在计算中,我们需要知道某个数的平方根而不能查询的时候,该怎么办呢?今天编程学习网就带大家了解一下如何用c语言迭代法求平方根
源代码:
#include<srdio.h> main() /*定义变量类型。*/ {double a,x0,x1; printf("求一个实数a的平方根x1\n"); /*do-while循环: 满足条件 a<=0时,执行循环输入实数a。不满足条件a<=0时,退出循环,即保证了a>0。*/ do scanf("%lf",&a); while(a<=0); /*赋初值给x1。*/ x1=a/2.0; /*do-while 循环: 满足条件(>误差1e-6)时,则继续循环迭代。 不满足条件(>误差1e-6)时,则停止循环迭代。 */ do {x0=x1; x1=(x0+a/x0)/2.0;} /*平方根迭代公式,用牛顿迭代法求得。*/ while((x1-x0)>1e-6||(x1-x0)<-1e-6); /*迭代误差为1e-6,即e的负6次方,约等于2.71821的负6次方为0.000001。*/ printf("%f的平方根是%\n",a,x1); } ~牛顿迭代法
曲线:y=f(x1)曲线外一点:(x0,f(x0))
过点做曲线切线,切线的斜率:f'(x1)=(y-f(x0))/(x1-x0)
当y=f(x1)=x1^2,即为平方函数时:2x1=(x1^2-x0^2)/(x1-x0)
2x1^2-2x1x0=x1^2-x0^2
x1^2-2x1x0=-x0^2
x1^2+x0^2=2x1x0
a+x0^2=2x1x0
x1=(x0+a/x0)/2
即求得平方根迭代公式。
以上就是“如何用c语言迭代法求平方根(c语言牛顿迭代法求平方根)”的详细内容,想要了解更多C语言教程欢迎持续关注编程学习网扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/9610/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取