用迭代法求x=a−−√。求平方根的迭代公式為 xn+1 = 12(xn + axn) 要求前后兩次求出的x的差的絕對值小於10−5


用迭代法求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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM