C語言之基本演算法11—牛頓迭代法求平方根
阿新 • • 發佈:2019-01-04
//迭代法 /* ================================================================== 題目:牛頓迭代法求a的平方根!迭代公式:Xn+1=(Xn+a/Xn)/2. ================================================================== */ #include<stdio.h> #include<math.h> main() { float a,x0,x1; int flag=1; while(flag) { printf("a="); scanf("%f",&a); if(a>=0) flag=0; else printf("你所輸入的數不能求平方根,請重試!\n_______________________________\n\n"); } x0=1; x1=x0+1; while(fabs(x0-x1)>=1e-10) { x0=x1; x1=0.5*(x0+a/x0); } printf("%.2f的平方根是:%.2f\n",a,x1); } /* ================================================================== 評:實質是迭代法,先輸入符合條件的數a,給x0和x1賦值,使得差的絕對值 大於10的-10次方。當差大於等於10的-10次方時使用迭代公式使x0和x1的差 小於10的-10次方。則平方根就是x1或x0. ================================================================== */