`
hdy007
  • 浏览: 29720 次
最近访客 更多访客>>
文章分类
社区版块
存档分类

常用算法设计方法之迭代法

阅读更多

迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行:<o:p></o:p>

1   选一个方程的近似根,赋给变量x0<o:p></o:p>

2   x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0<o:p></o:p>

3   x0x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。<o:p></o:p>

若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。上述算法用C程序的形式表示为:<o:p></o:p>

【算法】迭代法求方程的根<o:p></o:p>

{   x0=初始近似根;<o:p></o:p>

do {<o:p></o:p>

x1=x0<o:p></o:p>

x0=g(x1)   /*按特定的方程计算新的近似根*/<o:p></o:p>

} while ( fabs(x0-x1)>Epsilon)<o:p></o:p>

printf(“方程的近似根是%f\n”x0)<o:p></o:p>

}<o:p></o:p>

迭代算法也常用于求方程组的根,令<o:p></o:p>

X=x0x1xn-1<o:p></o:p>

设方程组为:<o:p></o:p>

xi=gi(X)     (I=01n-1)<o:p></o:p>

则求方程组根的迭代算法可描述如下:<o:p></o:p>

【算法】迭代法求方程组的根<o:p></o:p>

{   for (i=0;i<n;i++)<o:p></o:p>

x=初始近似根;<o:p></o:p>

do {<o:p></o:p>

for (i=0;i<n;i++)<o:p></o:p>

y=x;<o:p></o:p>

for (i=0;i<n;i++)<o:p></o:p>

x=gi(X);<o:p></o:p>

for (delta=0.0,i=0;i<n;i++)<o:p></o:p>

if (fabs(y-x)>delta)     delta=fabs(y-x)<o:p></o:p>

} while (delta>Epsilon)<o:p></o:p>

for (i=0;i<n;i++)<o:p></o:p>

printf(“变量x[%d]的近似根是 %f”Ix)<o:p></o:p>

printf(“\n”)<o:p></o:p>

}<o:p></o:p>

具体使用迭代法求根时应注意以下两种可能发生的情况:<o:p></o:p>

1   如果方程无解,算法求出的近似根序列就不会收敛,迭代过程会变成死循环,因此在使用迭代算法前应先考察方程是否有解,并在程序中对迭代的次数给予限制;<o:p></o:p>

2   方程虽然有解,但迭代公式选择不当,或迭代的初始近似根选择不合理,也会导致迭代失败<o:p></o:p>

 

分享到:
评论

相关推荐

    常用算法设计方法(迭代法、递归等)

    常用算法设计方法.一、迭代法;二、穷举搜索法;三、递推法;四、递归等等

    常用算法设计方法 迭代法

    要使计算机能完成人们预定的工作,首先必须为如何完成预定的工作设计一个算法,然后再根据算法编写程序。计算机程序要对问题的每个对象和处理规则给出正确详尽的描述,其中程序的数据结构和变量用来描述问题的对象,...

    常用算法设计方法常用算法设计方法

    算法设计是一件非常困难的工作,经常采用的算法设计技术主要有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等。另外,为了更简洁的形式设计和描述算法,在算法设计时又常常采用递归技术,用...

    常用算法设计方法(C语言)

    C语言的一些常用算法设计方法,包括迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等

    算法设计与分析(详细解析(含源代码))

    常用算法设计方法详细解析(含源代码) 算法是问题求解过程的精确描述,一个算法由有限条可完全机械地执行的、有确定结果的指令组成。指令正确地描述了要完成的任务和它们被执行的顺序。计算机按算法指令所描述的...

    常用算法设计方法.doc

    算法设计是一件非常困难的工作,经常采用的算法设计技术主要有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等。另外,为了更简洁的形式设计和藐视算法,在算法设计时又常常采用递归技术,用...

    常用算法设计方法(编程入门者使用,C语言例题)

    编程常用算法,菜鸟级 (迭代法,穷举搜索法,递推法,递归,回溯法,分治法等)

    计算机专业常用算法设计方法

    算法:迭代法\穷举搜索法\递推法\动态规划法等

    常用算法设计方法+搜集

    算法设计是一件非常困难的工作,经常采用的算法设计技术主要有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等。

    C 常用算法设计方法.docx

    算法设计是一件非常困难的工作,经常采用的算法设计技术主要有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等

    常用算法设计方法(C语言).

    算法设计的各种方法都有,如迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法,且有例子

    C语言常用算法总结——C程序设计

    C语言常用算法模块的总结 一、最大值,最小值问题 教材page13/1.6、page36/2.4(2)、(3)、page98例5.1、5.2 二、连乘连加问题 page113、114、115 page129/6.3 page129/6.4、6.5 三、闰年算法 page17、 page107 四...

    [MATLAB精品丛书][高清文字版]MATLAB语言常用算法程序集(第2版).pdf

    实现,包括插值、函数逼近、矩阵特征值计算、数值微分、数值积分、方程求根、非线性方程组求解、解线性方程组的直接法、解线性方程组的迭代法、随机数生成、特殊函数计算、常微分方程的初值问题、偏微分方程的数值...

    程序员必须知道的8大常用算法

    迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行: (1) 选一个方程的近似根,赋给变量x0; (2) 将x0的值保存于变量x1,...

    算法分析与设计 第三讲 分治法

    常用的算法设计技术有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法和动态规划法等。另外,为了以更简洁的形式设计和描述算法,在设计算法时常采用递归技术,用递归描述算法。 本讲中,主要介绍分治法。

    C语言版常用算法设计技术

    经常采用的算法设计技术主要有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等。另外,为了更简洁的形式设计和藐视算法,在算法设计时又常常采用递归技术,用递归描述算法等。

    算法设计与分析PPT(C语言完整版)

    4.1.3迭代法解方程 4.2蛮力法 4.2.1枚举法 4.2.2其他范例 4.3分治算法 4.3.1分治算法框架 4.3.2二分法 4.3.3二分法变异 4.3.4其他分治方法 4.4贪婪算法 4.4.1可绝对贪婪问题 4.4.2相对或近似贪婪问题 4.4.3贪婪策略...

    算法分析与设计c语言实现

    本文讲解了如下常用的算法设计方法 1.1 迭代法  1.2 穷举搜索法  1.3 递推法  1.4 递归法  1.5 贪婪法  1.6 分治法  1.7 动态规划法  1.8 回溯法 并且包含用c语言实现的经典排序查找等算法

    C++数据结构知识点与经典算法整理

    1.常用的算法设计方法: 102 1.1 迭代法: 102 1.2 穷举搜索法: 103 1.3 递推法: 104 1.4 递归法 106 1.5 贪婪法 111 1.6 分治法 113 1.7 动态规划法 115 1.8 回溯法 119 1.9 分支定界法: 120 2.几个重要的算法...

Global site tag (gtag.js) - Google Analytics