目录

非线性方程:

非线性方程的收敛性和收敛速度:

 建立迭代方程

【例3-5】求9x^2-sin x-1=0,在(0,1)之间的解,要求| 9x^2-sin x-1|<0.00001。

二分法:(穿根法)

 二分法的时间渐近复杂度分析

【例3-5】求9x^2-sin x-1=0,在(0,1)之间的解,要求| 9x^2-sin x-1|<0.00001。

牛顿法--有点儿化曲为直那意思

线性代数方程:

【例3-8】求下列解线性方程组的解


非线性方程:

非线性方程的收敛性和收敛速度:

定义3.1是方程f(x)=0的根,若存在xk的一个邻域Δ,当 初值属于Δ时,迭代收敛,则称该迭代过程具有局部收敛性
定义3.2 设 第k次迭代的迭代误差,若【第k+1次迭代误差 与 第k次迭代误差的p次方 同阶。】
则称迭代是 p阶收敛的。称c渐近误差常数
定义3.3效率指数,其中,θ表示每次迭代的 计算量p表示迭代的收敛阶
定理3.1 若当x∈[a, b]时,φ(x) ∈[a, b],且φ(x)满足 |φ’(x)| ≤ L<1, x∈[a, b]
则迭代收敛于唯一的根。

建立迭代方程

(1)选取适当的初值x0
(2)建立迭代方程,将方程f(x)=0转换成x=φ(x)的等 价形式。
(3)运用迭代方程x=φ(x),反复计算,如,得到x的序列,若该数列收敛 ,则最终可以得到满足一定精度ε的解,即有有时候也会用f(x_n)<= ε或f(x_n)=0来判断。

【例3-5】求9x^2-sin x-1=0,在(0,1)之间的解,要求|9x^2-sin x-1|<0.00001。

问题分析

超越方程没有通用公式,移项建立迭代方程
(1)    //从x^2解
(2) x=arc sin(9*x*x-1)         //从sinx解      不收敛

计算模型:

算法设计与描述 算法分析
输入:x
输出: x0

迭代方程:

equation(x):

{

x1 <- x; x0 <- 0;

while( | x1- x0| >0.00001 )

{

x0 <- x1;

x1 <- sqrt ( sin(x0) +1) /3 ;
        }

return  x0;

}

(1)若 x0=0.4 ,经测试达到精度0.00001,需要迭代的次数为6次,xi = 0.391849

(2)若x0=0.5, 经测试达到精度 0.00001,需要迭代的次数 为7次,xi = 0.391851

二分法:

equationD (x1,x2)

{

f1 <-  9*x1*x1 - sin(x1)-1;

f2 <- 9*x2*x2 - sin(x2)-1;

f <- 1;

if( f1*f2 < 0 )

{

while ( | x - x3 | > 0.00001)

{

x <- ( x1+x2)/2;        //中点

f <- 9*x*x - sin(x)-1;

if(f==0)break;

if(f*f1>0)         //不在里面,从(x,x2)

{

x3=x1; //x3是上一次的x值

f1=f;

x1=x;

}

else //在里面 (x1,x)

{

x3=x2;

x2=x;

}

}

}

}

(1)若x1=0,x2=0.4, 
代入k≥(ln(b-a)-lnε)/ln2 -1得 k≥14.287712
经测试,当xi =0.391852时,达到所要求精度0.00001所迭代的次数为17次。
(2)若x1=0,x2=0.5
代入k≥(ln(b-a)-lnε)/ln2 -1得 k≥14.6096。
经测试,当xi =0.391853时,达 到所要求精度0.00001所迭代 的次数为17次。

牛顿法:
计算模型:

equationN (x)

{

x1 <- x;

x2 <- x1 - (9*x1*x1 -sin(x1) -1) / (18*x1 - cos(x1));

while( |x1-x2 | > 0.00001 )

{

x1 <- x2;

x2  <- x1- (9*x1*x1 -sin(x1) -1)/(18*x1-cos(x1)) ;

}

return x2;

}

算法测试
(1)若x1=0.4, 经测试,x=0.391847
时,达到所要求精度0.00001所
迭代的次数为7次。
(2)若x1=0.5, 经测试,x=0.391847
时,达到所要求精度0.00001所
迭代的次数为3次。

二分法:(穿根法)

若f(x)在区间[a, b]上连续,则在此区间上任取两点 x1、x2,若f(x1)*f(x2)<0,则在(x1,x2)间必有解。
其求解步骤为:
(1)f(x1)*f(x2)<0,方程有解,继续 (2),否则无解;
(2)令x=(x1+x2)/2,代入方程f(x)=0,则x即为所求, 算法结束。否则进行(3);
(3)f(x1)*f(x)<0,与x2同侧令x2=x,若f(x1)*f(x)>0, 则与x1同侧,令x1=x,继续步骤(2)。

二分法的时间渐近复杂度分析

设根在区间,取 作为根的一 个近似,按上述算法框架,不断二分,则可以获 得一个近似根的序列{x0,x1,x2,…,xk},该序列必以根 x*为极限。
那么,误差可以表示为:
对于给定精度ε,只需取k满足 ≤ ε,可 得k ≥ (ln(b-a)-lnε) / ln2 -1。
计算模型:
 

牛顿法--有点儿化曲为直那意思

设待解方程为f(x),其一个解为x。
设过点(x0,y0)的切线斜率为f ’(x0), 则其切线方程为: f(x)=f(x0)+f ’(x0)(x-x0)
当其与x轴相交时,f(x)=0。则可得到 x=x0-f(x0)/f ’(x0)
上式可以做为迭代公式,反复使 用,求出迭代数列x1,x2,…, xn,直到 满足精度为止。

牛顿法的时间复杂度分析

【算法设计zxd】第3章 求解方程的近似算法 非线性——二分法(穿根),牛顿法(切线),线性代数相关推荐

  1. 【算法设计zxd】第一章 算法基础 4.设计工具【三角矩阵,】

    目录 1. 循环设计 (1) 设计思维 自底向上的设计(Down - Top Design) 自顶向下的设计(Top-Down Design) (2)挖掘内在规律构建计算模型 [例1-3]设计算法,输 ...

  2. 【算法设计zxd】第一章 算法基础 1.基本概念+最大公约数

    目录 一.基本概念: 例1-1:求最大公约数 问题分析: 计算模型: 1) 穷举法 2) 欧几里德算法(辗转相除法) 算法设计与描述: 算法分析-效率: 1) 穷举法: 2) 欧几里德算法分析-渐近法 ...

  3. 【算法设计zxd】第一章 算法基础 5.基本数据结构

    目录 思考题:学过的数据结构及其特点 (1)线性数据结构 (2) 树 (2) 树-二叉树 (3) 图 (3) 图-表示方法.邻接矩阵法 (3) 图-表示方法.邻接表 思考题:学过的数据结构及其特点 线 ...

  4. 算法设计与分析第一章递推算法

    算法设计与分析 第一章 递推算法 1.概述 在**已知条件**和**所求问题**之间总存在着某种相互联系的关系,如果可以找到前后过程之间的数量关系(即递推式),那么,从**问题出发逐步推到已知条件** ...

  5. 【算法设计zxd】第四章蛮力法 1.枚举法 02穷举查找

    目录 蛮力法(brute force): [例4-1]链环数字对  问题分析  计算模型 pair_digital(int n): 代码: [例4-2]解数字迷: 思考题:ACM预测:​ 问题分析 ...

  6. 【算法设计zxd】第3章 迭代法 杨辉三角,穿越沙漠,内存移动,竖式相乘(阶乘)

    目录 迭代:(辗转法)        一种 不断用变量的旧值递推新值的过程 [例3-1] 输出如图的杨辉三角形. [例3-2]穿越沙漠问题 [例3-2]内存移动问题 [例3-4]编程求当n<=1 ...

  7. 【算法设计zxd】第3章迭代法03 线性代数方程

    线性代数方程:  设线性代数方程组具有如下特征:  算法框架 (1)设置线性代数方程组的初值X=(x1,-,xn-1 ,xn): (2)构造迭代方程xi=gi (X)   (i=1,-,n-1,n ...

  8. 【算法设计zxd】第2章 算法分析实例 递归非递归——交换,n阶乘,矩阵乘法,汉诺塔,二路归并,

    目录 非递归形式算法分析: 递归形式算法分析: [例2-9]交换a和b的值. 非递归 [例2-10]求n! 非递归: 思考题:韩信点兵 [例2-11]对于任意给定的n阶方阵A和B,求A×B的积C并且 ...

  9. 哈工大威海算法设计与分析_计算机算法设计与分析第一章 算法概述

    晓强Deep Learning的读书分享会,先从这里开始,从大学开始.大家好,我是晓强,计算机科学与技术专业研究生在读.我会不定时的更新我的文章,内容可能包括深度学习入门知识,具体包括CV,NLP方向 ...

最新文章

  1. 大学计算机基础 学年教学计划,大学计算机基础教学计划.pdf
  2. iptables防火墙过滤规则
  3. 读《程序是怎样跑起来的》第一章有感
  4. selector多路复用_超详细的I/O多路复用概念、常用I/O模型、系统调用等介绍
  5. 从一段代码的汇编看计算机的工作原理
  6. java利用正则截取字符串中的数字
  7. OSI七层与TCP/IP五层
  8. springboot日志配置
  9. C语言 输入的注意事项 EOF的应用
  10. Windows XP远程桌面控制图文教程
  11. 兼容浏览器的insertAdjacentHTML
  12. String变量的两种创建方式
  13. Atitit 作用域的理解attilax总结
  14. idea中修改git账号和密码
  15. 用EMU8086实现段间远调用
  16. QTreeView使用系列教程目录
  17. 经验分享 | ENVI app store
  18. 微信表情包小程序,更新登录接口,增加举牌功能
  19. 微信小程序ios地图标记点无法点击第二次 markertap
  20. SQL-按照最新时间分组

热门文章

  1. 如何将本地文件上传到腾讯云服务器(多图)
  2. 带你从底层理解java并发编程的艺术2.1重点
  3. 万物皆可造的 3D 打印,这次盯上了森林
  4. c#+mysql锁_C#数据表加锁解锁
  5. apicloud一键复制教程
  6. 各大公司Java后端开发面试题总结
  7. 运行 方法 时出错: Cannot run program 、jdk丢失、系统找不到指定的文件。
  8. Reflector 7 破解激活及使用(图解)
  9. 个人和企业的发展规划
  10. [mac]matlab for mac —关于无法读取avi文件的解决方法