C语言牛顿迭代法求平方根大学原创 __蓝 c语言平方根

C语言牛顿迭代法求平方根[大学原创]__蓝 c语言平方根

牛顿迭代法:求n的平方根,先假设一猜测值X0= 1,然后根据以下公式求出X1,再将X1代入公式右边,继续求出X2…通过有效次迭代后即可求出n的平方根,Xk+1

公式:


之所以会考虑这个问题,是因为下面这道题。

下列给定程序中,函数fun()的功能是:应用递归算法求某数a的平方根。求平方根的迭代公式如下:。例如,2的平方根为1.414214。

#include<math.h>

#include<stdio.h>

____ fun(doublea,double x0)

{double x1,y;

____;

if(fabs(x1-x0)>=0.00001)

___;

else y=x1;

return y;

}

main()

{ doublex;

printf("Enter x: ");scanf("%lf",&x);

printf("The square root of %lf is n",x,fun(x,1.0));

}

答案【1double【2】x1=(x0+a/x0)/2.0【3】y=fun(a,x1)

【解析】

填空1:这里要问的是函数的类型,由主函数main()对函数的调用可以得到函数的类型是double型的,当然也可以由函数的返回值语句得到。

填空2:我们看到在下一条语句中已经开始对变量x1的值进行比较了,所以这里要对x1进行赋值,由题意可知x1=(x0+a/x0)/2.0。

填空3:用C语言求平方根的方法一般有两种经典的算法,它们分别是迭代法和递归法,本题要求用递归法。该程序采用了if语句,程序的含义是当迭代结果差小于误差时进行循环。

总的来说,猜测和递推就是解题的思路。

ps:注意不要把这种类型的题目和“利用牛顿迭代法求一元高次方程在某数附近的根”混淆,他们是两码事,求某数的平方根,求某个方程的根,二者所依据的公式根本就不相同。

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/305124.html

更多阅读

利用Matlab解方程 matlab解复杂方程

利用Matlab解方程——简介一些简单方程的解我们可以很快地手算出来,但是还有很多方程的解我们手算很难算出或者根本无法算出。比如解一道一元高次非线性方程,我们一般的解法是先确定方程的解所在的大致范围,然后用牛顿迭代法来算,很复

GBDTMART 迭代决策树入门教程|简介 mart gbdt

在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(GradientBoostingDecisionTree)又叫MART(MultipleAdditiveRegressionTree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它

转载 用SOR方法解方程组计算方法matlab matlab中sor迭代法

原文地址:用SOR方法解方程组计算方法matlab作者:不再彷徨function [Lw,f]=fifth1(A,b)%输入方程左端系数和右端向量,输出SOR方法的迭代矩阵,%及另一个系数s=size(A);%方程组左端系数矩阵的大小ss=size(b);f=zeros(ss(1),ss(2));%定义一

Struts迭代器iterator 遍历List常用的4种例子 struts2迭代器

【摘要】本文主要介绍及演示了Struts迭代器(iterator)遍历List常用的4种例子,基于MyEclipse开发环境,重点关注前后端代码的实现,给出后端java代码、前段struts标签代码,主要有如下4个例子:1.遍历List<String>2.遍历List<List<String>>3.遍

声明:《C语言牛顿迭代法求平方根大学原创 __蓝 c语言平方根》为网友一直的最爱分享!如侵犯到您的合法权益请联系我们删除