实验5 开普勒方程近似解与方程求根.ppt

 实验5 开普勒方程近似解与方程求根.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验5 开普勒方程近似解与方程求根 实验问题 在物理学中有一类著名的方程——开普勒方程 是用来确定行星在其运行轨道上的位置的。如何求解该方程并使其解达到一定的精度要求呢? 显然,这是一个非线性方程求根问题。在科学研究和工程技术问题中,常常会遇到类似的非线性方程或高次代数方程的求根问题,他们的解析解通常难以获得,因此,需要通过构造相应的数值求解方法,求得其近似根。 实验目的 通过开普勒方程求根问题的讨论,寻求和建立非线性方程求根的数值方法,并进行实验。最后通过数值迭代实验了解分叉和混沌的概念。 实验内容 首先,对于开普勒方程,通常建立函数 1 绘图并观察函数零点 在MATLAB命令窗中输入: f=inline(x-0.5*sin(x)-1); fplot(f,[0,2]) grid 运行结果如图5.1所示,从图上可以 看出函数在区间[1,2]内存在零点。 2 利用MATLAB中fzero命令求解 在MATLAB命令窗中输入: f=inline( x-0.5*sin(x)-1) %建立函数 c=fzero(f,[1,2]) %求函数在[1,2]内的零点c 运行结果为: c = 1.4987 显然, fzero命令用起来简单易行,但从科学的态度出发,我们应该充分了解“隐藏”在该命令背后的原理、算法以及实现过程。因此,下面介绍求方程近似根的原理、公式及编程方法,从而掌握求解一般非线性方程近似根的常用数值方法,熟悉这些原理、方法对于从事科学研究,解决复杂问题是十分必要的。 3 “二分法” 基本思想: 具体步骤: 于是 取 下面对于实验问题运用上述方法,并运用MATLAB软件编程具体实现。 运行结果: k=1, x=1.50000 k=2, x=1.25000 …… k=15, x=1.49869 k=16, x=1.49870 k=17, x=1.49870 从上面计算结果可以看出,当近似根的精度为10-5时,根据公式(5-2)可以计算出迭代16次后近似根的精度达到要求。显然在上述迭代过程中只用到了计算函数的函数值,对函数的其他方面的性态没有要求。 练习 1 见课本P74 4 “切线法” 具体步骤: 值得注意的是:符合条件的函数形状除图5.2以外还有下列三种情形,如图5.3的(a),(b),(c), 其中,初始点的选取要求该点函数值与函数的二阶导数值同号; 否则,切线与x轴交点可能会超出函数定义区间之外. 误差分析: 例题5-2 用“切线法”求方程的近似根(误差10-5). 问题分析: 容易验证函数在[1,2]上满足切线迭代法的条件,现运用“切线法”来求解。 运行结果: k=1 x=1.54858 k=2 x=1.49933 k=3 x=1.49870 从计算结果可以看出,与二分法相比,切线法只需迭代3次就达到了二分法迭代17次得到的结果;但另一方面,切线法对函数本身的性态要求较高,每次都要计算导数。 练习 2 试用Newton迭代法求解练习1中各小题,并与二分法进行比较. * * 实验5 开普勒方程近似解与方程求根 图5.1 函数f(x)=x-0.5*sin(x)-1的图形 误差分析: 问题分析: 容易知道方程在[1,2]内有且仅有一个实数根,现运用“二分法”来求解。 f=inline( x-0.5*sin(x)-1); a=1;b=2;dlt=1.0e-5;k=1; while abs(b-a)dlt c=(a+b)/2; if f(c)==0 break; elseif f(c)*f(b)0 a=c; else b=c; end fprintf(k=%d, x=%.5f\n,k,c); k=k+1; end 基本思想: 首先选取函数值与二阶导数同号的端点,作曲线的切线,此切线与轴交于区间内一点;再作曲线上对应点的切线交轴于另一点;依次类推,切线与轴的交点将快速逼近函数的零点(如图5.2)。此时,我们将切线与轴的交点作为方程的近似根,这种方法通常称为求方程近似根的切线迭代法。 (5-3) 关于上述Newton迭代法有下面的收敛定理: (a) (b) (c) 于是 得 f=inline( x-0.5*sin(x)-1); df=inline(1-0.5*cos(x)); d2f=inline(0.5*sin(x)); a=1;b=2;dlt=1.0

文档评论(0)

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

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

1亿VIP精品文档

相关文档