用matlab求切线方程 中分别用弦截法和切线法解方程x exp(x)-log10(x 6)=0精度0.01


牛顿法(英语:Newton’s method)又称为牛顿-拉弗森方法(英语:Newton-Raphson method)它是一种在实数域和复数域上近似求解方程的方法。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(y)=0的根

二分法可以求解方根,而使用牛顿迭代法可以更快地解出方根现在,人们使用的计算器里面大多数都是运用的牛顿迭代法

n=x2nx2?n=0f(x)=x2?nx0?(x0?,f(x0?))线TTy=f(x0?)+f(x0?)(x?x0?)Txx1?=x0??f(x0?)f(x0?)?x1?n(x1?,f(x1?))线线xx2?=x1??f(x1?)f(x1?)?x2?nxn+1?=xn??f(xn?)f(xn?)?f(xn?)线2?xn?线f(x)=0n线



用迭代法求x=根号a。求平方根的迭代公式:xn+1=(xn+a/xn)要求前后两次求出的x的差值的绝对值小于10的-5次方

//用迭代法求x=根号a。求平方根的迭代公式 
 x0=a/2; //给x0赋初始值也可以选择其他值

求解线性方程的数值方法主要包括以下几种:


  • 用二分法、牛顿法、简化牛顿法、弦截法分别计算115的平方根,精确到小数点后六位

  • 首先罗列出方程y = x^2-115而要求的平方根就在于跟x轴的交点,也就是零点处
  • 迭代结束的标志是前后两次迭代的结果相差小于小数点后六位,也就是log10(a-b)< -6

  • 二分法迭代步数跟收敛精度的关系图

  • 牛顿法迭代步数跟收斂精度的关系图

  • 简化牛顿法迭代步数跟收敛精度的关系图

  • 弦截法迭代步数跟收敛精度的关系图

  • 四种方法的迭代时间对比

  • 从迭代步數上看相同的求解的结果如下:

- 从时间上看,二分法的迭代时间明显高于其他三种方法其他三种方法的迭代时间不分上下。总体而言在本次求解中,牛顿法可能速度稍微快一点简化牛顿法由于迭代步数较多,迭代时间会稍微长一点


 给定一个正数a,不用库函数求其平方根

x2-a,则可得图示红色的函数曲线。在曲线上任取一点(x0,f(x0))其中x0≠0那么曲线上该点的切线方程为

      因为1-2式中x0作为分母,所以在之前限定了一下初始值不要选0那么得到的这个与x轴的交点其实是最终要求得的x的一次逼近,我们再以这个x基准继续迭代就可以求得更逼近的x至于逼近到什么时候才算完,这个取决于你自己设定的精度整个过程的迭代只需要几步就可以求得最终的结果。

当然从图中可以看絀,当你所取的初始值的横坐标在红色曲线与x轴交点右边即比最终的结果大时,比如选初始值x=a我们可以将while语句里面的abs(x*x-fToBeSqrted)直接换成fToBeSqrted -x*x,这样鈳以省去abs的运算当然这不能确保效率的提升,因为初始值的选取直接影响了迭代的次数


我要回帖

更多关于 用matlab求切线方程 的文章

 

随机推荐