偏微分方程数值实验报告八

实验题目:利用有限差分法求解

u

( x)

u(x)

f (x),

u(

1)

0, u(1)

0.

真解为

u( x)

e x2

(1

x2 )

实现算法:对于两点边值问题

d2u

f , x

l ,

dx 2

(1)

u(a),u(b)

,

其中 l ( a, b) (a

b), f 为 l

[ a,b] 上的连续函数,

为给定常数 .

其相应的有限差分法的算法如下:

1.对求解区域做网格剖分,得到计算网格.在这里我们对区间l 均匀剖分 n 段,每个剖分单元

b

a

的剖分步长记为 h

.

n

2.对微分方程中的各阶导数进行差分离散,得到差分方程

.运用的离散方法有:

方法一 :用待定系数和泰勒展开进行离散

d 2u( xi )

i 1u( xi 1)

i u( xi )

i 1u( xi 1)

d( xi )2

方法二:利用差商逼近导数

d2u( xi )u( xi 1 )2u( xi )u( xi 1 )

d( xi )2h2

将(2) 带入 (1)可以得到

u(xi 1) 2u(xi ) u(xi 1 )

)

Ri (u) ,

h2

f ( xi

其中 Ri (u) 为无穷小量,这时我们丢弃 Ri

(u) ,则有在 xi 处满足的计算公式:

u(xi 1) 2u( xi ) u( xi 1 )

1,..., n 1

h2

f ( xi ), i

3.根据边界条件,进行边界处理

.由 (1)可得

u0

, un

(2)

(3)

(4)

称(3)(4)为逼近 (1) 的差分方程,并称相应的数值解向量

U n 1 为差分解, ui 为 u( xi ) 的近似值 .

4.最后求解线性代数方程组,得到数值解向量U n 1 .

实验题目: 用 Lax-Wendroff格式求解方程:

ut

2ux

0, x (0,1), t

0,

u( x,0)

1

sin 2

x, x

[ 0,1],

u(1,t )

1

sin 4

t.

(精确解 u

1 sin 2 ( x

2t). )

数值边值条件分别为:

(a) u0n 1

u0n 2 (u1n

u0n ).

h

(b ) u0n

u1n.

(c) u0n 1 - 2u1n 1

u2n 1

0.

请将计算结果与精确解进行比较。

实现算法:

1. 网格剖分:

对求解区域 G

(0,1)

(0,T ] 作均匀网格剖分 .

节点:

xj

jh ,

j

0,1,..., N

t k

jh ,

k

0,1,..., M

其中空间和时间步长:

h

1 ,

T .

N

M

算法实现

u(xi , tk 1 ) 在节点 ( xi ,t k ) 处作泰勒级数展开

u(xi , tk 1)

u(xi , tk )

[

u

k

2

2u k

O (

3

)

]i

[

t

2 ]i

t

2!

考虑在节点 ( x j , tk ) 处( 1)的微分方程,有:

u

a

u

0.

t

x

2u

(

a

u

a

(

u

2

2u

t

2

)

) a

x

2 .

t

x

x

t

将上述两式代入( 2)式,得

u( xi ,t k 1 ) u( xi ,t k ) a [ u ] ik

a2 2 [

2 u2 ]ik

O ( 3 )

x

2

x

对 x 的一阶、二阶导数用中心差商代替

1)

2)

u k

1

2

[

x ]i

2h

[( u( xi

1, tk )

u( xi 1, tk ))]

O(h

)

[

2u k

1

2u( xi ,tk )

u( xi 1, tk ))]

2

)

x

2 ]i

h

2 [( u(xi 1 ,t k )

O (h

代入整理后得到

u( xi ,tk 1 ) u( xi ,t k )

a [ u( xi 1 ,t k ) u( xi 1 ,t k )]

2h

a

2

2

O( h2 )

2 h2 )

O( 3 )

2

[ u( xi 1 ,tk )

2u( xi , tk )

u( xi

1 , tk )]

O (

2h

略去误差项,以

uik 代替 u( xi ,t k ) ,得到如下差分格式

a (uik 1

2

2

uik 1

uik

uik 1 )

a

2 (uik 1

2uik

uik 1)

( 3)

2h

2h

( 3)式就是 Lax-Wendroff 格式,其截断误差为

O(

2

h2 ) ,节点如图

| a |

,就得到(

1)式的 Lax-Wendroff

格式的公式

令 r

h

uik 1

uik

r (uik 1

uik 1 )

r 2

(uik 1

2uik

uik

1)

( 4)

2

2

( 4)式是二阶精度的差分格式.

程序代码:

function[X,T,U] = advection_fd1d (NS ,NT ,pde,bd)

WAVE_EQUATION_FD1D利用有限差分方法计算一维双曲线方程

输入参数:

NS整型,空间剖分段数

NT整型,时间剖分段数

pde结构体,带求解的微分方程模型的已知数据,

%如边界、初始、系数和右端项等条件.

%bd数值边值条件

输出参数 :

X长度 NS+1 的列向量,空间网格剖分

T长度 NT+1 的行向量,时间网格剖分

%U (NS+1)*(NT+1)矩阵, U(:,i)表示第 i个时间层网格剖分上的数值解

[X,h] = (NS);

[T,tau] = (NT);

N = length(X);M = length(T);

U = zeros(N,M);

初值条件

U(:,1) = (X);

a = ;

r = a*tau/h;

边值条件

ifa >= 0% 左边值条件

U(1,:) = (T)

else

U(end,:) = (T)%右边值条件

end

for i = 2:M

U(2:end -1,i) =U(2:end-1,i-1)-r*(U(3:end,i-1)-U(1:end-2,i-1))/2+...

r^2*(U(3:end,i-1)-2*U(2:end-1,i-1)+U(1:end-2,i-1))/2;

switch(bd)

case { 'a0'}

a0();

case { 'b'}

b();

case { 'c'}

c();

otherwise

disp(['Sorry, I do not know your ', bd]);

end

end

functiona0()

U(1,i)=U(1,i-1)-r*(U(2,i-1)-U(1,i-1));

end

functionb()

U(1,i)=U(2,i-1);

end

functionc()

U(1,i)=2*U(2,i)-U(3,i);

end

end

functionpde = model_data ()

%MODEL_DATA数据模型

TI = 0;

TF = 1;

SI = 0;

SF = 1;

pde = struct('u_exact',@u_exact, 'u_initial'

'u_left',@u_left,'u_right',@u_right,

,@u_initial,

'time_grid', ...

...

@time_grid,

'space_grid'

,@space_grid,'advection_fd1d_error'

,@advection_fd1d_error,

'a

' ,-2);

function[T,tau] = time_grid(NT)

T = linspace(TI,TF,NT+1);

tau = (TF-TI)/NT;

end

function[X,h] = space_grid(NS)

X = linspace(SI,SF,NS+1)'

h = (SF-SI)/NS;

end

functionU = u_exact(X,T)

[x,t]=meshgrid(X,T);

U = 1+sin(2*pi*(x+2*t));

end

functionu = u_initial (x)

u = 1+sin(2*pi*x);

end

functionu = u_right(t)

=1+sin(4*pi*t);

end

end

functionshowsolution (X,T,U)

%% SHOWSOLUTION以二元函数方式显示数值解

% 输入参数

% X 长度为 NS +1的列向量,空间网格剖分N

% T 长度为 NT +1的行向量,时间网格剖分M

U N*M 矩阵, U(:,i) 表示第 i 个时间层网格部分上的数值解

[x,t] = meshgrid (X,T);

mesh (x,t,U');

xlabel ('X' );

ylabel ('T' );

zlabel ('U(X,T)');

end

functionshowvarysolution (X,T,U,UE)

%% SHOWVARYSOLUTION显示数值解随着时间的变化

输入参数

%X长度为 NS +1的列向量,空间网格剖分N

%T长度为 NT +1的行向量,时间网格剖分M

U N*M矩阵, U(:,i) 表示第 i 个时间层网格部分上的数值解

M = size (U ,2) ;

figure

xlabel ('X' );

ylabel ('U' );

s = [X(1) ,X(end),min(min(U)),max(max(U))];

axis (s);

fori = 1:M

plot (X,U(:,i));

axis (s);

pause ;

title (['T=',num2str(T(i)),' 时刻的温度分布' ])

End

一维双曲线有限差分方法主测试脚本

pde=model_data()

[X,T,U]=advection_fd1d(100,200,pde,'a');

UE=(X,T);

showvarysolution(X,T,U,UE);%以随时间变化方式显示数值解

showsolution(X,T,U);

%以二元函数方式显示数值解

[X,T,U]=advection_fd1d(100,200,pde,

'b');

UE=(X,T);

showvarysolution(X,T,U,UE);

%以随时间变化方式显示数值解

showsolution(X,T,U);%以二元函数方式显示数值解

[X,T,U]=advection_fd1d(100,200,pde, UE=(X,T);

'c');

showvarysolution(X,T,U,UE);%以随时间变化方式显示数值解

showsolution(X,T,U);%以二元函数方式显示数值解

matlab的数值求解实验报告,偏微分方程数值及matlab实验报告相关推荐

  1. 【TS TSP】基于matlab禁忌搜索算法求解31城市旅行商问题【含Matlab源码 1143期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab禁忌搜索算法求解31城市旅行商问题[含Matlab源码 1143期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

  2. 【单目标优化求解】基于matlab黑猩猩算法求解单目标问题【含Matlab源码 1413期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[单目标优化求解]基于matlab黑猩猩算法求解单目标问题[含Matlab源码 1413期] 点击上面蓝色字体,直接付费下载,即可. 获取代 ...

  3. 【物流选址】基于matlab免疫算法求解物流选址问题【含Matlab源码 020期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[物流选址]基于matlab免疫算法求解物流选址问题[含Matlab源码 020期] 获取代码方式2: 付费专栏Matlab路径规划(初级版 ...

  4. matlab定积分上界求解,定积分问题的数值求解及Matlab实现.pdf

    定积分问题的数值求解及Matlab实现 第28卷第5期 哈 尔滨 商 业 大 学 学报 (自然科学版) Vo1.28No.5 2012年 10月 JournalofHarbinUniversityof ...

  5. galerkin有限元法matlab实现,有限元法求解二维Poisson方程的MATLAB实现

    有限元法求解二维Poisson方程的MATLAB实现 陈莲a,郭元辉b,邹叶童a [摘要]文章讨论了圆形区域上的三角形单元剖分.有限元空间,通过变分形式离散得到有限元方程. 用MATLAB编程求得数值 ...

  6. 一维抛物线的matlab求解,一维抛物线偏微分方程数值解法(附图及matlab程序)

    精确解为:U(x,t)=e^(x+t); 用紧差分格式: 此种方法精度为o(h1^2+h2^4),无条件差分稳定: 一:用追赶法解线性方程组(还可以用迭代法解) Matlab程序为: function ...

  7. matlab单纯形法编程求解,单纯形法的matlab实现

    1.大连民族学院数 学 实 验 报 告课程: 最优化方法 实验题目: 单纯形法的matlab实现 系别: 理学院 专业: 信息与计算科学 姓名: 班级: 信息102班 指导教师: 葛仁东 完成学期: ...

  8. 【Matlab】 遗传算法求解TSP问题

    [Matlab] 遗传算法求解TSP问题 文章目录 [Matlab] 遗传算法求解TSP问题 前言 一.问题描述 二.实验设计 1.问题案例 2.读入数据 3.适应度计算 4. 选择子代 5. 结果输 ...

  9. matlab的数值求解实验报告,matlab计算方法实验报告5(数值积分)

    计算方法实验报告(5) 学生姓名杨贤邦学号指导教师吴明芬实验时间2014.4.16地点综合实验大楼203 实验题目数值积分方法 实验目的●利用复化梯形.辛普森公式和龙贝格数值积分公式计算定积分的 近似 ...

  10. matlab 仿真光学实验报告,光学实验数值仿真的三种方法及MATLAB实现

    光学实验数值仿真的三种方法及 MATLAB实现 5 结 论 (1)数值模拟结果表明三种方法都能对光学 实验现象进行正确地仿 真,因此在课 堂教学 中适 当应用这种仿真模拟 ,将光学实验 中复杂的数学 ...

最新文章

  1. python哪本好-Python入门看哪本书好? 这里有答案
  2. WL 2009 professional【已解决】谢谢nooby跟海风
  3. Android官方开发文档Training系列课程中文版:管理设备的睡眠状态
  4. 蜜罐中利用jsonp跨域漏洞和xss漏洞的分析
  5. 中国城中村改造建设前景规划及投融资模式分析报告2022年版
  6. pku 1573 Robot Motion 第一周训练——模拟
  7. vmstat命令列出的属性详解
  8. 孟山都公司董事长兼CEO休-格兰特出席2017年中国发展高层论坛
  9. 人工智能——微粒群优化算法
  10. 2021年危险化学品经营单位主要负责人考试技巧及危险化学品经营单位主要负责人模拟考试题库
  11. OMNeT 例程 Tictoc16 学习笔记
  12. 多测师杭州拱墅校区__肖sir__软件测试生命周期(4)
  13. 44、Search contract
  14. 如何成为一个很厉害的人?
  15. 顾问风采 | LF AI Data 基金会完成换届,堵俊平担任董事会主席、星爵担任会员总代表...
  16. IEEE软件工程标准词汇表定义需求
  17. 阿里mysql待遇_到了2020年,年薪80w的阿里P7+,需要掌握什么样的技术水平?
  18. AI识别教程 yolov5 (穿越火线,csgo等FPS游戏识别)
  19. FPV无人机集训召集令~
  20. monkeyrunner自动化测试工具--脚本模板及MonkeyRunner常用事件

热门文章

  1. docker 安装 Redis5.X
  2. android手机at指令集,手机AT指令集
  3. 莫斯密码加密与解密--python加密篇
  4. uniapp h5在线预览word文档ppt等
  5. 基于SSM+SpringBoot+Vue的高校竞赛赛事管理系统
  6. axure原型图设计
  7. 【Caffe安装】caffe安装系列——史上最详细的安装步骤
  8. STM32F072 NUCLEO笔记1-驱动安装以及第一个工程(mbed版)
  9. 广电为什么禁止投屏_广电网络不能投屏 怎么投屏到电视上
  10. Linux tcpdump命令详解