欢迎来到天天文库
浏览记录
ID:44900963
大小:114.83 KB
页数:13页
时间:2019-11-02
《数值分析报告求解非线性方程根地二分法、简单迭代法和牛顿迭代法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、文档实验报告一:实验题目一、实验目的掌握求解非线性方程根的二分法、简单迭代法和牛顿迭代法,并通过数值实验比较两种方法的收敛速度。二、实验内容1、编写二分法、牛顿迭代法程序,并使用这两个程序计算在[0,1]区间的解,要求误差小于,比较两种方法收敛速度。2、在利率问题中,若贷款额为20万元,月还款额为2160元,还期为10年,则年利率为多少?请使用牛顿迭代法求解。3、由中子迁移理论,燃料棒的临界长度为下面方程的根cotx=(x2-1)/2x,用牛顿迭代法求这个方程的最小正根。4、用牛顿法求方程fx=
2、x3-11x2+32x-28=0的根,精确至8位有效数字。比较牛顿迭代法算单根和重根的收敛速度,并用改进的牛顿迭代法计算重根。三、实验程序第1题:区间[0,1]函数画图可得函数零点约为0.5。画图函数:functionTest1()%f(x)示意图,f(x)=x+exp(x)-2;f(x)=0r=0:0.01:1;y=r+exp(r)-2plot(r,y);gridon二分法程序:文档计算调用函数:[c,num]=bisect(0,1,1e-4)function[c,num]=bisect(a,
3、b,delta)%Input–a,b是取值区间范围%-delta是允许误差%Output-c牛顿迭代法最后计算所得零点值%-num是迭代次数ya=a+exp(a)-2;yb=b+exp(b)-2;ifya*yb>0return;endfork=1:100c=(a+b)/2;yc=c+exp(c)-2;ifabs(yc)<=deltaa=c;b=c;elseifyb*yc>0b=c;yb=yc;elsea=c;ya=yc;end文档ifabs(b-a)4、eak;endendc=(a+b)/2;err=abs(b-a);yc=c+exp(c)-2;牛顿迭代法程序:计算调用函数:[c,num]=newton(@func1,0.5,1e-4)调用函数:function[y]=func1(x)y=x+exp(x)-2;end迭代算法:function[c,num]=newton(func,p0,delta)%Input-func是运算公式%-p0是零点值%-delta是允许误差%Output-c牛顿迭代法最后计算所得零点值%-num是迭代次数num=-5、1;fork=1:1000y0=func(p0);文档dy0=diff(func([p0p0+1e-8]))/1e-8;p1=p0-y0/dy0;err=abs(p1-p0);p0=p1;if(err6、ionTest2()%f(x)示意图,f(x)=200000*(1+x).^10-2160*12*10;f(x)=0r=linspace(0,0.06,100);y=200000*(1+r).^10-2160*12*10;plot(r,y);gridon调用函数:function[y]=func2(r)文档y=200000*(1+r).^10-2160*12*10;end牛顿迭代法算法程序:function[c,num]=newton(func,p0,delta)%Input-func是运算公式7、%-p0是零点值%-delta是允许误差%Output-c牛顿迭代法最后计算所得零点值%-num是迭代次数num=-1;fork=1:1000y0=func(p0);dy0=diff(func([p0p0+1e-8]))/1e-8;p1=p0-y0/dy0;err=abs(p1-p0);p0=p1;if(err8、:先用画图法估计出最小正解位置在1到2之间画图程序:functionTest3()%f(x)示意图,f(x)=cot(x)-(x.^2-1)./(2.*x);f(x)=0ezplot('cot(x)-(x.^2-1)./(2.*x)',[-6,6]);gridon调用函数:function[y]=func3(x)y=cot(x)-(x.^2-1)./(2.*x);end牛顿迭代法算法程序:function[c,num]=newton(func,p0,delta)%Input-func是运算公式%
4、eak;endendc=(a+b)/2;err=abs(b-a);yc=c+exp(c)-2;牛顿迭代法程序:计算调用函数:[c,num]=newton(@func1,0.5,1e-4)调用函数:function[y]=func1(x)y=x+exp(x)-2;end迭代算法:function[c,num]=newton(func,p0,delta)%Input-func是运算公式%-p0是零点值%-delta是允许误差%Output-c牛顿迭代法最后计算所得零点值%-num是迭代次数num=-
5、1;fork=1:1000y0=func(p0);文档dy0=diff(func([p0p0+1e-8]))/1e-8;p1=p0-y0/dy0;err=abs(p1-p0);p0=p1;if(err6、ionTest2()%f(x)示意图,f(x)=200000*(1+x).^10-2160*12*10;f(x)=0r=linspace(0,0.06,100);y=200000*(1+r).^10-2160*12*10;plot(r,y);gridon调用函数:function[y]=func2(r)文档y=200000*(1+r).^10-2160*12*10;end牛顿迭代法算法程序:function[c,num]=newton(func,p0,delta)%Input-func是运算公式7、%-p0是零点值%-delta是允许误差%Output-c牛顿迭代法最后计算所得零点值%-num是迭代次数num=-1;fork=1:1000y0=func(p0);dy0=diff(func([p0p0+1e-8]))/1e-8;p1=p0-y0/dy0;err=abs(p1-p0);p0=p1;if(err8、:先用画图法估计出最小正解位置在1到2之间画图程序:functionTest3()%f(x)示意图,f(x)=cot(x)-(x.^2-1)./(2.*x);f(x)=0ezplot('cot(x)-(x.^2-1)./(2.*x)',[-6,6]);gridon调用函数:function[y]=func3(x)y=cot(x)-(x.^2-1)./(2.*x);end牛顿迭代法算法程序:function[c,num]=newton(func,p0,delta)%Input-func是运算公式%
6、ionTest2()%f(x)示意图,f(x)=200000*(1+x).^10-2160*12*10;f(x)=0r=linspace(0,0.06,100);y=200000*(1+r).^10-2160*12*10;plot(r,y);gridon调用函数:function[y]=func2(r)文档y=200000*(1+r).^10-2160*12*10;end牛顿迭代法算法程序:function[c,num]=newton(func,p0,delta)%Input-func是运算公式
7、%-p0是零点值%-delta是允许误差%Output-c牛顿迭代法最后计算所得零点值%-num是迭代次数num=-1;fork=1:1000y0=func(p0);dy0=diff(func([p0p0+1e-8]))/1e-8;p1=p0-y0/dy0;err=abs(p1-p0);p0=p1;if(err8、:先用画图法估计出最小正解位置在1到2之间画图程序:functionTest3()%f(x)示意图,f(x)=cot(x)-(x.^2-1)./(2.*x);f(x)=0ezplot('cot(x)-(x.^2-1)./(2.*x)',[-6,6]);gridon调用函数:function[y]=func3(x)y=cot(x)-(x.^2-1)./(2.*x);end牛顿迭代法算法程序:function[c,num]=newton(func,p0,delta)%Input-func是运算公式%
8、:先用画图法估计出最小正解位置在1到2之间画图程序:functionTest3()%f(x)示意图,f(x)=cot(x)-(x.^2-1)./(2.*x);f(x)=0ezplot('cot(x)-(x.^2-1)./(2.*x)',[-6,6]);gridon调用函数:function[y]=func3(x)y=cot(x)-(x.^2-1)./(2.*x);end牛顿迭代法算法程序:function[c,num]=newton(func,p0,delta)%Input-func是运算公式%
此文档下载收益归作者所有