资源描述:
《微分方程数值解.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、本科生实验报告实验课程微分方程数值解学院名称管理科学学院专业名称信息与计算科学学生姓名学生学号指导教师林红霞实验地点6C402实验成绩二〇一五年十月二〇一五年十一月填写说明1、适用于本科生所有的实验报告(印制实验报告册除外);2、专业填写为专业全称,有专业方向的用小括号标明;3、格式要求:①用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。②打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下2.54cm,左右2.54cm,页眉1.5cm,页脚1.75cm)。字符间距为默认值(缩放100%,间距:标准);页码用
2、小五号字底端居中。③具体要求:题目(二号黑体居中);摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体);关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体);正文部分采用三级标题;第1章××(小二号黑体居中,段前0.5行)1.1×××××小三号黑体×××××(段前、段后0.5行)1.1.1小四号黑体(段前、段后0.5行)参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T7714-2005)》。实验一常微分方程初值解法(一)1实验内容分别用Euler
3、法、改进Euler法、Runge-kutta法求解初值问题u·=-2*t*u2u0=12实验数据与实验结果1)实验结果欧拉法的值与真实的值改进欧拉法的值与真实的值4阶Runge-kutta法的值与真实的值欧拉法的值与真实的值改进欧拉法的值与真实的值4阶Runge-kutta法的值与真实的值从上图可以看出,Euler法计算出的结果与其他方法所得结果相对来说精度太低。4程序代码清单原式functionf=f(t,u)f=-2*t*u*u;欧拉法function[t,u]=euler(f,t0,u0,tf,h)n=(tf-t0)/h;u(1)=u
4、0;t(1)=t0;fori=1:nt(i+1)=t0+i*h;u(i+1)=u(i)+h*feval(f,t(i),u(i));end改进欧拉法function[t,u]=adeuler(f,t0,u0,tf,h)%Eluer方法%一阶微分方程的函数:f%初始条件:t0,u0%取值范围的一个端点:tf%区间步长:h(默认值为0.1)n=fix((tf-t0)/h);u(1)=u0;t(1)=t0;fori=1:nt(i+1)=t0+i*h;up=u(i)+h*feval(f,t(i),u(i));uc=u(i)+h*feval(f,t(i
5、+1),up);u(i+1)=(up+uc)/2;end四阶Runge-kutta法function[T,Y]=rk4(f,a,b,ya,N)h=(b-a)/N;T=a:h:b;Y(1)=ya;forj=1:Nk1=h*feval(f,T(j),Y(j));k2=h*feval(f,T(j)+h/2,Y(j)+k1/2);k3=h*feval(f,T(j)+h/2,Y(j)+k2/2);k4=h*feval(f,T(j)+h,Y(j)+k3);Y(j+1)=Y(j)+(k1+2*k2+2*k3+k4)/6;end实验二求解二阶常微分初值问题
6、(二)1实验内容分别用差分法、Jacobi迭代法求解初值问题-dudx2=sinx07、1)*h);Jacobi:function[x,i]=Jacobil(A,b,x0,tol,max)[n,n]=size(A);xold=x0;D=diag(diag(A));E=eye(n);C=E-(DA);d=Db;i=1;whilei<=maxxnew=C*xold+d;ifnorm(xnew-xold)<=tolx=xnew;disp('jacobiµü´úÊÕÁ²');return;elsexold=xnew;end%disp([xnew']);i=i+1;enddisp('Jacobµü´ú·¨²»ÊÕÁ²');disp(
8、'×î´óµü´ú´ÎÊýºóµÄ½á¹ûΪ£º');x=xnew;Gauss:function[x,k]=Gauss(A,b,x0,to1,max)D=diag(diag(A