资源描述:
《《数值计算方法》new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、华北科技学院基础部综合性实验报告华北科技学院基础部综合性实验实验报告课程名称数值计算方法实验学期2013至2014学年第1学期学生所在系部建筑工程学院年级11级专业班级测绘B113班学生姓名赵静学号201105064329任课教师李慧实验成绩6华北科技学院基础部综合性实验报告《数值计算方法》课程综合性实验报告开课实验室:数学应用实验室年月日实验题目非线性方程的求根和常微分方程初值问题的数值解法实验一、实验目的1)通过对二分法与牛顿迭代法作编程练习与上机运算,体会二分法与牛顿迭代法的不同特点;2)熟悉求解常微分方程初值问题的有关方法和理论
2、。主要是欧拉法、后退欧拉法、梯形法、改进欧拉法、四阶龙格—库塔法与阿当姆斯法等。3)针对习题编制程序,并上机计算其所需要的结果。4)通过对各种求解方法的计算实习,体会各种解法的功能、优缺点及适用场合,会选取适当的算法。二、设备与环境Matlab软件等。三、实验内容及要求1.用二分法和牛顿法求解非线性方程的根,并就收敛性、收敛速度等进行比较分析;2.常微分方程初值问题的数值解法有:欧拉法、后退欧拉法、梯形法、改进欧拉法、四阶龙格—库塔法与阿当姆斯法。选用至少两种方法解同一个题目,就其收敛性,局部阶段误差,稳定性等进行分析。3.题目来源:实
3、验参考书的习题,和教材上的例题或习题。四、实验结果及分析解非线性方程的根1.二分法function[c,err,yc]=bisect(fun,a,b,delta)ya=fun(a)yb=fun(b)ifyb==0c=b;returnendifya*yb>0disp(‘(a,b)不是有根区间’);returnendmax1=1+round((log(b-a)-log(delta))/log(2));fork=1:max1c=(a+b)/2;yc=fun(c);ifyc==0a=c;b=c;returnelseifyb*yc>0b=c;yb
4、=yc;else6华北科技学院基础部综合性实验报告a=c;ya=yc;endif(b-a)>f=@(x)(x^3-x-1)f=@(x)(x^3-x-1)>>bisect(f,1.0,1.5,0.0005)ya=-1yb=0.8750ans=1.32472.牛顿法function[p1,err,k,y]=newton(fun,dfun,p0,delta,max1)y=f(p1)p0=fun(p0)fork=1:max
5、1p1=p0-fun(p0)/dfun(p0);err=abs(p1-p0);p0=p1;y=fun(p1)if(err6、(y==0),break,endy=f1041(p1)endp1,err,k结果>>f=@(x)(x^3-3*x+2)6华北科技学院基础部综合性实验报告f=@(x)(x^3-3*x+2)>>newton(‘f1041’,’df1041’,1.2,10^(-6),18)err=8.1277e-007k=18y=1.9817e-007ans=1.0000说明经过18次迭代能得到满足精度的值常微分方程初值问题
7、的数值解法1.欧拉法function[t,y]=ode_euler(f,a,b,ya,M)h=(b-a)/M;T=zeros(1,M+1);Y=zeros(1,M+1);T=a:h:b,Y(1)=ya;fork=1:MY(k+1)=Y(k)+h*f(T(k),Y(k));endt=T’;y=Y’结果[t,y]=ode_euler(@ode_sin,0,4*pi,1,200);figure,plot(t,y),title(‘欧拉法’)6华北科技学院基础部综合性实验报告2.改进的欧拉法function[t,y]=ode_heun(f,a,b
8、,ya,M)h=(b-a)/M;T=zeros(1,M+1);Y=zeros(1,M+1);T=a:h:b,Y(1)=ya;forj=1:Mk1=f(T(j),Y(j));k2=f(T(j+1),Y(j)+h*k1);Y(j+1)=Y(j)+(h/2)*(k1+k2);endt=T’;y=Y’结果[t,y]=ode_heun(@ode_sin,0,4*pi,1,200);Figure,plot(t,y),title(‘改进欧拉法’)6华北科技学院基础部综合性实验报告五、总结本次实验利用Matlab软件解决了二分法和牛顿法来实现求非线性方
9、程的根、常微分方程初值问题数值解法中的欧拉方法及其改进的算法等问题,熟悉了Matlab的使用,会用Matlab编写程序来完成某些功能。Matlab中的M文件使用函数调用,给程序的编写带来方便,通过一些编程,