matlab实验报告3.docVIP

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

数学实验报告 实验序号:3 日期: 年 月 日 班级 姓名 学号 实验名称 求代数方程的近似根 问题背景描述: 求代数方程的根是最常见的数学问题之一(这里称为代数方程,主要是想和后面的微分方程区别开.为简明起见,在本实验的以下叙述中,把代数方程简称为方程),当是一次多项式时,称为线性方程,否则称之为非线性方程. 当f(x)=0是非线性方程时,由于f(x)的多样性,尚无一般的解析解法可使用。本实验介绍一些求方程实根的近似值的有效方法,要求在使用这些方法前先确定求根区间[a,b],或给出某根的近似值x0。在实际问题抽象出的数学模型中,x0可以根据物理背景确定;也可根据y=f(x)的草图等方法确定,还可用对分法、迭代法以及牛顿切线法大致确定根的分布情况。 实验目的: 本实验介绍一些求方程实根的近似值的有效方法,要求在使用这些方法前先确定求根区间,或给出某根的近似值.在实际问题抽象出的数学模型中,可以根据物理背景确定;也可根据的草图等方法确定,还可用对分法、迭代法以及牛顿切线法大致确定根的分布情况. 通过本实验希望能: 1. 了解对分法、迭代法、牛顿切线法求方程近似根的基本过程; 2. 求代数方程(组)的解. 实验原理与数学模型: 1.对分法 对分法思想:将区域不断对分,判断根在某个分段内,再对该段对分,依此类推,直到满足精度为止.对分法适用于求有根区间内的单实根或奇重实根. 设在上连续,,即 ,或,.则根据连续函数的介值定理,在内至少存在一点 ,使. 下面的方法可以求出该根: (1)??? 令,计算; (2)??? 若,则是的根,停止计算,输出结果. 若 ,则令,,若,则令,;. ……,有、以及相应的. (3) 若 (为预先给定的精度要求),退出计算,输出结果; 反之,返回(1),重复(1),(2),(3). 2. 迭代法 1)????? 迭代法的基本思想: 由方程构造一个等价方程从某个近似根出发,令 可得序列,这种方法称为迭代法. 若 ?收敛,即, 只要连续,有 可知,的极限是的根,也就是的根. 当然,若发散,迭代法就失败. 2) 迭代法的加速: a) 松弛法: 若与同是的近似值,则是两个近似值的加权平均,其中称为权重,现通过确定看能否得到加速. 迭代方程是: 其中,令,试确定: 当时,有,即当,时, 可望获得较好的加速效果,于是有松弛法:, b) Altken方法: ,是它的根,是其近似根. 设,,因为 , 用差商近似代替,有?, 解出,得 由此得出公式; 这就是Altken 公式,? 3. 牛顿(Newton)法(牛顿切线法) 1) 牛顿法的基本思想: 是非线性方程,一般较难解决,多采用线性化方法. 记为 是一次多项式,用作为的近似方程. 的解为?? 记为,一般地,记?? 即为牛顿法公式. 实验所用软件及版本: Matlab 7.0 主要内容(要点): 4.分别用对分法、普通迭代法、松弛迭代法、Altken 迭代法、牛顿切法线等5种方法,求方程 ?的正的近似根,.(建议取 .时间许可的话,可进一步考虑 的情况.) 实验过程记录(含基本步骤、主要程序清单及异常情况记录等): (1)对分法 syms x fx; a=0;b=1; fx=sin(x)- 0.5*x; x=(a+b)/2;k=0; ffx=subs(fx,x,x); if ffx==0; disp([the root is:,num2str(x)]) else disp(k ak bk f(xk)) while abs(ffx)0.0001 ab; disp([num2str(k), ,num2str(a), ,num2str(b), ,num2str(ffx)]) fa=subs(fx,x,a);ffx=subs(fx,x,x); if fa*ffx0 b=x; else a=x; end k=k+1;x=(a+b)/2; end disp([num2str(k), ,num2str(a), ,num2str(b), ,num2str(ffx)]) end 实验结果: k ak bk f(xk) 0 0 1 0.22943 1 0.5 1 0.22943 2 0.75 1 0.30664 3 0.875 1 0.33004 4 0.9375 1 0.33733 5 0.96875 1 0.3398 6 0.98438

文档评论(0)

cvv110 + 关注
文档贡献者

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

1亿VIP精品文档

相关文档