偏微分方程稳定性判断 实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
理论上,验证定理、公式、算法,并使实验者获得深刻和系统的理解,在实 践上,掌握使用实验设备的技能技巧和程序调试的方法。一般需要说明是验 证型实验还是设计型实验,是创新型实验还是综合型实验。 3.实验环境 实验用的软硬件环境(配置)。 4.实验内容(算法、程序、步骤和方法)这是实验报告极其重要的内容。这部 分要写明依据何种原理、定律算法、或操作方法进行实验,要写明经过哪几 个步骤。还应该画出流程图(实验装置的结构示意图),再配以相应的文字说 明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。 5.结论(结果) 即根据实验过程中所见到现象和测得的数据,作出结论。 6.小结 对本次实验的思考和建议。 7.备注或说明 可填写实验成功或失败的原因,实验后的心得体会等。 8.指导教师评分 指导教师根据本次实验的预习、表现、操作的实验报告的撰 写客观进行评分、签名,并记入成绩。
u(:,j+1)=a*u(:,j)+sigma*[lside(j);zeros(m-2,1);rside(j)]; end
u=[lside;u;rside];
x=(0:m+1)*h;t=(0:n)*k;
mesh(x,t,u')
view(60,30);axis([0 1 0 1 -1 2])
附录 2
function u=f(x)
附录 2
function u=f(x) u=sin(2*pi*x).^2;
附录 3
function u=l(t)
u=0*t;
附录 4
function u=r(t)
u=0*t;
步骤:
• 偏微分方程的分析步骤
⎧u
n j
+1
=
(1− σ
)u
n j
+
σu
a n
j −1

x

b

⎪u( x,0) = f (x)a ≤ x ≤ b
u
n j
+1
=
u n−1 j
+
2aλ
(u
n j +1

2u
n j
+
u
n j −1
)
的稳定性
实验 目的 验证逼近对流方程、对流方程以及逼近扩散方程的差分格式的稳定性.
实验 1
讨论逼近对流方程 ∂u
+ a ∂u
=
0
的显示格式
u
n+1 j

u
n j
+
a
u
n j +1

u
n j −1
= 0 的稳定性.
∂t ∂x
2 确定前差分法来求偏微分方程的解 注:分析逼近对流方程的差分格式可知试图用第 j 层的值来计算第 j+1 层,用网格形式可以表示为
为了在时间 [0,1] 上离散逼近对流方程 ,我们考虑上图的点的网格 ,其中实心圆表示由初始条件和边界条件而 已知的 u(x,t)的解,空心圆是网格点并将通过这种方法填成实心.其离散形式可以按时间方向向前逐步求解.
u=sin(2*pi*x).^2;
附录 3
function u=l(t)
u=0*t;
附录 4
function u=r(t)
1
u=0*t;
步骤:
• 偏微分方程的分析步骤
⎧u
n+1 j
=
u
n j
+
σu
n j −1

σu
n j +1
a

x

b

⎪u(x,0) = f (x)a ≤ x ≤ b
1 适当的提出在有限区间上的逼近对流方程的形式 ⎨
3 使用矩阵,可以通过矩阵乘法 u j +1 = Au j + s j 来得到在时间 t j+1 处的值
注: s j 表示由问题强加的边界条件. • 程序步骤
1 首先在 matlab 编辑窗口中建立一个 bjdlfc.m 的 M 文件 2 其次在 matlab 编辑窗口中建立一个 f.m 的 M 文件 3 接着在 matlab 编辑窗口中建立一个 l.m 的 M 文件 4 然后在 matlab 编辑窗口中建立一个 r.m 的 M 文件
算的一种方法.
2 将公式(1)用于所有以后的信息时间步. 定义
5
3 考虑当 c = 2 、初始条件 f (x) = sin(πx),g(x) = x , l(t) = r(t) = 0 时差分格式(1)在 (xi ,t j ) 处的
值.
• 程序步骤
1 在 matlab 编辑窗口中建立一个 kcdlfc.m 的 M 文件 2 在 matlab 编辑窗口中建立一个 f.m 的 M 文件 3 在 matlab 编辑窗口中建立一个 g.m 的 M 文件 4 接着在 matlab 编辑窗口中建立一个 l.m 的 M 文件 5 然后在 matlab 编辑窗口中建立一个 r.m 的 M 文件
u(:,j+1)=a*u(:,j)+sigma*[lside(j);zeros(m-2,1);rside(j)]; end u=[lside;u;rside]; x=(0:m+1)*h;t=(0:n)*k; mesh(x,t,u') view(60,30);axis([xa xb ya yb -1 2])
τ
2h
程序:
附录 1
实验 内容 (算 法、
程 序、 步骤 和方 法)
function u=bjdlfc(xa,xb,ya,yb,M,N) %xa、xb 为 x 方向的起始与终止值;ya、yb 为 t 方向的起始与终止值; %M、N 分别为空间步数与时间步数. c=1;%c 为差分方程中的参数 h=(xb-xa)/M;m=M-1;n=N;%h、k 分别为空间与时间步长;k=(yb-ya)/N; k=(yb-ya)/N; sigma=c*k/(2*h);%网格比 a=diag(ones(m,1))+diag(-sigma*ones(m-1,1),1); a=a+diag(sigma*ones(m-1,1),-1);%定义矩阵 A lside=l(ya+(0:n)*k);rside=r(ya+(0:n)*k); u(:,1)=f(xa+(1:m)*h)';%初始条件 for j=1:n
1 首先在 matlab 编辑窗口中建立一个 dlfc.m 的 M 文件 2 其次在 matlab 编辑窗口中建立一个 f.m 的 M 文件 3 接着在 matlab 编辑窗口中建立一个 l.m 的 M 文件 4 然后在 matlab 编辑窗口中建立一个 r.m 的 M 文件
5 最后在 matlab 命令窗口中输入 bjdlfc(0,1,0,1,10,250)
附录 2
function u=f(x) u=sin(2*pi*x).^2;
附录 3 function u=g(x)
4
u=x; 附录 4 function u=l(t) u=0*t; 附录 5 function u=r(t) u=0*t;
步骤:
• 偏微分方程的分析步骤
⎧u
n j
+1
=

2σu
n j
+
注:对于差分格式
u
n j
+1
=
−2σu
n j
+
σu
n j −1
+
σu
n j +1
+
u
n j
−1
(1), 显 然 每 计 算 一 次 方 程 左 端 项 都 需 要 前 两 步
( j −1和j )时间上的值,所以在第一时间步长不能求直接使用上述差分格式,这一点类似于起始多步常微分
方程方法有关的问题.
为了解这个问题,可以引入三点中心差分公式去近似解的一阶时间导数. ut
σu
n j −1
+
σu
n j +1
+
u
n j百度文库
−1a

x

b

⎪u(x,0) = f (x)a ≤ x ≤ b
1 适当的提出在有限区间上的扩散对流方程的形式 ⎪⎨ut ( x,0) = g ( x)a ≤ x ≤ b
⎪⎪u(a, t) = l(t)t ≥ 0
⎪⎩u(b, t) = r(t)t ≥ 0
其中 σ = 2aτ . h2
云南财经大学实验报告
系 (院):统数学院 专 业:信息与计算科学 班 级:信计 07-1 学 号:200705001507 姓 名:邹凌波 课程名称:偏微分方程数值解法 实验时间:2010 年 5 月 24 日 指导教师:陈龙伟
云南财经大学教务处制
填表说明
1.实验名称 要用最简练的语言反映实验的内容。 2.实验目的 目的要明确,要抓住重点,可以从理论和实践两个方面考虑。在
⎪u(a,t) = l(t)t ≥ 0
⎪⎩u(b,t) = r(t)t ≥ 0
注:类似于常微分方程的情形,偏微分方程有无穷多个解,因此需要额外的条件来定出特解.为了适当的提出一
个偏微分方程,可能会用到初始条件和边界条件的各种结合 .对于本例,我们已经把初始条件 f (t) 和边界条
件 l(t)、r(t) 结合起来,从而确定偏微分方程的唯一解.
(xi ,t
j
)
=
ui, j +1 − ui, j −1 2k
,代
入时间步
(xi , t0 )
的初始数据,得到
g(xi )
= ut (xi , t0 )

ui,1 − ui,−1 2k
,或者 ui,−1
=
ui,1
− 2kg(xi )
(2).把
σ
σ
公式(2)代入公式(1),给出: ui,1 = −σui,0 + 2 ui−1,0 + 2 ui+1,0 + kg ( x) (3).这是使初始信息 g (xi ) 加入计
1 适当的提出在有限区间上的对流方程的形式 ⎨
⎪u(a, t) = l(t)t ≥ 0
⎪⎩u(b, t) = r(t)t ≥ 0
2 确定前差分法来求偏微分方程的解
3
3 使用矩阵,可以通过矩阵乘法 u j +1 = Au j + s j 来得到在时间 t j+1 处的值
注: s j 表示由问题强加的边界条件. • 程序步骤
u(:,j+2)=a*u(:,j+1)+u(:,j)+sigma*[lside(j);zeros(m-2,1);rside(j)]; end u=[lside;u;rside]; x=(0:m+1)*h;t=(0:n)*k; mesh(x,t,u') view(60,30);axis([xa xb ya yb -1 2])
6 最后在 matlab 命令窗口中输入 kcdlfc(0,1,0,1,10,250)
6
实验 1
当 h = 0.1,τ = 0.001时, 此时 λ = τ = 0.01 其图形为: h
1 讨论逼近对流方程
∂u
+ a ∂u
=
0
的显示格式
u
n+1 j

u
n j
+
a
u
n j +1

u
n j −1
=
0 的稳定性.
∂t ∂x
τ
2h
实验 名称
2
考虑对流方程的差分格式
u
n+1 j

u
n j
+
a
u
n j

u
n j −1
= 0, a > 0 的稳定性
τ
h
3
讨论逼近扩散方程的
Richardson
差分格式
考虑对流方程的差分格式
u
n+1 j

u
n j
+
a
u
n j

u
n j −1
= 0, a
> 0 的稳定性
τ
h
程序:
附录 1
function u=dlfc(xa,xb,ya,yb,M,N) c=1; m=M-1;n=N;h=(xb-xa)/M;%k=1; k=(yb-ya)/N; sigma=c*k/h; a=diag(1-sigma*ones(m,1))+diag(sigma*ones(m-1,1),-1); lside=l(ya+(0:n)*k);rside=r(ya+(0:n)*k); u(:,1)=f(xa+(1:m)*h)'; for j=1:n
方法
前向差分法 注:用有限差分方法来求偏微分方程的近似解 ,想法是对自变量建立网格并把偏微分方程离散化 ,把连续问题 变成有限多个方程的离散化问题.若这个偏微分方程是线性的,那么它的离散方程也是线性的.
实验 3
讨论逼近扩散方程的
Richardson
差分格式
u
n+1 j
+
2aλ
(u
n j +1

2u
n j
5 最后在 matlab 命令窗口中输入 bjdlfc(0,1,0,1,10,250)
2
方法
前向差分法 注:用有限差分方法来求偏微分方程的近似解 ,想法是对自变量建立网格并把偏微分方程离散化 ,把连续问题 变成有限多个方程的离散化问题.若这个偏微分方程是线性的,那么它的离散方程也是线性的.
实验 2
+
u
n j −1
)
的稳定性
程序:
附录 1
function u=kcdlfc(xa,xb,ya,yb,M,N) c=2; m=M-1;n=N;h=(xb-xa)/M;%k=(yb-ya)/N; k=0.0001; sigma=2*c*k/(h*h); a=diag(-2*sigma*ones(m,1))+diag(sigma*ones(m-1,1),1); a=a+diag(sigma*ones(m-1,1),-1); lside=l(ya+(0:n)*k);rside=r(ya+(0:n)*k); u(:,1)=f(xa+(1:m)*h)'; u(:,2)=0.5*a*f(xa+(1:m)*h)'+0.5*sigma*[l(0);zeros(m-2,1);r(0)];%+k*g(xa+(1:m)*h)' for j=1:249
相关文档
最新文档