牛顿迭代法理论推导及python代码实现
公式不便于在这里编辑,所以在word中编辑好了,截图过来。


用python+牛顿迭代法 求 y =(x-2)**3的解

import numpy as np
import matplotlib.pyplot as plt
'''
牛顿迭代法实现 y =(x-2)**3的解
'''
def f(x):
return (x-2)**3
def fd(x):
return 3*((x-2)**2)
def newtonMethod(n,assum):
time = n
x = assum
next = 0
a = f(x)
b = fd(x)
print('a = '+str(a)+',b = '+str(b)+',time = '+str(time))
if f(x) == 0.0:
return time,x
else:
next = x-a/b
print('next x = '+str(next))
if a - f(next)<1e-6:
print('meet f(x) = 0 , x = '+ str(next)) ##设置跳出条件,同时输出满足f(x) = 0 的x的值
else:
return newtonMethod(n+1,next) newtonMethod(0,4.0)
C:\ProgramData\Anaconda3\python.exe D:/python/TensorFlow/算法实例/牛顿迭代法.py
a = 8.0,b = 12.0,time = 0
next x = 3.3333333333333335
a = 2.370370370370371,b = 5.333333333333334,time = 1
next x = 2.888888888888889
a = 0.7023319615912207,b = 2.3703703703703702,time = 2
next x = 2.5925925925925926
a = 0.20809835898999132,b = 1.0534979423868311,time = 3
next x = 2.3950617283950617
a = 0.0616587730340715,b = 0.4682213077274805,time = 4
next x = 2.263374485596708
a = 0.018269266084169365,b = 0.20809835898999157,time = 5
next x = 2.1755829903978054
a = 0.005413115876790937,b = 0.09248815955110752,time = 6
next x = 2.11705532693187
a = 0.001603886185715827,b = 0.04110584868938101,time = 7
next x = 2.078036884621247
a = 0.0004752255365083959,b = 0.01826926608416941,time = 8
next x = 2.052024589747498
a = 0.00014080756637285685,b = 0.008119673815186359,time = 9
next x = 2.034683059831665
a = 4.17207604067724e-05,b = 0.0036087439178606037,time = 10
next x = 2.023122039887777
a = 1.2361706787192059e-05,b = 0.0016038861857158443,time = 11
next x = 2.015414693258518
a = 3.662727936945795e-06,b = 0.0007128383047625975,time = 12
next x = 2.0102764621723455
a = 1.0852527220580603e-06,b = 0.00031681702433894134,time = 13
next x = 2.0068509747815635
meet f(x) = 0 , x = 2.0068509747815635 Process finished with exit code 0
从运行的结果可以看出近似根x = 2.0068509747815635
牛顿迭代法理论推导及python代码实现的更多相关文章
- python 牛顿迭代法
使用牛顿迭代法求方程 在x附近的一个实根. 赋值X,即迭代初值:用初值x代入方程中计算此时的f(x)=(a * x * x * x + b * x * x + c * x + d)和f’(x)=(3 ...
- 牛顿迭代法--求任意数的开n次方
牛顿迭代法是求开n次方近似解的一种方法,本文参考. 引言 假如\(x^n = m\),我们需要求x的近似值. 我们设\(f(x) = x^n - m\), 那么也就是求该函数f(x)=0时与x轴的交点 ...
- 牛顿迭代法解指数方程(aX + e^x解 = b )
高中好友突然问我一道这样的问题,似乎是因为他们专业要做一个计算器,其中的一道习题是要求计算器实现这样的功能. 整理一下要求:解aX + e^X = b 方程.解方程精度要求0.01,给定方程只有一解, ...
- 数学相关比较 牛顿迭代法求开方 很多个n的平方分之一
牛顿迭代法求开方 牛顿迭代法 作用: 求f(x) = 0 的解 方法:假设任意一点 x0, 求切线与x轴交点坐标x1, 再求切线与x轴交点坐标x2,一直重复,直到f(xn) 与0的差距在一个极小的范围 ...
- 学习 27 门编程语言的长处,提升你的 Python 代码水平
Python猫注:Python 语言诞生 30 年了,如今的发展势头可谓如火如荼,这很大程度上得益于其易学易用的优秀设计,而不可否认的是,Python 从其它语言中偷师了不少.本文作者是一名资深的核心 ...
- 一个 11 行 Python 代码实现的神经网络
一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...
- 如何让你的Python代码更加pythonic ?
pythonic如果翻译成中文的话就是很python.很+名词结构的用法在中国不少. 以下为了简略,我们用P表示pythonic的写法,NP表示non-pythonic的写法,当然此P-NP非彼P-N ...
- 牛顿迭代法实现平方根函数sqrt
转自利用牛顿迭代法自己写平方根函数sqrt 给定一个正数a,不用库函数求其平方根. 设其平方根为x,则有x2=a,即x2-a=0.设函数f(x)= x2-a,则可得图示红色的函数曲线.在曲线上任取一点 ...
- Python 代码实现模糊查询
Python 代码实现模糊查询 1.导语: 模糊匹配可以算是现代编辑器(如 Eclipse 等各种 IDE)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的文件名,并提供一个推荐列 ...
随机推荐
- Java OO知识总结
接着上一集 https://www.cnblogs.com/pdev/p/11288014.html 5. OO中的一些基本概念 继承 父类的非private方法自动被子类继承 cl ...
- js中的offsetWidth用法
offsetWidth //返回盒模型的宽度(包括width+左右padding+左右border) <style> #div1 { width:200px; height:200px; ...
- python使用etcd
import sys import etcd client = etcd.Client( host='127.0.0.1', port=2379, allow_reconnect=True) clie ...
- 如何查看Codeforces的GYM中比赛的数据
前置条件:黄名(rating >= 2100) 或者 紫名(rating >= 1900)并且打过30场计分的比赛. 开启:首先打开GYM的界面,如果符合要求会在右边展示出一个Coach ...
- Matlab的2D作图
1 plot()函数 画一条线 plot(X,Y) 最基本的例子 x = 0: pi / 100:2 * pi; y = sin(x); figure plot(x,y) 在一张图上画多条线 clc; ...
- ssh服务配置
------------------------------------------ ssh 服务安装ssh apt-get install openssh-server启动 service ssh ...
- 026:if标签使用详解
if标签使用详解: if 标签: if 标签相当于 Python 中的 if 语句,有 elif 和 else 相对应,但是所有的标签都需要用标签符号 {% %} 进行包裹. if 标签中可以使 ...
- [原创] Delphi Win API函数 操作帮助文件 HtmlHelpA函数介绍
Delphi Win API函数 操作帮助文件 HtmlHelpA函数介绍 函数原型:HWND HtmlHelpA( HWND hwndCaller, LPCSTR pszFile, UINT uCo ...
- redis学习 --List
1:添加 lpush rpush 如果没有key的话,会报错. lpushx rpushx 如果没有key的话,不做任何反应. 2:得到 lpop rpop ...
- flutter中的按钮组件
Flutter 里有很多的 Button 组件很多,常见的按钮组件有:RaisedButton.FlatButton.IconButton.OutlineButton.ButtonBar.Floati ...