首页 > 其他 > 详细

用迭代法求x=a??√。求平方根的迭代公式为 xn+1 = 12(xn + axn) 要求前后两次求出的x的差的绝对值小于10?5

时间:2020-09-13 15:27:49      阅读:270      评论:0      收藏:0      [点我收藏+]

用迭代法求x=\(\sqrt{a}\)。求平方根的迭代公式为

\(x_{n+1}\) = \(\frac{1}{2}\)(\(x_{n}\) + \(\frac{a}{x_n}\))

要求前后两次求出的x的差的绝对值小于\(10^{-5}\)

答案解析:

题面上已经告诉两条信息,一个是x=\(\sqrt{a}\),所以我们可以通过a求出x的值。另外一条是\(x_{n+1}\) = \(\frac{1}{2}\)(\(x_{n}\) + \(\frac{a}{x_n}\)),可以通过x的值求出\(x_{n+1}\)的值,所以,只需要轮询的计算,不断的计算差值,直到满足差值小于\(10^{-5}\)就可以停止了

代码示例:

#include <stdio.h>
#include <math.h>

int main()
{
	float a, x0, x1;
	printf("请输入一个正数: ");
	scanf("%f", &a);
	x0 = a / 2;
	x1 = (x0 + a / x0) / 2;
	do
	{
		x0 = x1;
		x1 = (x0 + a / x0) / 2;
	} while (fabs(x0 - x1) >= 1e-5);
	printf("[%f] 的平方根为 [%f]\n", a, x1);
	return 0;
}

运行截图:

技术分享图片

用迭代法求x=a??√。求平方根的迭代公式为 xn+1 = 12(xn + axn) 要求前后两次求出的x的差的绝对值小于10?5

原文:https://www.cnblogs.com/weiyidedaan/p/13660897.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!