@数值分析之非线性方程求解

文章目录

  • 一、牛顿拉夫森迭代
    • 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牛顿-拉夫森定理 1.2牛顿-拉夫森迭代的matlab实现 1.3牛顿-拉夫森迭代的python实现 二.加速-牛顿拉夫森迭代 2.1牛顿-拉夫森迭代的加速收敛 2. ...

  2. 牛顿拉夫森法 matlab,【原创】牛顿-拉夫森迭代求非线性方程组

    function [xf,fval,iter]=newtmullt(e,x0,es,maxit,varargin) %     written by tubehu %     www.MATLABsk ...

  3. 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 ...

  4. C++newton raphson method牛顿拉夫森法的实现算法(附完整源码)

    C++newton raphson method牛顿拉夫森法的实现算法 C++newton raphson method牛顿拉夫森法的实现算法完整源码(定义,实现,main函数测试) C++newto ...

  5. MIT公开课: Python 笔记6 二分法,牛顿-拉夫森方法,列表

    Lecture5: Bisection methods , Newton/Raphson, introduction to lists二分法,牛顿,拉复生方法,列表 Bisection methods ...

  6. Python:实现newton raphson牛顿-拉夫森算法(附完整源码)

    Python:实现newton raphson牛顿-拉夫森算法 import math as m def calc_derivative(f, a, h=0.001):return (f(a + h) ...

  7. 【Math ML】Newton-Raphson.python 牛顿拉夫森方法

    牛顿·拉弗森方法 牛顿·拉弗森方法 牛顿·拉弗森方法原理与举例 python 手写牛顿拉弗森 python 调用牛顿拉弗森函数一步求解 牛顿·拉弗森方法 牛顿拉弗森方法 用于求解近似方程式的根,f(0 ...

  8. 牛顿法求解1-100的平方根python_使用牛顿-拉弗森法定义平方根函数(Newton-Raphson method Square Root Python)...

    牛顿法(Newton's method)又称为牛顿-拉弗森法(Newton-Raphson method),是一种近似求解实数方程式的方法.(注:Joseph Raphson在1690年出版的< ...

  9. 牛顿法(牛顿拉夫逊)配电网潮流计算matlab程序

    牛顿法配电网潮流计算matlab程序 传统牛顿-拉夫逊算法,简称牛顿法,是将潮流计算方程组F(X)=0,进行泰勒展开.因泰勒展开有许多高阶项,而高阶项级数部分对计算结果影响很小,当忽略一阶以上部分时, ...

最新文章

  1. java 文件md5校验_Java 获取 文件md5校验码
  2. SOAWebservice系列课程(1)--The Essentials of Service Orientation
  3. BZOJ——1614: [Usaco2007 Jan]Telephone Lines架设电话线
  4. docker深入1-配置非https的公司私有的registry仓库
  5. 优达学城深度学习之二——矩阵数学和Numpy复习
  6. C语言第七次作业---要死了----
  7. Java 蜡烛图_分支-15. 日K蜡烛图
  8. 修改url 参数_SEO优化设计,如何处理网址的动态参数?
  9. 51单片机+DS18B20+LCD1602显示+Proteus仿真
  10. P6647 [CCC 2019] Tourism
  11. 【软件应用】word等office软件中好用的数学公式编辑器插件
  12. 模电与数电的基本知识 (学习备用)
  13. 图片去水印工具(Teorex Inpaint) v7.1
  14. 统计大写字符、小写字符、数字等个数
  15. HIT-哈工大数据结构-作业2(C++)
  16. MATLAB | 那些你不得不知道的MATLAB小技巧(四)
  17. Apache安装配置(Linux)-有手就行
  18. 程序猿小哥用12万行代码堆出来个「蔡徐坤」!编译竟然还能通过
  19. CMake I 获取/设置编译器
  20. 如何写出一份真正让您受聘的出色简历

热门文章

  1. 余额宝 算法 php,把10000元放进余额宝,一年后支付宝会给多少利息?你计算过吗?...
  2. uiautomator2安卓测试框架报No tests found for given includes
  3. UVA-10929-You can say 11(秦九昭算法+同余与模算术)
  4. 现有关系数据库如下: 学生(学号,姓名,性别,专业) 课程(课程号,课程名,学分) 学习(学号,课程号,分数) 分别用关系代数表达式和 SQL 语句实现下列 1—5 小题(注意:每小题都要分别 写出关
  5. 冰岛的数据中心产业蓝图
  6. plt.plot()的使用
  7. Microbiome综述:脊椎动物的皮肤微生物
  8. 通过基于模型的系统工程简化复杂性案例研究
  9. 2020深圳计算机职称考试,2019年深圳市职称考评专业知识考试报名时间
  10. ShellShock(破壳漏洞)的简单分析