数值分析之牛顿拉夫森迭代(牛顿法)
@数值分析之非线性方程求解
文章目录
- 一、牛顿拉夫森迭代
- 1.1 牛顿拉夫森法
- 1.1.1 牛顿-拉夫森定理:
- 1.1.2 matlab版算法:
- 二、题目及实现代码
- 2.1 题目
- 2.2 输入输出格式
- 2.3 样例
- 输入
- 输出
- 2.4 思路和要点
- 2.5 代码
- 2.6 结果
一、牛顿拉夫森迭代
当f(x),f’(x),f’’(x)在根p附近连续,则可将它作为f(x)的特性,用于开发产生收敛到根p的序列{Pk}的算法。该方法相较二分法、试值法,产生序列{Pk}的速度快。
牛顿拉夫森法 依赖于f’(x),f’’(x)的连续性,简称牛顿法,是这类方法中已知最有用和最好用的方法之一。
1.1 牛顿拉夫森法
1.1.1 牛顿-拉夫森定理:
注意:如果不想使用导数,可以使用割线法。割线法采用了试值法中斜率的不同表示来得到c的过程,来代替f’(pk)。
即:f’(pk) = (f(pk) - f(pk-1))/(pk - pk-1)
1.1.2 matlab版算法:
二、题目及实现代码
2.1 题目
在考虑空气阻力情况下,求解投射体撞击地面时经过的时间和水平飞行行程,其中方程为(y为高度):
y=f(t)=9600*(1-e**(-t/15.0)) - 480t;
x=r(t)=2400(1-e**(-t/15.0))。
2.2 输入输出格式
【输入形式】输入3个数,分别表示起始值、前后两次迭代的差的绝对值精度和f(t)函数值的精度。各数间都以一个空格分隔。
【输出形式】第一行输出投射体撞击地面时经过的时间,第二行输出水平飞行行程,精确到小数点后5位。
2.3 样例
输入
8 1 1
输出
9.08955
1090.69211
2.4 思路和要点
思路:先对y函数求出时间t,再带入x函数得水平距离。
2.5 代码
import numpy as npdef f(t):return 9600*(1-np.e**(-t/15)) - 480*t
def r(t):return 2400*(1-np.e**(-t/15))
def f_der(t):return 640*np.e**(-t/15) - 480def main():n = np.array(input().split(),dtype = np.float)p0 = n[0]delta = 10**(-int(n[1]))epsilon =10**(-int(n[2]))while True:p = p0 - f(p0)/f_der(p0)err = abs(p - p0)relerr = 2*err/(abs(p)+delta)p0 = pif err<delta or relerr<delta or abs(f(p0))<epsilon:breakprint("%.5f"%p0)print("%.5f"%r(p0))if __name__ =='__main__':main()
2.6 结果
样例:
数值分析之牛顿拉夫森迭代(牛顿法)相关推荐
- 牛顿—拉夫森迭代、加速牛顿—拉夫森迭代和哈利法改进牛顿——拉夫森迭代
目录 一.牛顿-拉夫森迭代 1.1牛顿-拉夫森定理 1.2牛顿-拉夫森迭代的matlab实现 1.3牛顿-拉夫森迭代的python实现 二.加速-牛顿拉夫森迭代 2.1牛顿-拉夫森迭代的加速收敛 2. ...
- 牛顿拉夫森法 matlab,【原创】牛顿-拉夫森迭代求非线性方程组
function [xf,fval,iter]=newtmullt(e,x0,es,maxit,varargin) % written by tubehu % www.MATLABsk ...
- R语言 牛顿-拉夫森迭代法求方程组
牛顿-拉夫森迭代法: xk+1=xk−[f′(x)]−1f(x)x_{k+1}=x_{k}-{[f'(x)]^{-1}}f(x)xk+1=xk−[f′(x)]−1f(x) 其中,f′(x)f'(x ...
- C++newton raphson method牛顿拉夫森法的实现算法(附完整源码)
C++newton raphson method牛顿拉夫森法的实现算法 C++newton raphson method牛顿拉夫森法的实现算法完整源码(定义,实现,main函数测试) C++newto ...
- MIT公开课: Python 笔记6 二分法,牛顿-拉夫森方法,列表
Lecture5: Bisection methods , Newton/Raphson, introduction to lists二分法,牛顿,拉复生方法,列表 Bisection methods ...
- Python:实现newton raphson牛顿-拉夫森算法(附完整源码)
Python:实现newton raphson牛顿-拉夫森算法 import math as m def calc_derivative(f, a, h=0.001):return (f(a + h) ...
- 【Math ML】Newton-Raphson.python 牛顿拉夫森方法
牛顿·拉弗森方法 牛顿·拉弗森方法 牛顿·拉弗森方法原理与举例 python 手写牛顿拉弗森 python 调用牛顿拉弗森函数一步求解 牛顿·拉弗森方法 牛顿拉弗森方法 用于求解近似方程式的根,f(0 ...
- 牛顿法求解1-100的平方根python_使用牛顿-拉弗森法定义平方根函数(Newton-Raphson method Square Root Python)...
牛顿法(Newton's method)又称为牛顿-拉弗森法(Newton-Raphson method),是一种近似求解实数方程式的方法.(注:Joseph Raphson在1690年出版的< ...
- 牛顿法(牛顿拉夫逊)配电网潮流计算matlab程序
牛顿法配电网潮流计算matlab程序 传统牛顿-拉夫逊算法,简称牛顿法,是将潮流计算方程组F(X)=0,进行泰勒展开.因泰勒展开有许多高阶项,而高阶项级数部分对计算结果影响很小,当忽略一阶以上部分时, ...
最新文章
- java 文件md5校验_Java 获取 文件md5校验码
- SOAWebservice系列课程(1)--The Essentials of Service Orientation
- BZOJ——1614: [Usaco2007 Jan]Telephone Lines架设电话线
- docker深入1-配置非https的公司私有的registry仓库
- 优达学城深度学习之二——矩阵数学和Numpy复习
- C语言第七次作业---要死了----
- Java 蜡烛图_分支-15. 日K蜡烛图
- 修改url 参数_SEO优化设计,如何处理网址的动态参数?
- 51单片机+DS18B20+LCD1602显示+Proteus仿真
- P6647 [CCC 2019] Tourism
- 【软件应用】word等office软件中好用的数学公式编辑器插件
- 模电与数电的基本知识 (学习备用)
- 图片去水印工具(Teorex Inpaint) v7.1
- 统计大写字符、小写字符、数字等个数
- HIT-哈工大数据结构-作业2(C++)
- MATLAB | 那些你不得不知道的MATLAB小技巧(四)
- Apache安装配置(Linux)-有手就行
- 程序猿小哥用12万行代码堆出来个「蔡徐坤」!编译竟然还能通过
- CMake I 获取/设置编译器
- 如何写出一份真正让您受聘的出色简历
热门文章
- 余额宝 算法 php,把10000元放进余额宝,一年后支付宝会给多少利息?你计算过吗?...
- uiautomator2安卓测试框架报No tests found for given includes
- UVA-10929-You can say 11(秦九昭算法+同余与模算术)
- 现有关系数据库如下: 学生(学号,姓名,性别,专业) 课程(课程号,课程名,学分) 学习(学号,课程号,分数) 分别用关系代数表达式和 SQL 语句实现下列 1—5 小题(注意:每小题都要分别 写出关
- 冰岛的数据中心产业蓝图
- plt.plot()的使用
- Microbiome综述:脊椎动物的皮肤微生物
- 通过基于模型的系统工程简化复杂性案例研究
- 2020深圳计算机职称考试,2019年深圳市职称考评专业知识考试报名时间
- ShellShock(破壳漏洞)的简单分析