实验四方程求解.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验四方程求解

实验五 方程求解 实验目的 会正确使用Solve和FindRoot函数进行方程的求解。 与本实验相关的理论 1.牛顿切线法 设有一个函数y=f(x)。方程f(x)=0在x=r处有一个根,如图4﹣1所示。对于此根,我们可以先估计一个初始值。然后用以下方法得到下一个更好的初始值 。 在点B(作曲线的切线 y﹣f( 交x轴于(令y=0),即 同理,在点(处作曲线的另一条切线,交x轴于即 一般地,设f(x)在[a, b]上满足条件: (1) f(a).f(b)﹤0, (2) 连续且不变号, (3) f(﹥0 则由迭代公式 ≠0, n=0, 1, 2,…) 得到的序列单调收剑于 2.弦截法 设一个函数y=f(x)方程f(x)=0在区间[a, b]内有唯一根r,如4﹣2所示。在曲线y=f(x)上取两点A(a, f(a)) B)b, f(b))作弦,其方程为 y= 此弦与x轴的交点横坐标为 将作为方程的根r的第一个近似值 如果,那么否则,再过两点B(b, (作弦,该弦与x轴的交点横坐标为 将作为方程的根r的第二个近似值。 一般地,设f(x)满足条件: (1) f(a).f(b)﹤0, (2) 在[a, b]上连续且不变号, (3) ﹥0,﹤0 取a为固定点, 则由迭代公式 (n=0, 1, 2, …), 得到的序列{单调于r 实 验 步 骤 一、代数方程 用函数Solve可以求代数方程、方程组的精确或数值解,其中包括复值解。其格式为 Solve[{f1= =0, f2= =0, …}, {x1, x2, …}] 其中表{f1= =0, f2= =0, …}中方程的等号必须是双等号,表{x1, x2, …}是方程组中未知量的集合。 例如:(*含有字母系数的方程*) Clear[a, b, x] Solve[a*x+b= =0, x] (*复数解*) Clear[x] Solve[2+x+1= =0, x] (*代数解,数值解*) Clear[a, x] a=Solve[=0,x] N[a] (*方程组*) Clear[a, b] a=(1+2*x b=(3+2*x+y Solve[{a= =0, b= =0}, {x, y}] 我们知道四次以上的多项式方程没有求代数解的一般方法,系统也求不出那些不能分解因式的四次以上的多项式方程的精确解,例如对方程:系统求不出方程的精确解,这时可直接用函数NSolve求出它的数值解。其格式为 Nsolve[{f1= =0, f2= =0, …}, {x1, x2, …}, n] 其中的n表示要求方程的解精确到小数点以后位。 例如: Clear[a, x] a=Nsolve[=0, x, 20] 说明: 为了说明某一程序或某一命令行的功能和作用,可以在程序的任何位置加以说明,其格式如下: (*说明字符串*) 其中“说明字符串”可以是字母、数字和中文,语句“(*说明字符串*)”只起到对程序的说明作用,在程序执行时该语句将被忽略,因而该语句的加入对程序的执行结果没有任何影响。 二、一般方程的求解 对于更复杂的方程,用函数Solve或NSolve求不出根。对于这样的方程可利用函数FindRoot求数值根,其格式分别为: FindRoot[f1= =0, {x, 初值}] 和 FindRoot[f1= =0, {x, 初值1,初值2}], 它们分别用牛顿切线法和弦截法来解方程。 由于函数FindRoot是采用牛顿切线法和弦截法求解的,因此必须找到包含方程的根r的区间[a, b],并且找到根的一个近似值作为初始值。要解决这个问题,可以先作出函数f(x)的图象,从而找出方程f(x)=0的初值。 例如: Clear[b, y, x] b=Sin[x]Exp[2x]﹣Cos[x] Plot[b, {x, ﹣2, 1}] FindRoot[b= =0, {x, 0.5}] 运行结果为(如图4﹣3) {x→0.412 804}. 此例用弦解法求解如下 Clear[b, y, x] b=Sin[x]Exp[2x] ﹣Cos[x] Plot[b, {x, ﹣2, 1}] FindRoot[b= =0, {x, 0, 1}] 说明 无论是牛顿切线法还是弦截法,当方程有重根或两个根非常接近或根与曲线的拐点非常接近时,可能会出现问题。此时,可用下述格式: FindRoot[f1= =0, {x, 初值}, 参数1,参数2] 和 FindRoot[f1= =0, {x, 初值1,初值2},参数1,参数2] 通过加大参数的值加以改善。其中

文档评论(0)

75986597 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档