修正牛顿法编程python_GitHub - Maples7/newtonMethod: 牛顿法求解复数域上x^4-1=0收敛域的程序 using Python...
newtonMethod
牛顿法求解复数域上x^4-1=0收敛域的程序 using Python
[总体分析]
1、牛顿法本质上是关于迭代求解非线性方程解的方法,而迭代是为了不断逼近精确解。牛顿法迭代的关键在于对非线性函数(方程)的线性化。它是一种近似求解的方法,关于其原理不再赘述。
2、求解收敛域,程序的关键在于如何判断对于给定的初值,是收敛的还是发散的。如果收敛,收敛于哪个解。
3、经过综合考量程序性能和解的正确性,同时根据牛顿法在收敛域内能以平方量级快速收敛的特点,确定程序中牛顿法退出迭代的限制条件为:①最大迭代次数限制(判定为发散);②迭代值之间距离精度限制(收敛);③函数值精度限制(收敛)。
4、通过枚举一定范围内的点,来绘制出收敛域。
5、同时需要注意一些特殊情况,比如在运用迭代时,分母为0的情况。
[编程语言与环境]
C/C++/C#/Java等编译型语言:由于编译型语言对变量类型限制严格(在编译之前必需确定变量类型),容易让程序员花费过多精力纠结于程序实现细节而忽略问题本身的分析,为了提高效率,不采用;
MALTAB:解释型语言,不支持面向对象,抽象程序高,函数库强大。但同时正式因为其极高的抽象程度,致使程序运行速度偏低,可能增高程序调试成本;且网络上有关于此题的MATLAB版本,挑战不大。
Python:解释型语言,支持面向对象,抽象程序略低于MATLAB(但一般认为比C++/Java高,理论上比MATLAB运行速度快),并且有类似于MATLAB的支持图形绘制的成熟函数库(matplotlib),是一个均衡的不错的选择。
IDE:VS 2013
Python Version:Python 2.7.6(需要安装matplotlib库)
程序的关键部分便是newtonMethod函数部分,主体部分通过一个二重循环枚举一定范围内的每一个点,并且通过对其施用牛顿法后的返回值来确定其是收敛还是发散。如果是收敛,同时返回其收敛于的值。
其他函数和代码块程序中均有详细注解。
[总结与感悟]
通过在复平面上画出收敛域,发现其收敛域在着色之后是一个不断细分自相似的神奇图案,它并没有确切的边界(边界处是不断细分的自相似)。如果提高精度一定可以看到更加精细的结果。
通过这个程序做出来的图案,可以深切的体会的自然和宇宙的奇妙和伟大。简单中蕴含着复杂,而往往自然又能轻易的化繁为简。
宇宙和原子结构的相似性似乎是这种自相似性最好的佐证。
近似随机的结果可以在无随机的确定性系统中产生
上述这句话似乎冥冥中昭示着宇宙的真理。从量子力学的发展,测不准原理、薛定谔的猫、蝴蝶效应等等有意思的发现都可以窥见一二。世界是概率的,每一件事情发生都有其概率性,而事物的相互作用会改变其发生的概率。
修正牛顿法编程python_GitHub - Maples7/newtonMethod: 牛顿法求解复数域上x^4-1=0收敛域的程序 using Python...相关推荐
- 复数域上x^n ±1=0的解
基础知识: e^(x·i)=sin x +i·cos x(泰勒展开可证) 法一: 设f(y)=e^(y·pi·i)=sin (y·pi) +i·cos (y·pi) y=1,e^(1·pi·i)=-1 ...
- Censored Weibull Distribution 最大似然估计 (结合牛顿法求解)
Censored Weibull Distribution 最大似然估计 (结合牛顿法求解) 前言:写这篇博客是因为我前几天偶然读到一篇很有意思的文章, 然后想用自己的实验数据测试一下其分布情况,本以 ...
- 编程之美之数独求解器的C++实现方法
编程之美的第一章的第15节,讲的是构造数独,一开始拿到这个问题的确没有思路, 不过看了书中的介绍之后, 发现原来这个的求解思路和N皇后问题是一致的, 但是不知道为啥,反正一开始确实没有想到这个回溯法, ...
- LIO-SAM:在高斯牛顿法求解过程中用SO3代替欧拉角
LIO-SAM发表于IROS2020,是一个效果非常好的惯性-激光紧耦合里程计 我打算给我们的机器人搞一个激光里程计,于是打算把LIO-SAM改一改搞过来 修改过程中发现一个问题:在里程计求解(map ...
- [C++]已知f(x) = cosx - x。x的初值为3.14159/4,用牛顿法求解方程f(x) = 0的近似解,要求精确到10-6。f(x)的牛顿法的表达式为xn+1 = xn + (cosxn
(附加题)已知f(x) = cosx - x.x的初值为3.14159/4,用牛顿法求解方程f(x) = 0的近似解,要求精确到10-6.f(x)的牛顿法的表达式为xn+1 = xn + (cosxn ...
- cqupt题库 n个人围成一圈,顺序编号。从第一个人开始从1到m报数,凡报到m的人退出圈子,编程求解最后留下的人的初始编号。 程序运行示例: 6 3(两个输入数据之间有空格) 1
n个人围成一圈,顺序编号.从第一个人开始从1到m报数,凡报到m的人退出圈子,编程求解最后留下的人的初始编号. 程序运行示例: 6 3(两个输入数据之间有空格) 1 输入格式:scanf("% ...
- 最优化--牛顿法求解多元函数极值例题(python)
目录 一.问题 二.python代码 三.结果 一.问题 给定一个函数f(x)=60-10x1-4x2+x12+x22-x1x2,利用牛顿法求解该函数的最小值,需给出中间结果. 二.python代码 ...
- matlab 非线性差分方程,用牛顿法求解非线性差分方程组
本帖最后由 呵呵... 于 2016-5-25 19:37 编辑 新手入门:L 就是一个二阶的非线性常微分方程两点边值问题,用有限差分法离散成非线性方程组之后,现在要用牛顿法求解这个方程组,然后我有一 ...
- 牛顿法求解非线性方程
基础知识 [步骤1] 准备:选定初始近似值x0x_0x0,计算f0=f(x0),f0′=f′(x0)f_0=f(x_0),f_0'=f'(x_0)f0=f(x0),f0′=f′(x0) [步 ...
最新文章
- python3 操作redis
- 9.Methods(二)
- 一起谈.NET技术,页面片段缓存(二)
- vue-element-admin使用常见问题
- 仿微信未读RecyclerView平滑滚动定位效果
- 使用 SAP UI5 系统测试工具 UIVeri5 的一个具体例子
- Jupyter Notebook入门攻略
- 通向财务自由之路08_入市或市场时机选择
- table合并单元格_element ui el-table 合并单元格
- LupoScan | 实景化点云数据处理软件
- 百度地图大头针图片的自定义
- python全栈工程师薪水_Python工程师薪资待遇是多少?老男孩Python周末班
- list.sort和list.stream.sorted
- Apache Activemq-JMS了解+mq指定JDK
- 计算机应用基础Excel课程,《计算机应用基础》课程教学大纲
- 大数据毕业设计 抖音短视频数据分析与可视化 - python
- Android实用视图动画及工具系列之三:表情加载动画和失败加载动画,人物加载动画
- java进阶之Redis篇章
- 能画数据库E-R图的软件有哪些
- 通俗理解DDPM:生成扩散模型