基于jupyter notebook的python编程-----用牛顿切线法求方程2x^3+5x^2-x+6=0的近似解,要求误差小于0.01


在进行人工智能的学习时候,对于一个高次线性方程的求解是非常重要的,对于我们自己来说,这不困难,重要的是让机器能够理解,所以,有时候,最原始的方法是机器学习的第一步,本次博客,林君学长将带大家学习,通过python编程,利用牛顿切线法对多元线性方程进行求解

一、什么是牛顿切线法?

1、切线法是求可微函数的零点的一种数值算法,是一种一般情况下具有二阶收敛速度的非线性方程的数值解法

二、牛顿切线法的几何意义?

1、牛顿切线法的几何意义如下图所示:

在这里插入图片描述
在这里插入图片描述

三、牛顿切线法的原理?

1、牛顿切线法的原理如下所示:

在这里插入图片描述

四、通过python编程,模拟牛顿切线法,进行例题求解

1、例题

1)、用牛顿切线法求方程2x3+5x2-x+6=0的近似解,要求误差小于0.01

2、进行python的环境搭建

1)、打开Windows终端命令行,输入jupyter notebook,打开我们的jupyter工具,如下所示:
在这里插入图片描述
2)、在jupyter的web网页中创建python文件,如下所示:
在这里插入图片描述
3)、现在就可以在jupyter的代码行里面输入我们的代码啦!

3、牛顿迭代法(切线法)的python程序

1)、切线法的原理代码如下:

x=int(input("请输入一个参考值:"))
while(abs(x-x0)>=1e-2):
    x0=x                                       #临时保存第一次输入的近似值,方便最后对比误差
    f=((2*x+5)*x-1)*x+6                #求出f(x)的值
    f1=(6*x+10)*x-1                        #求出f(x)的导数在x的值
    x=x-f/f1 
print("牛顿迭代法求得的方程近似解为:",x)

以上代码主要通过while循环来进行函数的迭代,知道计算出误差小于0.01的近似值为止!

4、Shift+Enter运行程序,通过输入不同的的参考值进行对比

1)、输入参考值为1时候的运行结果:
在这里插入图片描述
2)、输入参考值为 -1时候的运行结果:
在这里插入图片描述
3)、输入参考值为 -3时候的结果:
在这里插入图片描述
4)、输入参考值为 3时候的结果:
在这里插入图片描述
1.从上面的不同的参考值的对比,我们不难发现,在0.01的精确度的规定范围下,我们可以得到的近似值又很多,不同的参考值计算出来的数据是不一样的。
2.其实通过我们人工的计算可以得到,该3次线性方程的实际解为 -3,只有当我们输入的参考值与实际解一致的时候,得到的参考值才是我们需要的最精确的值
3.上面的结果我们不难发现,这也是牛顿迭代法的一大弊端,因为我们不能确定参考值是什么,所以,我们就不能得到最精确的那个值,为了提高精确度,主要方法有下面两个:

  • 准备大量的参考值,进行机器测试模拟,寻找到最精确的近似值
  • 提高精确度,python可以模拟很高精确度的,可以到小数点后十几位、比如我们提高到精确度到1e-9,这时候,我们得出的近视值就非常接近或者等于我们的实际值

以上就是本次博客的全部内容啦,希望对小伙伴们理解牛顿切线法有所帮助!遇到问题的小伙伴记得评论区留言哦,看到了会给大家解答的,这个学长不太冷!
陈一月的又一天编程深夜^ _ ^

发布了59 篇原创文章 · 获赞 66 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42451251/article/details/105084633
今日推荐