
数值分析上机报告3.doc
5页中国矿业大学(北京)理学院数值分析实验报告实验名称牛顿法、弦截法求方程的近似解实验时间2012年3月22日姓名班级信科 组号 2成绩—、实验目的,内容 二、相关背景知识介绍 三、代码四、数值结果 五、计算结果的分析 六、计算中出现的问题,解决方法及体会—实验目的,内容1, 了解牛顿法、弦截法的原理和主要思想;2, 掌握牛顿法、弦截法的计算步骤二相关背景知识介绍Newton法的基本步骤:步骤1:准备选定初始近似值知,计算A =八斗),/o =广”,步骤2:迭代按公式*冬依迭代一次,得新的近似值、计算八珀,r =步骤3:控制如果右满足kl <51或确则终止迭代,以工昨为所求的根;否则转入步骤4此处勺,&是允许误差,而■牛件.当Wzc除其中C是去绝对误差或相对误差的控制常数,一般可取c=l步骤4:修改如果迭代次数达到预先指定的次数N,或者/5 =0,则方法失败;否则以 握代替Uo. M /□)转步骤2继续迭代弦截法:弦截法迭代公式为:XE =宛-nd.g-心三代码本人将代码写成了 mat lab的函数形式,用于解决所有的关于此类的问题分别用Newton迭代法,弦截法求方程/-2x3-4x2+4^ + 4 = 0, e[-l, 0]的近似根,要求根精确到IO5 ,并求迭代次数.并与二分法比较二分次数解:令 八>)=妙-ZJf-4产+4工+4经求解可知<。
代码如下:function y=f(x)y=x“4-2*x“3-4*x“2+4*x+4function y=ff(x)y=4*x"3-6*x ”2-8*x+4function y=g(x)y=x-f(x)/ff(x)function y=h(a, b)y=a- (f (a) * (a-b)) / (f (a) -f (b))format longx=-0. 5y=g (x)e=10*(-5)m=lwhile abs(x-y)>=ex=yy=g(x)nFm+1endfprintf (newton root :%7. 5f times :%d\n,, y, m) xx二一0. 5yy=-0. 8n=0while abs(xx-yy)>=ezz=xxxx=yy yy=h (zz, yy) n=n+lendfprintf (6xianjie root:%?. 5f times:%d\n,, yy, n)a=-lb=0P=0while abs(a-b)>=10*-5m=(a+b) /2 if f (a) *f (m) >=0a=melse b=mendp=p+]endfprintf (erfen root:%7. 5f times p)!1!数值结果newton root:-0. 73205 times:4 xianjie root:-0.73205 times:4 erfen root:-0. 73205 times:17五计算结果分析上述newton法和弦截法收敛速度明显快于二分法,故用计算机求根时用newton法和弦截法求根更快六计算中出现的问题、解决方法和体会问题:编写代码的过程中由于未考虑到部分变量的值已经被覆盖的问题而导致求不出结果解决方法:引入其他变量在替换之前先将其值保存下来体会:1.在编写程序之前,需要对题目进行仔细认真地分析,准备工作要做好!(如:通过画图来确 定方程的有根区间,判断迭代方法是否收敛等等)2. 在编写程序的时候心中应该有大概的思路和目标,少走弯路。
另外,编程的时候一定要仔 细认真,注意力集中,减少错误,提高正确率3. 程序实现后,对结果的分析也至关重要就如上所提到问题一样,为什么改变初值,迭代 次数会有所不同在对结果进行分析时,学会举一反三,大胆假设与论证4. 要多多练习,多使用mat lab语言,尽量熟悉mat lab语言。












