微分方程数值解实验报告

上传人:小** 文档编号:90267457 上传时间:2019-06-10 格式:DOC 页数:12 大小:561.51KB
返回 下载 相关 举报
微分方程数值解实验报告_第1页
第1页 / 共12页
微分方程数值解实验报告_第2页
第2页 / 共12页
微分方程数值解实验报告_第3页
第3页 / 共12页
微分方程数值解实验报告_第4页
第4页 / 共12页
微分方程数值解实验报告_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《微分方程数值解实验报告》由会员分享,可在线阅读,更多相关《微分方程数值解实验报告(12页珍藏版)》请在金锄头文库上搜索。

1、微分方程数值解法课程设计报告 班级: _ 姓名: _ 学号: _ 成绩: 2017年 6月 21 日 摘 要自然界与工程技术中的很多现象,可以归结为微分方程定解问题。其中,常微分方程求解是微分方程的重要基础内容。但是,对于许多的微分方程,往往很难得到甚至不存在精确的解析表达式,这时候,数值解提供了一个很好的解决思路。,针对于此,本文对常微分方程数值解法进行了简单研究,主要讨论了一些常用的数值解法,如欧拉法、改进的欧拉法、RungeKutta方法、Adams法以及椭圆型方程、抛物型方程的有限差分方法等,通过具体的算例,结合MATLAB求解画图,初步给出了一般常微分方程数值解法的求解过程。同时,通

2、过对各种方法的误差分析,让大家对各种方法的特点和适用范围有一个直观的感受。关键词:微分方程数值解、MATLAB 目 录摘 要2目 录3第一章 常微分方程数值解法的基本思想与原理41.1 常微分方程数值解法的基本思路41.2用matlab编写源程序41.3 常微分方程数值解法应用举例及结果5第二章 常系数扩散方程的经典差分格式的基本思想与原理62.1 常系数扩散方程的经典差分格式的基本思路62.2 用matlab编写源程序72.3 常系数扩散方程的经典差分格式的应用举例及结果8第三章 椭圆型方程的五点差分格式的基本思想与原理103.1 椭圆型方程的五点差分格式的基本思路103.2 用matlab

3、编写源程序103.3 椭圆型方程的五点差分格式的应用举例及结果12第四章 总结12参考文献12第一章 常微分方程数值解法的基本思想与原理1.1常微分方程数值解法的基本思路常微分方程数值解法(numerical methods forordinary differential equations)计算数学的一个分支.是解常微分方程各类定解问题的数值方法.现有的解析方法只能用于求解一些特殊类型的定解问题,实用上许多很有价值的常微分方程的解不能用初等函数来表示,常常需要求其数值解.所谓数值解,是指在求解区间内一系列离散点处给出真解的近似值.这就促成了数值方法的产生与发展.1.2用matlab编写源程

4、序龙格库塔法:M文件:function dx=Lorenz(t,x) %r=28,sigma=10,b=8/3dx=-10*(x(1)-x(2);-x(1)*x(3)+28*x(1)-x(2);x(1)*x(2)-8*x(3)/3;运行程序:x0=1,1,1;t,y=ode45(Lorenz,0,100,x0);subplot(2,1,1) %两行一列的图第一个plot(t,y(:,3)xlabel(time);ylabel(z);%画z-t图像subplot(2,2,3)%两行两列的图第三个plot(y(:,1),y(:,2)xlabel(x);ylabel(y); %画x-y图像subpl

5、ot(2,2,4)plot3(y(:,1),y(:,2),y(:,3)xlabel(x);ylabel(y);zlabel(z);%画xyz图像欧拉法:h=0.010;a=16;b=4;c=49.52;x=5;y=10;z=10;Y=;for i=1:800 x1=x+h*a*(y-x); y1=y+h*(c*x-x*z-y); z1=z+h*(x*y-b*z); x=x1; y=y1; z=z1; Y(i,:)=x y z;endplot3(Y(:,1),Y(:,2),Y(:,3);1.3常微分方程数值解法的应用举例及结果应用举例:a=10,b=8/3,0r+,当1r24.74时,c和都变成

6、不稳定的,此时存在混沌和奇怪吸引子。运行结果:龙格库塔法:欧拉法:第二章 常系数扩散方程的经典差分格式的基本思想与原理2.1 常系数扩散方程的经典差分格式的基本思路用有限差分法解常系数扩散方程有加权隐式差分格式其中,当时为Crank-Nicolson格式,当时为向后差分格式,当时为向前差分格式。加权隐式格式稳定的条件是,当,无限制,当。加权隐式格式是两层隐式格式,用第n层计算第n+1层节点值的时候,要解线性方程组。2.2 用matlab编写源程序M文件:function M = chase(a,b,c,f)% 追赶法求解三对角矩阵方程,Ax=f% a是对角线下边一行的元素% b是对角线元素%

7、c是对角线上边一行的元素% M是求得的结果,以列向量形式保存n = length(b);beta = ones(1,n-1); y = ones(1,n); M = ones(n,1);for i = (n-1):(-1):1 a(i+1) = a(i);end% 将a矩阵和n对应beta(1) = c(1)/b(1);for i = 2:(n-1) beta(i) = c(i)/( b(i)-a(i)*beta(i-1) );endy(1) = f(1)/b(1);for i = 2:n y(i) = (f(i)-a(i)*y(i-1)/(b(i)-a(i)*beta(i-1);endM(n

8、) = y(n);for i = (n-1):(-1):1 M(i) = y(i)-beta(i)*M(i+1);end endM文件:function output = diffuse_equation(a0,t_max,h,tao,D,a1,b1,c1,a2,b2,c2)% 一维扩散方程的有限差分法,采用隐式六点差分格式(Crank-Nicolson)% a0: x的最大值% t:_max: t的最大值% h: 空间步长% tao: 时间步长% D:扩散系数% a1,b1,c1是(x=0)边界条件的系数;a2,b2,c2是(x=a0)边界条件的系数x = 0:h:a0;n = length

9、(x);t = 0:tao:t_max;k = length(t); P = tao * D/h2;P1 = 1/P + 1;P2 = 1/P - 1;u = zeros(k,n);%初始条件u(1,:) = exp(x);%求A矩阵的对角元素dd = zeros(1,n);d(1,1) = b1*P1+h*a1;d(2:(n-1),1) = 2*P1;d(n,1) = b2*P1+h*a2;%求A矩阵的对角元素下面一行元素ee = -ones(1,n-1);e(1,n-1) = -b2;%求A矩阵的对角元素上面一行元素ff = -ones(1,n-1);f(1,1) = -b1;R = ze

10、ros(k,n);%求R%追赶法求解for i = 2:k R(i,1) = (b1*P2-h*a1)*u(i-1,1)+b1*u(i-1,2)+2*h*c1; for j = 2:n-1 R(i,j) = u(i-1,j-1)+2*P2*u(i-1,j)+u(i-1,j+1); end R(i,n) = b2*u(i-1,n-1)+( b2*P2-h*a2)*u(i-1,n)+2*h*c2; M = chase(e,d,f,R(i,:); u(i,:) = M; plot(x,u(i,:); axis(0 a0 0 t_max); pause(0.1)endoutput = u% 绘图比较解

11、析解和有限差分解X,T = meshgrid(x,t);Z = exp(-pi.*pi.*T).*sin(pi.*X);surf(X,T,Z),xlabel(x),ylabel(t),zlabel(u),title(解析解);%colormap(gray(1);%使图向变为黑色figuresurf(X,T,u),xlabel(x),ylabel(t),zlabel(u),title(有限差分解);%colormap(gray(1);%使图向变为黑色运行程序:% 一维扩散方程的有限差分法clear,clc; %定义初始常量a1 = 1; b1 = 1; c1 = 0; a2 = 1;b2 = -

12、1; c2 = 0;a0 = 1.0; t_max = 8; D = 0.1; h = 0.1; tao = 0.1; %调用扩散方程子函数求解u = diffuse_equation(a0,t_max,h,tao,D,a1,b1,c1,a2,b2,c2);2.3常系数扩散方程的经典差分格式的应用举例及结果应用举例:考虑常系数扩散方程的初边值问题其中,取,为时间步长,为网格比,对不同的时间步长,计算当时初边值问题的解u(0.4,0.4),并且与精确解比较,分析比较结果。运行结果:第三章 椭圆型方程的五点差分格式的基本思想与原理3.1椭圆型方程的五点差分格式的基本思路对Laplace方程的第一边

13、值问题利用taylor展开可得逼近它的五点差分格式的差分逼近其中分别为轴和轴步长,边界条件可以由离散可得,当时有。 注意五点格式计算节点是由边界的已知节点,计算内部节点,计算时需要联立大型方程组,该方程组可以用迭代法求解。3.2用matlab编写源程序M文件:function p e u x y k=wudianchafenfa(h,m,n,kmax,ep) % g-s迭代法解五点差分法问题 %kmax为最大迭代次数 %m,n为x,y方向的网格数,例如(2-0)/0.01=200; %e为误差,p为精确解 syms temp; u=zeros(n+1,m+1); x=0+(0:m)*h; y=0+(0:n)*h; for i=1:n+1 u(i,1)=sin(pi*y(i); u(i,m+1)=exp(1)*exp(1)*sin(pi*y(i); endfor i=1:n for j=1:m f (i,j)=(pi*pi-1)*exp(x(j)*sin(pi*y(i); endendt=zeros(n-1,m-1);for k=1:kmax for i=2:n for j=2:m temp=h*h*f(i,j)/4+(u(i,j+1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号