呵呵,做了一回标题党,可能说得夸张了一点。说是“终极算法”,主要是因为它可以任意提高精度、而且几乎可以应付任何非线性方程(至少理论上是这样),提高精度是已知的迭代式上添加一些项,而不是完全改变迭代式的形式,当然在提高精度的同时,计算量也会随之增大。其理论基础依旧是泰勒级数。

我们考虑方程$x=f(y)$,已知y求x是很容易的,但是已知x求y并不容易。我们考虑把y在$(x_0,y_0)$处展开成x的的泰勒级数。关键是求出y的n阶导数$\frac{d^n y}{dx^n}$。我们记$f^{(n)}(y)=\frac{d^n x}{dy^n}$,并且有

$$\frac{dy}{dx}=\frac{1}{(\frac{dx}{dy})}=f'(y)^{-1}$$

并且根据公式:$y^{(n)}=y'\frac{dy^{(n-1)}}{dy}$,可以继续求出二阶导数、三阶导数:

$$\begin{aligned}\frac{d^2 y}{dx^2}=\frac{d(f'(y)^{-1})}{dy}\cdot \frac{dy}{dx}=\frac{-f''(y)}{f'(y)^3} \\ \frac{d^3 y}{dx^3}=\frac{d(\frac{-f''(y)}{f'(y)^3})}{dy}\cdot \frac{dy}{dx}=\frac{3f''(y)^2}{f'(y)^5}-\frac{f'''(y)}{f'(y)^4}\end{aligned}$$

......

那么我们可以写出

$$y=y_0+\frac{x-x_0}{f'(y_0)}-\frac{f''(y_0)}{f'(y_0)^3}\frac{(x-x_0)^2}{2!}+(\frac{3f''(y_0)^2}{f'(y_0)^5}-\frac{f'''(y_0)}{f'(y_0)^4})\frac{(x-x_0)^3}{3!}+...$$

并注意到$x_0=f(y_0)$,那么我们实则就写出了方程根的递推公式

$$\begin{aligned}y_{n+1}=y_n+\frac{x-f(y_n)}{f'(y_n)}-\frac{f''(y_n)}{f'(y_n)^3}\frac{(x-f(y_n))^2}{2!}+ \\ (\frac{3f''(y_n)^2}{f'(y_n)^5}-\frac{f'''(y_n)}{f'(y_n)^4})\frac{(x-f(y_n))^3}{3!}+...\end{aligned}$$

在应用中不用求太多项,只需要用到前几项即可(多了计算量会暴增)。如果只取前面两项,就成为了我们应用广泛的“牛顿法”。而我们多取几项,则可以加快收敛,并且提高稳定性。

好了,对此,科学空间已经介绍了两种“新”的方程数值算法(前面一种是“切抛物线法”),以后基本上不会再去研究代数方程的数值解法了。BoJone觉得,要求解方程,本帖的“终极算法”已经足够了,这里引用一下阿基米德的语气:“给我一道方程,我可以撬出方程的根!”......

更详细的转载事宜请参考:《科学空间FAQ》

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

打赏

微信打赏

支付宝打赏

因为网站后台对打赏并无记录,因此欢迎在打赏时候备注留言。你还可以点击这里或在下方评论区留言来告知你的建议或需求。

如果您需要引用本文,请参考:

苏剑林. (Apr. 04, 2010). 《数值方法解方程之终极算法 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/590

科学计算机解方程算法,数值方法解方程之终极算法相关推荐

  1. 重构机器学习算法的知识体系 - 《终极算法》读书笔记

    2019独角兽企业重金招聘Python工程师标准>>> 最近有幸从图书馆借阅了Pedro Domingos的<The Master Alogrithm>一书,这本书的中文 ...

  2. 科学计算机解三角函数方程,用科学计算器解方程 急!!!

    1.写出该方程左边的导函数. 2.随意在计算器上按一个数比如10,再按等于,再用计算器的格式写出下图算式,其中分式的分子就是原函数,分母就是导函数,而其中x用计算器按钮上的Ans键代替. 3.然后一直 ...

  3. 科学计算机等号按哪个,急!!计算器解方程等于号怎么按?

    1.[ALPHA]+[CALC]打出等号,按[SHIFT]+[CALC]键,屏幕上会提示输入初始值. 2.指定初值后按[=],即可求出方程的一个最接近给定初值的近似解. 科学型计算器是电子计算器的一种 ...

  4. 试解leetcode算法题--求解方程

    <题目描述> 求解一个给定的方程,将x以字符串"x=#value"的形式返回.该方程仅包含'+',' - '操作,变量 x 和其对应系数. 如果方程没有解,请返回&qu ...

  5. 基于强度传输方程的相位解包裹算法

    一.引言 2016年印度理工学院的 pandey等首次提出了基于强度传播方程的相位解包裹算法.该算法通过将包裹相位生成一个复数场,之后将其传播到一段距离.从而在复数场中紧密间隔的平面上模拟两个强度图像 ...

  6. 科学计算机解多元方程组,南京大学计算机科学与技术系 数值计算方法(第3章)3 向量和矩阵的范数 病态方程组 解线性方程组的迭代法.ppt...

    南京大学计算机科学与技术系 数值计算方法(第3章)3 向量和矩阵的范数 病态方程组 解线性方程组的迭代法.ppt 上传人:ct****5 文档编号:43116102 上传时间:2020-01-21 格 ...

  7. 为何高于四次的方程没有根式解?

    又见于知乎为何从五次方程开始就没有加减乘除开方的求根公式了?的回答. 可能不少人上学的时候都曾对这个问题感兴趣,至少我是一个.无意间在知乎上看到这个问题,又勾起了自己的兴趣,然后就上网.找书钻研了一番 ...

  8. 计算机图形学算法详解,计算机图形学裁剪算法详解

    <计算机图形学裁剪算法详解>由会员分享,可在线阅读,更多相关<计算机图形学裁剪算法详解(10页珍藏版)>请在人人文库网上搜索. 1.裁剪算法详解在使用计算机处理图形信息时,计算 ...

  9. 科学计算机怎么解一元一次方程,解一元一次方程“八不要”

    解一元一次方程"八不要" 2019-04-25 14:38:22次浏览 刘书翠 有些同学在解一元一次方程时,由于对法则.性质运用不够熟练,常出现一些错误,为预防在解题中出现同样的错 ...

  10. 解题思考F. 解方程(二分法解方程)

    题目描述 Problem Description 给定方程 8x^4 + 7x^3 + 2x^2 + 3x + 6 == Y,请计算x在[0,100]范围内的解. Input 输入数据首先是一个正整数 ...

最新文章

  1. html怎么设置取当前日期格式,js获取当前日期,格式为YYYY-MM-DD
  2. 独家 | kaggle季军新手笔记:利用fast.ai对油棕人工林图像进行快速分类(附代码)...
  3. Linux多台服务器共用密钥ssh自动登陆
  4. 字符串的模式匹配--BF算法KMP算法
  5. 课程设计之第二次冲刺----第八天
  6. linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解-转
  7. list 分组_Power query 灵活处理员工特殊出勤问题(3)-TableGroup分组 amp; 合并查询
  8. linux mysql查看数据库编码_MySQL查看和修改字符编码的实现方法
  9. atomic与nonatomic的区别
  10. Git/Repo/Gerrit区别
  11. (day 42 - 字符翻转 ) 剑指 Offer 58 - II. 左旋转字符串
  12. 李宏毅20212022机器学习
  13. 小白文件管理器共享服务器,在WIN7下使用小白文件管理器局域网功能(SMB)的教程...
  14. pandas 排序 excel
  15. 树莓派开发ADC芯片CS1237(C语言和python库开发)
  16. 微信小程序使用阿里彩色图标
  17. 【大数据分析】Spark的joins研究
  18. python2.7安装pyqt5版本,py3
  19. 自媒体平台大鱼号怎样开通视频原创保护,原创证明材料如何写?
  20. L3-001. 凑零钱(dfs + 各种剪枝)

热门文章

  1. 图像增强--Retinex算法
  2. de4dot 反混淆工具使用
  3. 基于TI8168平台的16路D1分辨率的DVR方案
  4. 怎样学好模拟集成电路设计?
  5. python车流量检测车流统计车辆计数yolov5 deepsort车流检测
  6. 老顽童java模拟器_在这款神还原的小霸王模拟器上,我终于玩到了20年前的老游戏,真香...
  7. 幼儿识字软件测试自学,十大儿童识字APP排行,看看有你知道的吗?
  8. oracle数据库基本概念
  9. 精通JavaScript?关于JavaScript的内存与性能问题,你又了解多少呢?
  10. CF55D Beautiful numbers