- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 567255 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 175399
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
2018数学建模A题的简单指导
' H+ p1 N4 B. B, i# C, Z6 ^8 t' K/ l
之前写过一篇博客,介绍如何使用差分格式求解热传导方程
) r4 d [3 f. l2 b; s& x# t% N
3 A8 Y) Z; r( A今天打开博客,突然发现评论区被这篇文章霸屏了
: `3 z4 v% n3 q' Z6 z0 d; {: M7 C6 E$ O
3 s5 l3 ]* d1 ^3 a0 b, E0 h, ]9 R1 ~5 n
询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了
$ u$ l9 r4 p9 ~5 n% r$ L; T3 S. Y6 ?: A: \
经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。
y7 G, B4 d- E; J) v3 b- o* v* g
但是!; B& o' |9 y$ _; @) d' m/ c
/ f/ Z$ O, o( _6 r! z' K5 ~数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。4 C+ [2 U& t/ f# h
& L8 }- T8 \9 t: e. _* j- J6 v( Y再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。3 {$ c! D, s2 A* V- b
2 K/ T3 l" f" g6 U
这里统一对大家的问题做一个回答:& l: H7 Y. k" {6 ]
2 b' V8 }5 H, Z8 w
本题适用差分解法吗?
) G' e# f+ @5 p7 M* z/ I7 w$ \" D" j# b0 S( z
求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。
; f* o) P/ X6 a
9 e( F* q2 x2 x; u5 w9 [5 A, U1 N- S差分方法的优点是原理简单,但是只能求解规则区域的数值解。
* f& ?4 E& I- O1 F
! L5 M }: ^ H6 G/ @. }1 t' |有限元背后的理论相对难很多,但能够求解不规则区域问题。$ O: s. h! G+ d7 l' X
) P( T1 u4 a& q本题适用哪种方法解答取决于你的模型假设8 @7 u1 p2 l) P! l7 w; |3 Q! Z) p, i
& ^7 ]9 b; V* A. @2 l4 U6 _, \
本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。
( i2 S: h( i: \
( I! r$ f/ n4 d# s, K, j8 @' R: B既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。
% v. t. G; ]8 K- o/ C! z8 R+ A5 H
当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。# M$ ?. b, D; a, i& ~2 L
( `) }" j0 q$ q: M
是否适用于多层壁热传导?
9 l; f5 Y [& c0 v( T0 t' n5 B; x& V1 k+ n; g
评论区有人问,是否适用于多层壁热传导吗?
- h' b0 i$ L, V6 ?& ] P. f
9 @% x3 P! L2 w% v1 J# j其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~
+ _0 S' h0 y- A* I6 l
$ y' i7 K9 t) p7 C e! v' z答案当然是能,但显然不能直接拿来用,给几点提示。! Y/ N! q( h/ C- o& s9 m, @" I9 j
" {7 o& Y! h% M! l, n! W8 p" A思路1:
. Y! D6 ]4 B1 g/ ]: Z
2 J! ]5 v- L! Z+ h8 X C你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。
% Y/ \" ?( @" m6 x2 |$ `# e5 n9 z* v) ~" Z
因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。
' \. N" A$ y7 {* n v1 C2 C7 u4 S
这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。
( _' e& ^6 U! _% d S. W7 @
$ K! P0 i4 k' C8 u% [+ n思路2:* J* o8 b2 `' m$ U
/ s8 G- p" z. b' k+ Q) l, r我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。
. |6 X0 Z( x9 d! ^" u% O5 ^, G. F9 e* _* @, t0 ^, Q# d
这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。
0 g% i" L2 s- y, Q8 s" L b5 P5 q) e5 D
这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。
# N" j3 ]) Y% d+ W
( p& G1 E3 E. B u! h V关于边界条件
- G4 s1 {# M8 T+ U) M( g" }0 w( Q6 l+ F- F
构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。" y: ~ ?. P+ w# R. u
. a& d% O6 Z- `3 {5 q; h$ D而边界条件的作用其实就是找出你想要的那个解。. x# `: |5 Q; B: Y
! y9 \- I6 h0 r7 E! L. Q
之前文章中给出的算例包含的边界条件是:
8 O* Q. `& ^6 `% x& T% c7 D. i* B& m; N; q8 S
u(x,0)
* d% u1 y% g A$ W. l2 n8 f
3 {- Z1 z' {3 p5 z$ Pu(0,t) 和 u(1,t)
9 x8 g" x9 s7 p; n6 N; N3 t$ p& ]! w
在A题中右侧初始温度好像是没有的,也就是u(1,t)没有
8 S1 x/ ^1 K1 R5 h9 h
, l& ~* a1 c5 n7 q+ ~首先,你要知道的是,求解需要的边界条件并不一定非得是这几个. ]. x1 P* J7 g2 U
+ ]8 e1 B- z) w
但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。1 T% a& [/ u9 ^' \6 c. }
+ u" R3 l8 f% N/ [5 e比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt
+ ?3 \6 p. x% ^' ?0 X$ ?7 Z! a; T1 f3 v1 p: f
这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。/ V$ J$ e$ Q0 J- H
--------------------- ! o _8 W$ ]8 _& \% j% L/ d
7 v8 Y% t; K9 k \$ k. r
7 c/ A3 Q9 A) l* N. n& I
+ D7 A3 X4 a! E |
zan
|