C语言程序设计 迭代法

我在做程序设计题时常碰到用迭代法求解问题到底什么叫迭代法???比如用迭代法求方程x=cosx的根,要求误差小于10E-6(10的负六次方)。以此题为例如何用迭代法求解请详... 我在做程序设计题时 常碰到 用迭代法 求解问题 到底什么叫迭代法???

比如 用迭代法求方程 x=cos x的根,要求误差小于 10E-6(10的负六次方)。

以此题为例 如何用迭代法求解 请详细解释一下 谢
展开
 我来答
天高地远山
2012-03-03 · 超过31用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:66.8万
展开全部
main()
{double x1,x2;
x1=0.0;
x2=cos(x1);
while(fabs(x2-x1)>le-6)//当误差大于10的负六次方循环。
{x1=x2;
x2=cos(x1);
}
printf("x=%f\n",x2);
}

牛顿迭代法,是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式 x(n+1) = g(x(n)) = x(n)–f(x(n))/f‘(x(n)).然后按以下步骤执行:
(1) 选一个方程的近似根,赋给变量x1;
(2) 将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0;
(3) 当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。
若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就
认为是方程的根。

参考资料: http://zhidao.baidu.com/question/42941394.html

enochwills
2012-03-04 · TA获得超过4793个赞
知道大有可为答主
回答量:2031
采纳率:96%
帮助的人:1637万
展开全部
这个其实很简单,假设有台电视,我让你猜价钱:
你说:4000,我说:高了(那么你把价钱降低一半报一次)
你说:2000,我说:低了(那么你把价钱升到4000和2000正中间)
你说:3000,我说:还低(那么你把价钱升到3000和4000正中间)
你说:3500,我说:高了(那么你把价钱降到3000和3500正中间)
你说:3250,我说:还高(那么你把价钱降到3000和3250正中间)
你说:3125,我说:低了(那么你把价钱升到3125和3250正中间)
你说:3200,我说:答对了!
这就是典型的迭代。当计算没有表达式的时候,你输入一个初始化的数据(比如4000),然后通过一个判断程序检验是否正确,如果不正确,就按照上两次之间的结果进行判断,以逐渐逼近的方式求得最终的数值,这就叫迭代

这个迭代有几个条件:第一:你有一个计算方式,从前面两步的一个值(比如前面的例子从最低的高值和最高的低值之间去中间值,就是一个计算方式)
第二,有一个判断程序,比如我心里知道的那个数,对你的报价进行比较
第三,有一个收敛条件(上面的例子是完全猜对,其实你也可以允许误差在100元内就算猜的正确)

相信聪明的你一定看的明白,要不然你去找范伟和赵本山要答案吧,哈哈哈!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式