要点:

首先对于任何方程 :f(x)=0 ,可以转换成 f(x)+x-x => f(x)+x=x;

取g(x)=f(x)+x;  那么 新方程g(x)=x 的解即是 f(x)=0的解,即g(x)-x=0 成立时有 f(x)+x-x=0

现在研究g(x)=x 的解,该方程的解对应 函数 y=g(x) 与 函数y=x的交点(x1,y1)的x坐标即x1.

函数y=x 是对称直线,上面的的任意点(xa,ya)有xa=ya.

picard 方法的具体过程是,选任意x=x0(当然实际上是有条件的,见教程例9), 计算x1=g(x0),x2=g(x1)....xn=g(x_n-1)

当xn稳定在某一值附近时,则xn是方程的解(当然数列x0,x1,x2....xn也可能是发散的,即无法取得解,参考例9的说明)

解方程一般过程,如果可能先画出方程对应的函数,找出过零点(根)然后采用近似根按newton法或picard法进行迭代

matlab代码

clc
clear
syms x;
format long
%g=@(x)(log(x)*);
g=@(x)(log(x)-x/+x);
x=;
for i=:: %迭代步数
x=g(x);
end
x

注意上面代码是计算ln(x)/x=1/1000的根 (9121)即方程 ln(x)-x/1000=0 或者 1000ln(x)-x=0;

迭代时使用的函数g(x)=f(x)+x ,即 g(x)=ln(x)-x/1000+x 或者 g(x)=1000 ln(x) -x +x

选择不同的g(x)迭代过程有区别,见下面的讨论。

实际测试:

采用 g(x)=log(x)-x/1000 +x , g'(x)=1/x +999/1000 可见g'(x)始终接近1,下图看到两条曲线重叠

在采用上面代码迭代时,需要20000步左右才迭代到根附近(9118)

采用g(x)=1000ln(x)-x+x 进行迭代,g'(x)=1000/x 当x增大到10000时导数会取值是0.1,故收敛的过程比较快

迭代过程只需10步即可导9118.xxxx

斜率大于1的曲线不动点可以通过求其反函数的不动点来获取

Picard 法求方程根的更多相关文章

  1. C语言之基本算法24—黄金切割法求方程近似根

    //黄金切割法! /* ================================================================ 题目:用黄金切割法求解3*x*x*x-2*x* ...

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

    MATLAB用二分法.不动点迭代法及Newton迭代(切线)法求非线性方程的根 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 一.实验原理 二.实验步骤 ...

  3. 【清橙A1094】【牛顿迭代法】牛顿迭代法求方程的根

    问题描述 给定三次函数f(x)=ax3+bx2+cx+d的4个系数a,b,c,d,以及一个数z,请用牛顿迭代法求出函数f(x)=0在z附近的根,并给出迭代所需要次数. 牛顿迭代法的原理如下(参考下图) ...

  4. 特征根法求通项+广义Fibonacci数列找循环节 - HDU 5451 Best Solver

    Best Solver Problem's Link Mean: 给出x和M,求:(5+2√6)^(1+2x)的值.x<2^32,M<=46337. analyse: 这题需要用到高中的数 ...

  5. 2019-ACM-ICPC-南昌区网络赛-H. The Nth Item-特征根法求通项公式+二次剩余+欧拉降幂

    2019-ACM-ICPC-南昌区网络赛-H. The Nth Item-特征根法求通项公式+二次剩余+欧拉降幂 [Problem Description] ​ 已知\(f(n)=3\cdot f(n ...

  6. Secant 方法求方程多个根

    Secant 方法介绍 Secant Method 函数 Secant_Methods 简介 1.函数定义 [c, errColumn] = Secant_Method(f, a, b, N, con ...

  7. HDU 2586 倍增法求lca

    How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  8. 倍增法求lca(最近公共祖先)

    倍增法求lca(最近公共祖先) 基本上每篇博客都会有参考文章,一是弥补不足,二是这本身也是我学习过程中找到的觉得好的资料 思路: 大致上算法的思路是这样发展来的. 想到求两个结点的最小公共祖先,我们可 ...

  9. 求方程x1+x2+x3=15的整数解的数目

    求方程x1+x2+x3=15的整数解的数目要求0≤x1≤5,0≤x2≤6,0≤x3≤7.解:令N为全体非负整数解(x1,x2,x3),A1为其中x1≥6的解:y1=x1-6≥0的解:A2为其中x2≥7 ...

随机推荐

  1. 非正常关闭myeclicps后,出现错误Errors occurred during the build.的解决方法

    我的myeclicps是10.7版本由于非正常关闭,在启动tomcat时候出现了问题. 解决法案: 1.关闭myeclicps. 2.打开你的myeclicps的工作空间(workspace自己设置的 ...

  2. CCS3.3下执行优化

    最近想研究一下CCS下的程序优化,之前也了解一些,现在查阅一下资料,整理一下. 当然优化有很多种,我本次先说的是执行优化方式. 首先打开我们自己的工程.工程文件若显示为黄色的,则表示此文件默认优化选项 ...

  3. angularjs(一)基础概念

    一.前言 前端技术的发展是如此之快,各种优秀技术.优秀框架的出现简直让人目不暇接,作为一名业界新秀,紧跟时代潮流,学习掌握新知识自然是不敢怠慢.当听到AngularJs这个名字并知道是google在维 ...

  4. nginx的初步了解

    今天学习了nginx.nginx不但可以作为服务器,类似于IIS,也可以作为反向代理.它有一个配置文件nginx.conf,在这个文件里配置了一些重要的参数,通过修改这些参数,然后启动nginx,就可 ...

  5. oracle 身份证校验函数

    1.正则表达式写法: CREATE OR REPLACE FUNCTION Func_checkidcard (p_idcard IN VARCHAR2) RETURN INT IS v_regstr ...

  6. CC1310的RSSI值问题

    前几日,做CC1310的通信距离测试,发现我的CC1310的板子在433MHz,50kbps下通信距离非常近,RSSI值下探至-80左右就无法正常通信,与TI宣称的-120dbm接收灵敏度差距较大.使 ...

  7. js-url打开方式

    引用自 : 老张的博客 *.location.href 用法: top.location.href="url"          在顶层页面打开url(跳出框架) self.loc ...

  8. JsonString,字典,模型之间相互转换

    NSData转字符串 [NSString alloc] initWithData: encoding:] 模型转字典 attInfo.keyValues 字典转模型 ZTEOutputInfo *ou ...

  9. 获取本机内存使用信息、DataTable占用内存空间

    相当于windows系统中的任务管理器,功能是通过系统的API实现的本机的监视,代码如下 using System;using System.Collections.Generic;using Sys ...

  10. sendto频率过快导致发送丢包

    编写一个转发模块,虽然没有要求一转多时要达到多少路(不采用组播的情况下,单纯的一路转成多路),但是本着物尽其用的原则,尽可能测试一下极限. 网络环境:1000M,直连,多网卡 系统:Linux ver ...