一 不动点是什么?

不动点,其实定义比较简单,对于一些方程,例如f(x)=cosx,那么令cosx=x的点就是函数的不动点,说白了,就是y=x这条直线与函数曲线的交点。这个不动点有什么用呢?请继续往下看。

二 不动点迭代法的实现

不动点迭代法,是求方程的迭代方法。为什么要迭代的求,直接法不好吗?直接法显然比较好,但是存在弊端,比如函数形式较复杂时,求解器不容易直接求得。利用不动点的性质,可以将函数的求解问题转化为不动点方程,从而使用有限次迭代求得方程的解。

其实不动点迭代的代码相对简单而且易懂:

x0=3;
x=x0;
k=10;
ezplot(@(x,f)f-((x-1).^2+1))       %画出函数图像
%构造的不动点方程为:x=2-x,斜率不行,构造其他的本次是两边同时加x^2
axis([-5,5,-3,10])       %固定坐标轴
hold on
for i=1:k                %迭代k次
    x=(2-x0+1*x0^2)/(1*x0+1);                         %-2*x为梯度反方向,step为步长,!最速下降法!
    f_current=(x-1)^2+1;
    f_error=abs((x-1)^2-(x0-1)^2);
    plot(x,f_current,'ro','markersize',7) %标记当前的位置
    drawnow;pause(0.2);
    x0=x;
    if f_error<0.000001
        break;
    end
end

上述代码是利用FPI求解函数的极小值。我们知道,该函数的极值在驻点处,也就是一阶导数为0的地方,求导得。其实一眼就看出来的解,这里只是作为说明,以简单的例子说明一般问题。到这一步了,如何构造FPI呢?其实只需将x剥离出来,也就是:

但是FPI收敛的条件是:

因此,我们需要对迭代方程进行改造。我们在方程两侧加上一项x^2:

这样,得到的FPI即可满足要求。为什么加x^2?其实我也是偶然凑出来的。

三 不动点迭代法的作用

受FPI算法思想的影响,可以创造出一些有趣的算法,用于求类似的方程或方程组的解。

其实之前也不了解该方法,只是看书的时候遇见了一个IRLS-based Iteration shrinkage算法,里面用到了不动点迭代法的思想,加深理解。

书中的问题也是寻找方程组的驻点:

其实使用共轭梯度法或者直接法也能求出解,作为一种新的想法,Adeyemi and Davies将方程两侧均加入了cx,使用构造不动点方程:

将x归纳后,一部分移至一侧,加入迭代索引:

最终:

其中W是对角矩阵,因此其逆就等于是将W的对角元素取倒数即可。但是该方法有个痛点,也就是一旦W对角元素为0,那么它就永远为0了,算法可能就会陷入尴尬的境地。

FPI(Fixed-point Iteration)不动点迭代法——迭代求方程的方法相关推荐

  1. 不动点法和牛顿法求方程的根——matlab实例

    #小舞的个人笔记# 不动点法和牛顿法求方程的根--matlab实例 一.不动点法(用斯特芬森迭代法进行加速) 1.x^2-3*x+2-exp(x)=0 %f(x)=x^2-3*x+2-exp(x)=0 ...

  2. matlab牛顿法求区间根程序,MATLAB用二分法、不动点迭代法及Newton迭代(切线)法求非线性方程的根...

    一.实验原理 二.实验步骤 三.实验过程 1.(程序) (1)二分法:求  在区间(1,2)之间的根,取 (a)bipart.m: function [x,m]=bipart(fun,a0,b0,to ...

  3. 重根的二阶迭代法matlab,MATLAB用二分法、不动点迭代法及Newton迭代(切线)法求非线性方程的根...

    作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 一.实验原理 二.实验步骤 三.实验过程 1.(程序) (1)二分法:求  在区间(1,2)之间的根,取 ...

  4. 不动点迭代法matlab视频,不动点迭代法matlab

    不动点迭代法的 MATLAB 程序代码如下: Function [root,n]=StablePoint(f,x0,eps) %用不动点迭代法求函数的一个零点 %初始迭代向量:x0 %根的精度:eps ...

  5. 二分法、试位法、不动点迭代法、牛顿法、割线法

    二分法.试位法.不动点迭代法.牛顿法.割线法 问题回顾 问题分析 1.二分法 2.试位法 3.不动点迭代 4.Newton-Raphson法 5.割线法 小结 问题回顾 一段质量均匀分布的电缆线悬挂在 ...

  6. 牛顿迭代法 求方程根

    牛顿迭代法 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法.多数方程 ...

  7. 用牛顿迭代法求方程的实根

    用do-while循环语句和牛顿迭代法来求方程 4 * x * x * x + 3 * x * x + 2 * x + 1 = 0 在1附近的一个实根. #include <iostream&g ...

  8. 不动点迭代法(Fixed Point Iteration)迭代求根的python程序

    迭代法的作用 许多复杂的求解问题,都可以转换成方程f(x)=0的求解问题.这一系列的解叫做方程的根.对于非线性方程的求解,在自变量范围内往往有多个解,我们将此变化区域分为多个小的子区间,对每个区间进行 ...

  9. 不动点迭代(Fixed Point Iteration)

    题目:不动点迭代(Fixed Point Iteration) 本篇介绍不动点迭代(Fixed Point Iteration).之所以学习不动点迭代是由于近来看到了FPC算法,即Fixed Poin ...

最新文章

  1. 我的 Windows Vista 上安装的工具
  2. All is about C!
  3. 【终极办法】Client does not support authentication protocol requested by server; consider upgrading mysql
  4. 发布HTML 7-3
  5. 构建第一个Flex的Mobile APP
  6. 以下哪个不是有效的java变量名,Java程序设计-中国大学mooc-题库零氪
  7. 前端性能优化经典:javascript防抖节流
  8. golang 切片追加问题
  9. 华为澄清:公司副总裁未发表中美技术还差两万五千里表述
  10. signature=d66576fde8d472a0c1dddd8b37be6b72,Signature process
  11. 大数据的应用:九大领域
  12. 一台服务器接多台显示器,一台主机为两台显示器分屏工作的方法
  13. C Function Complement
  14. Mybatis官方网站
  15. 识别车牌是什么神经网络,车牌识别深度神经网络
  16. 五.抽象接口与依赖反转(C面向对象开发)
  17. 抖音短视频所有问题的详细攻略——今抖云创
  18. ES6常用语法糖(附Babel配置使用方法)
  19. 3G时代的移动业务赢利模式分析
  20. HCIP:rip综合实验

热门文章

  1. python在哪个方向岗位最多_Python就业方向这么多,哪些岗位最有发展?
  2. 重新配对_国羽世界冠军组合重新配对!男方笑言“老夫老妻”,没什么感觉
  3. html div 右侧,span在div里居左和居右布局
  4. 打包外星人_《疯狂外星人》中外星人带上金箍就是大圣,放下金箍就是至尊宝!...
  5. python 阮一峰_Python模块整理
  6. 液晶显示屏怎么显示泰文_什么是LCD液晶显示屏
  7. php离线地图,如何发布百度离线地图及二次开发API
  8. oracle执行runstats,Oracle编程艺术--配置环境:runstats脚本
  9. python设置环境变量_Python设置环境变量
  10. Java LocalTime