最优走路步长的选择问题精选.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最优走路步长的选择问题精选

姓 名: 学 号: 专 业: 最优走路步长的选择问题 ——非线性方程求根的数值解法 摘要: 对于线性方程根是很容易求解的,而对于非线性方程,由于方程的多样性,分线性方程具有复杂性。利用数值解法解决非线性方程的求根问题。针对方程根的集中常用的数值解法,对方程根的解法进行简单的介绍和讨论。 为了求出最优走路步长,本文讨论了非线性方程的数值解法:非线性方程的二分法,牛顿迭代法,简单迭代法等等,基于MATLAB程序设计,通过实验验证了非线性方程数值解法的有效性。 关键词:分线性方程 二分法 迭代法 牛顿法 割线法 一,目的和意义: 通过实验进一步了解非线性方程求根的算法,认识选择计算格式的重要性;掌握迭代算法和精度控制;明确迭代收敛性与初值选取的关系。 二,提出问题: 我们每个人都有走路的经历,人在走路时所做的功等于抬高人体重心所需的势能和两腿运动所需的动能之和。当我们想走快时,会不自觉地加大步长,当我们只想慢慢的散步时,又会不自觉地缩小步长,也就是说,长期的进化使我们自觉的根据不同的速度选择最自然的步长,那么在给定速度时,以做功最小(即消耗能量最小,此时感觉最自然)为原则,走路步长选择多大为合适呢? 三,问题分析:为了求出最优走路步长,我们对以下非线性方程的数值解法做出讨论: 1?、非线性方程组的一般解法 如果用矢量表示法,也可以表示为: f(x)=0???????????????????????????????????(2) 在数值迭代中的一种等价的表示方法:x(k+1)=G(x(k)),k=0,1,……??(3) 由(2)和(3)的关系,就可以发现:f(x)=x-G(x)=0???(4) 数值迭代解法已有很多,但其实质不外乎是选定一个合适的x(k)作为起始点的解,然后用迭代方法导出一个修正的近似解x(k+1)使(1)式更加接近0.如果代入(1)式后方程得到满足则结束.如果(1)式还得不到满足,则必须再迭代一次,以便找到更加靠近答案的一组x(k+2). 这种方法算法为: (1)????选择一个解的初始值x(0); (2)????用(3)式迭代取得一个较好的近似解; (3)????当过程满足终止判定时停止迭代. ? 2?、直接迭代法 迭代法中最基本的方法为图形法和二分法.先从非线性方程开始,图形法根据已知方程用matlab画出其图形,从曲线与轴的交点可以看出其有多少个交点,就是对应方程有多少个解.二分法就是确定区间(a,b)后,取(a,b)的中点x(0)=(a+b)/2,若f(x(0))=0,则x(0)是根,否则,如f(a)*f(x(0))0,令a1=a,b1=x(0);如f(x(0))*f(b)0,令a1=x(0),b1=b在(a1,b1)内至少有一个根,再取的中点如此进行下去,足够大时即可达到满意的精度.并由此推广到求解非线性方程组中去. 不过采用迭代法要考虑其收敛性,对于一维迭代法收敛的充分条件(非必要条件)是: G(x)’=|dG(x)/dx|1 如果此条件不满足,则可能收敛也可能不收敛. 对非线性方程组解的存在性的研究远不如线性方程组那样成熟,现有的解法也不象线性方程组那样有效.除极特殊的方程外,一般不能用直接方法求得精确解,目前主要采用迭代法求近似解.其中最著名的是牛顿法—拉卜森迭代法,也就是常说的牛顿法. 3?、牛顿法 牛顿法基本思想是将非线性问题逐步线性化而形成如下迭代程序: ?????????f(x)=x-G(x)=0 (4)其中 ?是 (1)式的雅可比矩阵,x(0) 是方程(1)的解的初始近似. 这个程序至少具有2阶收敛速度.由x(k)算到x(k+1)的步骤为: ①????由x(k)算出f(x(k))及 ; ②????用直接法求线性方程组 的解△x(k); ③????求 . 由此看到迭代一次需计算1个分量函数值和1个分量偏导数值,并求解一次k阶线性方程组.为了避免切线法计算导数的麻烦,为此我们引进割线法. 由公式(4)得,为此可以用matlab来解非线性方程组的数值解法,其代码为: function y=newtonpro(x0) f1=f1ops; x1=x0-fc(x0)/df(x0); n=1; while (norm(x1-x0)1.0e-6)(n=100000000) x0=x1; x1=x0-fc(x0)/df(x0);n=n+1; end f2=flops; f=f2-f1 x1 n 其中fc为原函数,df为导函数. ??Newton法收敛得要快一些,且可

文档评论(0)

586334000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档