偏微分实验
- 格式:doc
- 大小:365.00 KB
- 文档页数:9
偏微分方程数值解法第三次上机实验报告一、实验题目:用线性元求解下列问题的数值解:2,1,1(x,1)u(x,1)0,1x 1(1,y)1,u (1,y)0,11xx u x y u u y =--<<⎧⎪-==-<<⎨⎪-==-<<⎩ (精确到小数点后四位)二、实验过程:利用PDEToolbox 工具箱求解该偏微分方程。
分析:方程是Possion 方程形式c u au f -+=,其中c=-1,a=0,f=-2; 第一个边界条件是Dirichlet 条件,第二个边界条件是Neumann 条件。
1.在MA TLAB 命令窗口键入pdetool 并运行,打开PDEToolbox 界面;2.在Options 菜单下选择Grid 命令,显示网格,能更容易确定所绘图形的大小;3.绘出区域,选择Boundary 的Boundary Mode ,双击每个边界,设置边界相应的参数值;4.选择PDE 菜单中PDE Mode 命令,进入PDE 模式。
单击PDE 菜单中PDE Specification ….选项,设置方程类型及参数;5.选择Mesh 菜单中Initialize Mesh 命令,进行网格剖分,再选择Refine Mesh 命令,进行网格加密,如下图:三、实验结果:选择Solve 菜单中solve PDE 命令,解偏微分方程,其图形解如图:图1 图形解图2 三维图形解图3 解的等值线图和矢量场图选择Mesh菜单中的Export Mesh,得到结点xy坐标;选择Solve菜单中的Export Solution…,得到每个节点处的值,输出u,即解的数值。
四、实验总结:通过本次试验,掌握了利用Matlab中的PDE求解工具得到PDE的解的方法,并对偏微分方程的形式有了更多的掌握。
预备实验偏微分方程工具箱的功能和利用一、实验目的PDE Toolbox提供了研究和求解空间二维偏微分方程问题的一个壮大而又灵活有效的环境。
本次实验了解PDE Toolbox的功能和PDE图形用户界面。
PDE Toolbox的功能包括:设置PDE 定解问题,即设置二维定解区域、边界条件和方程的形式和系数;用有限元法求解PDE,即网格的生成、方程的离散和求出数值解;解得可视化。
二、实验内容一、解偏微分方程的一个例子解Poisson方程:f∆-,边界条件为齐次dirichlet类型。
u=第一步:启动MATLAB,键入pdetool,按回车键确信即可启动GUI(图形用户界面),然后在options菜单下选择grid命令,打开栅格。
栅格的利用,能利用户容易确信所画图形的大小。
第二步:散布完成平面几何造型:R1-C1-E1+R2+C2。
用菜单或快捷工具别离画矩形R1,矩形R2,椭圆E1,圆C1,圆C2。
画圆时,第一选中椭圆工具,按鼠标右键并拖动即可,或在按Ctrl的同时,拖动鼠标也可绘制图。
然后在set formula栏,进行编辑并用算术运算符将图形对象名称连接起来,或删除默许的表达式直接键入R1-C1-E1+R2+C2。
选择Boundary菜单中Boundary Mode 命令,进入边界模式。
单击Boundary 菜单中Remove All Subdomain Borders选项,去掉子域边界,若是想将几何信息和边界信息进行存储,应选择Boundary菜单中的Export Decomposed Geometry, Boundary Cond’s…命令,将它们别离贮存于g,b变量中,通过MATLAB形成M文件。
第三步:选取边界,单击Boundary菜单中Specify Boundary Conditions…选项,打开Boundary Conditions对话框,输入边界条件,本例取缺省条件,即将全数边界设为齐次dirichlet条件,边界颜色显示为红色。
偏微分方程数值解法上机报告(一)一、实验题目:用Ritz-Galerkin 方法求解边值问题2u '',01(0)0,(1)1u x x u u ⎧-+=<<⎨==⎩的第n 次近似()n u x ,基函数()sin(),1,2,...,i x i x i n ϕπ==.二、实验目的:通过本次上机实验,理解求解初值问题的变分问题的最重要的近似解法——Ritz-Galerkin 方法,以便为学习有限元法打好基础。
此外,要熟悉用Matlab 解决数学问题的基本编程方法,提高运用计算机解决问题的能力。
三、实验代码:n=5;syms x;for i=1:np(i)=sin(i*pi*x);q(i)=-i^2*pi^2*sin(i*pi*x);endfor i=1:nb(i)=2*int(p(i),0,1);for j=1:nA(i,j)=int((-q(j)+p(j))*p(i),0,1);endendt=inv(A)*b'四、运行结果:t=2251799813685248/3059521645650671/pi281474976710656/9481460623939047/pi281474976710656/43582901062631895/pi五、总结:通过本次上机,我了解了Ritz-Galerkin 方程 n j j p f cj p i p a n i i ,...,2,1)),(,())(),((1==∑=,明白了用Ritz-Galerkin 方法解决边值问题的变分问题的基本原理,并接近一步提高自己的编程动手能力,受益匪浅。
偏微分方程数值解法上机报告(二)一、 实验题目:用线性元求下列边值问题的数值解2''2sin ,0142(0)0,'(1)0y y x x y y ππ⎧-+=<<⎪⎨⎪==⎩二、 实验目的:通过本次上机,熟悉和掌握用Galerkin 法观点出发导出的求解处置问题数值解的线性有限元法。
微分方程数值解实验指导(一)实验一: 二阶椭圆型方程差分格式的程序实现1. 实验内容用五点差分格式求解Poisson 方程边值问题⎩⎨⎧∂∈=∈=-=∆,),(,0,),(,:2G y x u G y x f u (1) 其中}1|||,||),{(<=y x y x D 。
(1)用正方形网格)(h k =列出相应的差分方程。
(2)对161,81,51,21=h 分别求出数值解,观察数值解的情况,分析计算结果。
(最好画出数值解的图形)注意:在区域G 的边界上为齐次Dirichlet 条件,在这类边界上不需要给出差分格式。
2. 实验目的及要求按照给定的差分格式编程实现求出数值解;结合格式的相容性和收敛性条件简单分析计算结果。
要求在实验课上算出数值结果;按要求格式写出实验报告;下次实验课前交本次实验的实验报告。
3. 实验原理与实验过程: 以下是求解问题的步骤第一步: 对求解区域作网格剖分。
按照要求得网格剖分图如下(图1为21=h 的情况,图2为51=h 的情况)-1-0.8-0.6-0.4-0.20.20.40.60.81-1-0.8-0.6-0.4-0.200.20.40.60.81区域划分示意图图1-1-0.8-0.6-0.4-0.200.20.40.60.81-1-0.8-0.6-0.4-0.200.20.40.60.81区域划分示意图图2第二步: 差分法的目的是:求边值问题的解),(y x u 在节点),(j i y x 的近似值ij u (m j n i ,...,2,1,,2,1==, )。
为此,需要构造逼近微分方程定解问题的差分格式。
采用五点差分格式,取定x 轴和y 轴方向的步长相等,即h=k ,作两族与坐标轴平行的直线:ih x i +-=1,i=0,1,…,2/h,jh y j +-=1,j=0,1,…,2/h,两族直线的交点为网点(或节点)。
位于G 内的节点为内点,位于G 的边界上的节点为界点。
偏微分方程数值实验报告一实验题目:利用有限差分法求解.0)1(,0)1(),()()(==-=+''-u u x f x u x u 真解为)1()(22x ex u x -=-实现算法:对于两点边值问题 ,)(,)(,,d 22βα==∈=-b u a u l x f dxu (1) 其中),(b a l =f b a ),(<为],[b a l =上的连续函数,βα,为给定常数.其相应的有限差分法的算法如下:1.对求解区域做网格剖分,得到计算网格.在这里我们对区间l 均匀剖分n 段,每个剖分单元的剖分步长记为na b h -=. 2.对微分方程中的各阶导数进行差分离散,得到差分方程.运用的离散方法有:方法一:用待定系数和泰勒展开进行离散)()()()(d )(d 111122++--++≈i i i i i i i i x u x u x u x x u ααα 方法二:利用差商逼近导数21122)()(2)()(d )(d h x u x u x u x x u i i i i i -++-≈ (2) 将(2)带入(1)可以得到)()()()(2)(211u R x f hx u x u x u i i i i i +=+---+, 其中)(u R i 为无穷小量,这时我们丢弃)(u R i ,则有在i x 处满足的计算公式:1,...,1)()()(2)(211-==+---+n i x f hx u x u x u i i i i , (3) 3.根据边界条件,进行边界处理.由(1)可得βα==n u u ,0 (4)称(3)(4)为逼近(1)的差分方程,并称相应的数值解向量1-n U 为差分解,i u 为)(i x u 的近似值.4.最后求解线性代数方程组,得到数值解向量1-n U .程序代码:第一步:编写有限差分格式相关函数function [ x,U ]=FDld_bvp(N,f,a,b,u)%******************************************************************** %% FD1d_bvp利用中心差分格式求解两点边值问题%参数:% 输入参数:% 整数N,网格节点数,% 函数f(x),计算右端函数f(x);% a,计算区间左端点% b,计算区间右端点% u,真解函数% 输出参数:% 差分解向量U% 均匀剖分区间[a,b],得到网格x(i)=a+(i-1)*(b-a)/(N-1)h=(b-a)/(N-1);x=(a:h:b)';% 创建线性差分方程组系数矩阵c1=-1/h/h;c2=2/h/h+1;g=[c1*ones(1,N-2),0];c=[0,c1*ones(1,N-2)];d=[1,c2*ones(1,N-2),1];A=diag(g,-1)+diag(d)+diag(c,1);% 创建线性差分方程组右端项rhs=f(x);rhs(1)=u(x(1));rhs(N)=u(x(N));% 求解上述代数系统U=A\rhs;endfunction[e0,e1,emax]=FD1d_error(x,U,u_exact)%% FD1d_ERROR 计算有限差分误差% 参数:% 输入参数:% x,网格节点坐标向量% U,网格节点坐标向量上的有限差分数值解向量Ux% u_exact,真解函数% 输出参数:% e0% e1% emaxN=length(x);h=(x(end)-x(1))/(N-1);ue=u_exact(x);%真解在网格点处的值xee=ue-U;e0=h*sum(ee.^2);e1=sum((ee(2:end)-ee(1:end-1)).^2)/h;e1=e1+e0;e0=sqrt(e0);e1=sqrt(e1);emax=max(abs(ue-U));endfunction FD1d_bvp_test%%测试脚本% 初始化相关数据N=[6,11,21,41,81];L=-1;R=1;emax=zeros(5,1);e0=zeros(5,1);e1=zeros(5,1);%%求解并计算误差for i = 1:5[x,U] =FD1d_bvp(N(i),@f ,L,R,@u);[e0(i),e1(i),emax(i)]=FD1d_error(x,U,@u);X{i}=x;UN{i}=U;endue=u(X{5});%% 显示真阶及不同网格剖分下的数值解plot(X{5},ue,'-k*',X{1},UN{1},'-ro',X{2},...UN{2},'-gs',X{3},UN {3},'-bd ',...X{4},UN{4},'-ch ',X{5} , UN {5},'-mx');title('The solution plot');xlabel('x');ylabel ('u');legend('exact','N=6','N =11','N=21','N =41','N =81'); %% 显示误差format shortedisp ('emax e0 e1 ');disp ([ emax , e0 , e1 ]);end第二步:编写方程的右端函数和真解分别保存为m f .和m u . function f=f(x)f=exp(-x.^2).*(4.*x.^4-15.*x.^2+5);endfunction u=u(x)u=exp(-x.^2).*(1-x.^2);end实验结果:在命令窗口输入>> FD1d_bvp_test回车可得运算结果和图像emax e0 e15.8219e-02 5.3470e-02 1.1724e-011.5919e-02 1.2802e-022.9349e-023.9305e-03 3.1663e-03 7.3357e-039.7959e-04 7.8946e-04 1.8338e-032.4471e-04 1.9723e-04 4.5844e-04。
偏微分中心差分格式实验报告实验目的:1.掌握偏微分的中心差分格式;2.理解中心差分格式的精度和稳定性。
实验原理:中心差分是一种常用的数值求解偏微分方程的格式,其基本思想是用函数在两个点的导数的平均值来近似函数在这两个点中间的导数值。
具体来说,对于一维的偏微分方程,中心差分格式可以表述为:f'(x)=(f(x+h)-f(x-h))/(2h)其中f'(x)表示x点处的导数,h表示步长。
实验步骤:1.编写一个计算函数在任意给定点x处的导数值的中心差分程序;2.给定一个函数f(x),例如f(x)=x^2,计算在一定范围内的该函数在每个点处的导数值;3.比较计算的导数值与理论值的差异,并分析中心差分格式的精度;4.对给定步长h,逐渐减小h,计算导数值,并观察数值的变化,分析中心差分格式的稳定性。
实验结果与分析:以函数f(x)=x^2为例,给定步长h=0.1,计算在范围[-1,1]内的函数f(x)在每个点处的导数值。
实验结果如下表所示:x,f'(x),理论值,误差-1.0,-1.999,-2,0.001 -0.9,-1.899,-1.8,0.099 -0.8,-1.698,-1.6,0.098 -0.7,-1.397,-1.4,0.003 -0.6,-0.996,-1,0.004 -0.5,-0.495,-0.5,0.005 -0.4,0.204,0,0.204-0.3,0.615,0.6,0.015 -0.2,1.216,1.2,0.016 -0.1,1.797,1.8,0.003 0.0,1.996,2,0.0040.1,2.193,2.2,0.007 0.2,2.792,2.8,0.008 0.3,3.293,3.3,0.007 0.4,3.594,3.6,0.006 0.5,3.896,3.9,0.004 0.6,4.437,4.4,0.037 0.7,4.998,5,0.0020.9,6.795,6.8,0.0051.0,7.993,8,0.007从实验结果可以看出,随着x的增大,计算的导数值与理论值之间的误差也在增大,但整体上相对较小。
微分方程数值解实验指导(一)
实验一: 二阶椭圆型方程差分格式的程序实现
1. 实验内容
用五点差分格式求解Poisson 方程边值问题
⎩
⎨
⎧∂∈=∈=-=∆,),(,0,
),(,:2G y x u G y x f u (1) 其中}1|||,||),{(<=y x y x D 。
(1)用正方形网格)(h k =列出相应的差分方程。
(2)对16
1,81,51,21=h 分别求出数值解,观
察数值解的情况,分析计算结果。
(最好画出数值解的图形)
注意:在区域G 的边界上为齐次Dirichlet 条件,在这类边界上不需要给出差分格式。
2. 实验目的及要求
按照给定的差分格式编程实现求出数值解;结合格式的相容性和收敛性条件简单分析计算结果。
要求在实验课上算出数值结果;按要求格式写出实验报告;下次实验课前交本次实验的实验报告。
3. 实验原理与实验过程: 以下是求解问题的步骤
第一步: 对求解区域作网格剖分。
按照要求得网格剖分图如下(图1为2
1=h 的情况,图2为5
1=h 的情况)
-1
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
1
-1-0.8-0.6-0.4-0.200.20.40.6
0.8
1区域划分示意图
图1
-1
-0.8-0.6-0.4-0.200.20.40.60.81
-1-0.8-0.6-0.4-0.200.20.40.60.8
1区域划分示意图
图2
第二步: 差分法的目的是:求边值问题的解)
,(y x u 在节点),(j i y x 的近似值ij u (m j n i ,...,2,1,,2,1==, )。
为此,
需要构造逼近微分方程定解问题的差分格式。
采用五点差分格式,取定x 轴和y 轴方向的步长相等,即h=k ,作两族与坐标轴平行的直线:
ih x i +-=1,i=0,1,…,2/h,
jh y j +-=1,j=0,1,…,2/h,
两族直线的交点为网点(或节点)。
位于G 内的节点为内点,位于G 的边界上的节点为界点。
若
1|'||'|=-+-j j i i ,则节点),(j i y x 与),(''j i y x 为相邻节点。
若节点
),(j i y x 的四个相邻节点都为内点,则该节点为正则内
点;否则为非正则内点。
以下以2
1=h 的情况为例加以
说明, 5
1=h 的情况完全类似。
(1)设节点),(j i y x 为正则内点, 这类节点有5(见图1),沿x ,y 方向分别用中心差商代替yy xx u u ,,则得
ij
j i ij j i j
i ij j i ij h f h
u u u h
u u u u =+-+
+-=∆-+-+]22[
22
1
,1,2
1
,1,1,
利用Taylor 展式,可得差分算子的截断误差为
)(][121),(),()(444
224421h O y
u h x u h y x u y x u u R j i h j i ij +∂∂+∂∂-=∆-∆=,
因为我们取的正方形网格,故上述五点差分格式简化为
ij
j i j i j i j i ij f h u u u u u 4
)(412
1,1,,1,1-=+++--+-+,
由于2-=f ,所以有
21,1,,1,12)(4h u u u u u j i j i j i j i ij =+++--+-+。
以5号节点为例有如下差分格式
2864252)(4h u u u u u =+++- (2)
(2)设节点),(j i y x 为非正则内点,这类节点有1-3,4,6,7-9(见图1)。
设3号节点为差分逼近的节点,6、2号节点为其相邻节点(按照上、左的顺序,见图1),其中只有3号节点水平方向右边及竖直方向下边的节点为界点,由于在本试验问题中边界条件为齐次Dirichlet 条件,并且界点到它的邻点的距离都等于h ,故上述差分格式可简化为
26232)(4h u u u =+- (3)
即所得非正则内点的差分格式与正则内点的差分格式形式相同,只是注意边界点处的函数值为零。
第三步: 有限差分方程的解法。
根据问题的规模和计算机的容量和速度,选取适当的解法。
这是关键的一步,有限差分法解方程的主要计算都集中在这里。
由于本实验问题的有限差分方程为9(81)阶线性方程组,可以直接求解。
这里需要求解的方程组如(2)-(3)所示。
第四步: 根据前面的分析,编制程序,上机计算,
求出数值解,必要时画出解的几何图形,分析观察解的性质。
4.按照要求格式写出实验报告。
5.思考题五
1. 写出五点差分格式的截断误差。
2. 写出五点差分格式的误差估计。
3. 叙述近似线性椭圆型方程差分格式的最大值原理。
4. 五点差分格式是否满足最大值原理?为仕么?
5. 写出一般的扩散问题差分格式的收敛性条件?
6. 写出一比较函数。
在差分格式的误差分析中它有什么作用?
计算结果分析如下:
对h=1/2,1/5,1/10,1/20时点(0,0)处数值解的后项减去前项的误差分别为:
)0,0(
e=0.0223,0.0034,0.0007,
h
可见随着h的减小,误差趋于0,故该差分方法收敛。
2
数值解解的网格图
-1
1
解的网格图
数值解解的曲面图
-1
1
解的曲面图
5
数值解解的网格图
-1
1
解的网格图
数值解解的曲面图
-1
1
解的曲面图
10
数值解解的网格图
-1
1
解的网格图
数值解解的曲面图
-1
1
解的曲面图
20
数值解解的网格图
-1
1
解的网格图
数值解解的曲面图
-1
1
解的曲面图。