编程学习网 > 编程语言 > C/C++开发 > 如何用c语言迭代法求平方根(c语言牛顿迭代法求平方根)
2022
06-16

如何用c语言迭代法求平方根(c语言牛顿迭代法求平方根)

在我们数学计算中,都会遇到平方根的求值,但是基本上我们只能够记住经常用到的数的平方根,比如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语言教程欢迎持续关注编程学习网

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取