- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563416 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174248
- 相册
- 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题的简单指导
8 ?$ _( K- Z" V( \8 {8 F7 |) u+ q B9 T* Q6 _6 Q4 P; ^# R4 X( _
之前写过一篇博客,介绍如何使用差分格式求解热传导方程# Z& X5 C+ Z' m3 R4 Q; ^ M5 T; c
1 e) }4 F* Z* S9 U6 o# [, |* O今天打开博客,突然发现评论区被这篇文章霸屏了4 U( Y% N- \% j* f1 ?4 D4 B! h3 \
' A; h ]7 T5 G; a! Z/ }, t! [7 Z) W3 r( F0 S2 {
- a8 S+ M9 M- k8 q" F5 Y6 f G# D询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了
. }# g6 {) [) o0 {9 b7 X6 h2 F( O) s/ O4 `
经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。
. l9 N1 i3 E& s0 f V$ W7 f9 Z, \$ o- h! u
但是!
, l, \( e+ D1 X
/ P5 T; _! n9 g+ [0 @7 l数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。
8 v9 \) g8 y: k3 e# V4 p; Z
% L% c0 X* v k+ d8 x) ^. C再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。1 Y4 i# V3 C( w( D/ d" Q9 e9 I
, K' E9 @; Z& B) ]5 y6 w5 _2 T这里统一对大家的问题做一个回答:, s3 b2 v) s) R8 W- H; }6 u% b
* ?# p; d& f7 K0 T8 c( A8 J d; G
本题适用差分解法吗?7 ~7 n' L0 ]# G. c
( u+ |; | T: K, z( G! L3 y1 T求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。
1 m" I! W: i; c6 L. U) n! q' C6 w. o. f
差分方法的优点是原理简单,但是只能求解规则区域的数值解。3 o* C) i' M" ]. D5 U% D6 B$ f
5 r! w9 V2 l0 j8 [8 q
有限元背后的理论相对难很多,但能够求解不规则区域问题。* P+ A$ ?+ \ s! p2 i
; n/ n8 o$ a6 Q% Y8 }本题适用哪种方法解答取决于你的模型假设
/ @9 `6 T j5 d6 A$ _% {- y
0 ~; t* H6 {- ~' M- r8 j* [; _本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。/ F6 _+ W ^$ i- A$ b0 E
$ \( i' c" E" Z' v3 L" z既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。
3 R" l$ ?1 R; ]5 [4 a! g* m7 ?/ u+ K4 d+ |
0 l0 A) B& T! ?当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。
, O* O: x2 `9 h5 J. ]: p, B
5 y5 w6 _# ~3 E4 V是否适用于多层壁热传导?8 I3 W( U2 b' Y+ O, G: C. B
: P- `: I" K# D5 R, {. A* z4 v" @& K8 S
评论区有人问,是否适用于多层壁热传导吗?. ~" |- K8 F, K$ t& J
5 I: Y& j# i$ g$ e2 a, |9 d其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~; L6 d/ n+ i: h* {+ ~; h0 c) u! X. G
* n2 e, I6 ?! Y2 W) S
答案当然是能,但显然不能直接拿来用,给几点提示。* O: R4 ?2 F5 s$ H) M, L
" t9 P0 J4 S) X# H6 a# z6 [" B2 i2 B
思路1:
2 P% J& R5 q. F1 Y# t' Z1 H3 z4 M, C0 K. j s4 s5 C! Q0 b8 \ |
你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。
. w0 c4 z# l% h6 p5 D! B- j, Z1 F3 Y" k$ X6 d8 A' ?
因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。/ h+ L3 R7 z5 x- N
. }) V9 l; p' C5 q6 @这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。1 g2 w- x' T" N: ?! _- P
. V6 y, B/ D! |6 @5 W( e, C0 t6 Q0 y
思路2:
% h7 h( T( c" s3 k7 h( ?& |
: W4 B1 ?. h- e* S% k7 B& b& X) o+ Z我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。7 O# r7 x/ a0 _# f6 B
Q' K+ e$ V+ {& v, `, ~9 X这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。
4 a& g* a" N, g0 P6 \
) v, T6 ^2 B+ h0 s/ \这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。
( z4 U" w0 H& C4 u7 X' j& `1 x( b
关于边界条件4 B) E" [ X) a/ w1 ^6 O+ N; c
" t4 L4 j5 ^) o" u. r5 H* n
构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。
& ]1 J5 N% G |$ V' O) x: m. o
$ e( r! A2 T, V而边界条件的作用其实就是找出你想要的那个解。+ ]. f2 T! Z4 c
2 q. Y$ U: R ~6 Z4 [之前文章中给出的算例包含的边界条件是:
* o. B' _0 W3 w( f; @: y
3 S) m: O. ] C* e8 x( Fu(x,0)/ G. a1 A4 n& U0 D
& K3 m$ T" i9 V! |u(0,t) 和 u(1,t)
7 o8 M. K+ D* x/ I3 w+ T6 y& T6 W5 Q9 g% f1 S# \5 U
在A题中右侧初始温度好像是没有的,也就是u(1,t)没有) `; ^3 e' S1 m/ \2 R: D' F
3 m9 S+ P0 R( B0 O" u/ O
首先,你要知道的是,求解需要的边界条件并不一定非得是这几个9 ], A/ X8 q# I
! }5 ?) c6 o# c( M但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。* F* h( {" W+ t7 w' j. C
" O. h# V) ~1 o! D+ g9 w
比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt
' R8 `% G( k/ w5 n" ]- _( x8 U; _' g) X9 W8 }3 ]
这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。
( f& t% `. S5 o& ~3 e# ?--------------------- 1 X4 Z& ]7 F* \% P# l
- y; Z/ E$ ^, [( {
3 z0 m$ K7 O/ ?6 E: B' H' j& }4 k9 A7 F/ I" i3 V" p4 d
|
zan
|