求matlab编程用二分法和牛顿迭代法求根号a-查字典问答网
分类选择

来自孙宏琦的问题

  求matlab编程用二分法和牛顿迭代法求根号a

  求matlab编程用二分法和牛顿迭代法求根号a

1回答
2020-12-1102:04
我要回答
提示:回答问题需要登录哦!
梁昌洪

  对于求平方根,变成方程模式为f(x)=x^2-a,即求此方程的实根;

  下面编写了两个function函数,可以直接调用.

  二分法:

  functionx=sqrt_bisect(a)

  f=@(x)x^2-a;

  ifa0

  xb=x;

  elseiff(xa)*f(x)>0

  xa=x;

  else

  break

  end

  end

  end

  x;

  牛顿迭代法:

  functionx=sqrt_newton(a)

  f=@(x)x^2-a;

  df=diff(sym('x^2-a'));

  ifa1e-6

  x0=x1;

  x1=x0-f(x0)/subs(df,x0);

  end

  end

  x=x1;

  调用格式为:

  sqrt_bisect(3)

  ans=

  1.7321

  或者

  sqrt_newton(2)

  ans=

  1.4142

2020-12-11 02:05:59
大家都在问
最新问答