- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 555321 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 171969
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 18
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
2018数学建模A题的简单指导0 t2 J$ O2 v: p* _, i/ J3 e
7 D% J) o `$ P. A( d3 V' Y
之前写过一篇博客,介绍如何使用差分格式求解热传导方程
/ s3 |$ n1 Q* A8 S: A9 f
, V0 Z' ]4 O4 v今天打开博客,突然发现评论区被这篇文章霸屏了
! s$ f6 c, k& S; B# Q0 C9 G4 j0 z& M9 ~/ Q/ x+ A. Z+ j5 z3 l
$ J2 Q. \8 [% n- z K: X
+ J4 n) K6 }# Q) R1 u( P询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了) t* N/ j, |( _( ]/ G& h P: @
0 O- J) N; |1 O4 k$ G
经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。 X1 F+ ]8 X7 |% Y. R! N0 B
6 }8 |/ O, Y/ n! D0 G8 e) ]% Q
但是!- J; g, Q( P& Q$ c2 P1 x
* S! J& o) `8 y" ^( @
数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。
; w; L i6 D3 O3 n
s7 @3 k2 p* z再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。
2 T2 i) [: |5 |3 Y9 ^1 z9 Y4 R9 e( p" c0 k" g& z; a
这里统一对大家的问题做一个回答:# ^) _# g8 p5 q6 {! I/ B+ g, s
C" M9 m- O6 k1 ?. X- n本题适用差分解法吗?; d' e7 d& u+ q% K0 h$ C, B
7 b2 a+ y1 y" y$ G
求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。( b5 N/ {/ z6 a: Q! K+ R! y1 }
8 V; z! q# ~ R# ?差分方法的优点是原理简单,但是只能求解规则区域的数值解。
3 {" g( P Y/ V2 L2 O/ ]1 q0 G8 a: u% @: |0 T9 r& }
有限元背后的理论相对难很多,但能够求解不规则区域问题。. [& @- d: Y0 g& }
- }0 U* c- K9 Z7 R5 N& l$ F
本题适用哪种方法解答取决于你的模型假设
3 g% X( g* R' L+ U3 g
) p4 c/ v# e$ K% ]7 F/ P本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。: l- G: a! D5 W# B8 R! \1 \: K
1 | s E1 w* F+ U) C/ R既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。: O E/ ^, W! |
' G; X/ O5 ~8 ?: k; S: I
当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。8 H3 m6 u6 W+ q3 m, G
1 w* @5 h; `4 C @) p) T是否适用于多层壁热传导?; y2 ^5 v9 [7 k2 h
: @+ N, L4 Y7 m5 K# @
评论区有人问,是否适用于多层壁热传导吗?; I) z- ?% t w0 \
$ u4 y( N. z3 `* R, S! i0 Q/ O
其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~
7 l+ |$ M `' @1 z7 X' }- ~4 z9 x' r# s5 h( n3 t
答案当然是能,但显然不能直接拿来用,给几点提示。1 }: W0 a% j+ p
) l* W! y+ a; G \+ E# @
思路1:
/ s0 A0 ^7 m. g1 i/ m* d h$ O; p3 [; l: M8 r+ p) o Q
你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。
: _; N, ^8 F& r5 q
7 T9 X7 K6 I u. Z! A因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。
: v+ h$ `# Z7 R; y7 S$ ]
# S6 H6 o, A/ F, d这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。( W- m# Y; `, u( e
9 ?2 ^" V( C @, O/ `1 w7 x
思路2:
3 L4 V# `! |# o( y2 P- t' u: U. U) o( M6 _8 P# \9 {
我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。
1 c; z d' y, E' T6 H# h2 W- S6 R# _0 F' V& @! [6 q
这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。
7 Z* K2 E" f3 c4 b% S d6 r& D" V3 n8 `+ t8 g1 K5 T% _
这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。
4 i# Z6 A4 U) O+ h1 U$ M0 f& @3 s/ _1 P4 H0 h$ y# S) w
关于边界条件
, K: H& D( ?# a; x8 ?' @1 `! H
* R! X2 A2 c& g' I! ]7 e构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。
" ~" M2 _- h6 L ~4 Q% M" v1 Q7 U( C, ` z
而边界条件的作用其实就是找出你想要的那个解。
( f: @9 ]6 h6 V2 U$ S
1 e1 w! w! M: L8 Z$ W3 Y- G之前文章中给出的算例包含的边界条件是:, g, x+ o0 F @3 |2 o' b
$ q% x7 h/ O7 n( K& f3 H( Q
u(x,0)' r: U, ]( S7 s) p* F. V* s7 g
, A' j" Z9 K3 o- ?
u(0,t) 和 u(1,t)
3 a1 I: x. P x3 a: Q
( }+ _. c3 F3 N: G在A题中右侧初始温度好像是没有的,也就是u(1,t)没有( s9 N0 c, J( ~2 p6 V7 t
/ O; f! \ X7 X3 i6 Y% `首先,你要知道的是,求解需要的边界条件并不一定非得是这几个2 A( ?: l/ ]2 @% l" H
9 ~6 j9 K; ?- Y8 _5 M. T! w Z
但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。3 P f {5 B6 R" M; m
, P- ^' H/ I( [, s5 L
比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt
1 g/ {9 J5 y- c+ b( i
; n' e# Y* v+ s0 m这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。
* {& f' J3 w" C2 @3 g$ g) I* Y- v---------------------
4 y/ h. w0 z. k' L% c* y# X% ]% O1 K Q& C+ o! H4 `( y) D: E
f% Z3 w2 ?7 |7 k- p3 y
# @6 E' g: h5 e3 h; B |
zan
|