求平方根的牛顿迭代matlab程序,牛顿迭代法求平方根

牛顿迭代法的作用是使用迭代法来求解函数方程的根,简单的说就是不断地求取切线的过程.对于形如f(x)=0的方程,首先任意的估算一个解x0,再把该估计值代入原方程中.由于一般不会正好选择到正确的解,所以有f(x0)=a.这时计算函数在x0处的斜率,和这条斜率与x轴的交点x1. f(x)=0中精确解的意义是,当取得解的时候,函数值为零(即f(x)的精确解是函数的零点).因此,x1比x0更加的接近精确地解.只要以此方法不分段的更新x,就可以取得无线接近的精确地解.但是也有可能会遇到牛顿迭代法无法收敛的情况.比如函数有多个零点,或者是函数不连续的时候.

设x的m次方根为a

ff279b6832af

const float EPS = 0.00001;

double sqrt(double x) {

if(x == 0) return 0;

double result = x; /*Use double to avoid possible overflow*/

double lastValue;

do{

lastValue = result;

result = result / 2.0f + x / 2.0f / result;

}while(abs(result - lastValue) > EPS);

return (double)result;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值