- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 564713 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174637
- 相册
- 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题的简单指导
) T0 ?; d& Z9 s0 [! u) H% S& ?0 Y( S$ w6 k4 @6 t. i% v
之前写过一篇博客,介绍如何使用差分格式求解热传导方程
0 Q7 b2 X* B) ?5 x
$ R2 O! V- {+ I& r8 x2 h今天打开博客,突然发现评论区被这篇文章霸屏了3 D5 j; @3 {6 w
& |& y. p$ I% ~, T, {8 ?* U5 r6 L! F
& e8 H+ D2 I# t$ \. p# l3 j& x" S
5 `; R' b4 I+ x) q r$ v6 ]1 ]
询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了# D ? a4 Z2 d+ }2 n$ [
) V$ ~0 ]! {+ D; @经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。+ D, |6 ~5 U8 P& n
% D' s& A/ m/ ?$ q, _9 \但是!5 h! J5 ~" F; B( r: y# p5 C E
6 |* l( J5 b# ]8 k/ }" k6 Y: E数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。
: V# ^, H& j8 F5 b! d6 u" e# R9 b I1 k- H
再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。) ]4 D: {$ ?; K1 `9 I
/ D0 F' @# R' p7 D( ^: i这里统一对大家的问题做一个回答:
' y9 n; F4 T4 ^' ~- V+ l
! Q2 J- I, l( ]2 [8 B/ p9 l本题适用差分解法吗?
" `/ i# U r9 m& K+ I
0 {$ o6 ~% l3 h$ I& [5 b+ @求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。. O Z% U1 }8 S* O/ [8 b1 l5 `% O
8 Z& l, y4 `" y! c4 @/ }差分方法的优点是原理简单,但是只能求解规则区域的数值解。5 ?! P% C* M# d8 l
3 K: p, P4 `: ~7 k4 \) m: X$ k* n
有限元背后的理论相对难很多,但能够求解不规则区域问题。; L5 Q9 r0 p! y$ w
! C, P: K2 P# U3 L+ v4 u5 i本题适用哪种方法解答取决于你的模型假设
4 Y$ ^) ~9 B' W& w
! t. F7 M7 A5 L" P" R* x本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。! B& I) I. n0 o. _0 V& U0 p
) Z' h& M7 k6 H( j3 k5 ]
既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。1 [. W' j- T, f/ K) v- K' @
2 P0 Q# W! E# G5 ~
当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。
5 w) z; ?. Q( j( H9 f
2 p# U% o6 \2 X6 | v4 C# [' E% V是否适用于多层壁热传导?2 B" J. e% p/ p$ Y0 K) F( C$ g
" c2 Q. b, U7 ^1 q+ `
评论区有人问,是否适用于多层壁热传导吗?- ^; v6 X/ Z8 n8 E( `# R
' m& o) d8 r( @" G; t其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~& w/ l" Z7 T- ^& y
( H; | a! H2 C答案当然是能,但显然不能直接拿来用,给几点提示。2 ?- ~4 w+ u9 a5 @2 q
5 z1 v, l3 l9 ^( Q4 _- r* P# T
思路1:
, R( k6 |2 c% l, h
* q9 S, {3 X$ ~4 j6 _% U# _你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。$ n" q ]; e5 O2 Z
+ V! I4 E5 u; Y/ k; g( U因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。
" L/ L- h, j$ `' X! d8 @+ `
5 d. |5 l. K) y这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。/ |) p+ M- K: S) q) M, w$ T0 ^
! k: t% H; [8 B5 n/ w: Z* q. D思路2:7 }5 X9 u9 K: q2 Q* F v q- ?
* [8 T! A/ ~! V6 D3 d) {/ p我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。3 Z8 ^! z. f4 r
9 u, B! u* p; z, U
这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。+ Q: }6 s8 V, k2 L' D
% g& L2 H' W* r# ?
这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。" |) ?8 J J% [
. @- |6 @" t% q! r0 N+ s" g/ |2 p# [
关于边界条件5 `8 U& a+ F! o! k V) R
' z, w$ ~* `- @' D0 E8 i构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。
) m6 s3 h9 k4 b6 @. a
. \* z2 T' e. l而边界条件的作用其实就是找出你想要的那个解。
# W. ?4 Q6 g, t! E) [3 P$ J& R: X( Q
之前文章中给出的算例包含的边界条件是:' N) K$ B' \2 B5 Q5 J& y
. }& b3 X" t! a0 g
u(x,0)
% C/ M3 w8 {8 S! z( A; @
; F5 k& b: N! q" |7 ru(0,t) 和 u(1,t)
' o6 X0 I9 [ l
' D$ L9 N8 c% \' o在A题中右侧初始温度好像是没有的,也就是u(1,t)没有4 k% G+ K! r4 w2 N% k, l
$ J6 \7 C2 y8 {2 Q8 @4 l# y: x首先,你要知道的是,求解需要的边界条件并不一定非得是这几个3 ^% g. y$ d2 L1 I8 Y" d5 c
- M- X$ [9 m2 v# n% b% f) P但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。
$ V' a1 n$ }! \1 p. o/ n; u2 g4 M0 Q; |7 {* p
比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt
u- }. a2 D! l9 Q3 O0 G+ l- L2 _$ X
这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。 P$ y. D9 d; {
--------------------- / F# @* H( ^6 y( M [0 n) C& H0 G$ }
* b, h6 E2 O- N N5 H1 F; v) o
) H9 e7 G4 m: T z
4 \& U ^+ {% s( W; y
|
zan
|