- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 567263 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 175402
- 相册
- 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题的简单指导6 f: E; H6 D4 G* s* O/ U9 }
/ \+ w/ w: |, {+ y$ w* Z% t) A% N之前写过一篇博客,介绍如何使用差分格式求解热传导方程
- s' s. K% J' n
8 R( N/ B9 f3 _$ t% [今天打开博客,突然发现评论区被这篇文章霸屏了
: Y3 P6 }% j0 d4 C
% I7 \; t L4 A; y6 W: ^$ `* ?9 \! A* x
. m8 v6 K8 I) X3 k" K
询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了2 Q2 D( [, r4 |( C0 E' K5 _/ p1 K
9 D) d6 |& D6 K- m, l K经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。- x( H% J9 B$ A; `# r- ^$ k
0 x) h7 C8 M% t3 o. U- ?5 ^但是!
5 b& t( Z2 |! k% M7 [# a; F
: \. q: h5 p( p8 v数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。! s" J o4 K0 k# j% P. o% J
7 h t" |) n! }再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。5 C; {# i* s; u7 q N7 X" |; e
0 j; O3 s$ [7 r0 w3 U: ^
这里统一对大家的问题做一个回答:9 t& F9 w" x; f7 O' _: t) }
7 V2 ]( L+ I& O. F n' k6 Y/ l/ r本题适用差分解法吗?
8 Z, q; ?* d6 {2 r, f8 a6 j7 w' z5 {0 t# v, e7 I6 H1 l
求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。
* S9 X* P4 C& ~( v) Z, k. W# \ [& X2 @4 K9 T. s7 j! N
差分方法的优点是原理简单,但是只能求解规则区域的数值解。1 G& B5 j; k: S; u
. z/ E& Z/ y* g7 ^& z3 K Y有限元背后的理论相对难很多,但能够求解不规则区域问题。
- d* t9 ` D% j, Q; k# o& m/ m( d* ]5 V! V' A
本题适用哪种方法解答取决于你的模型假设
- p1 I' Q3 p3 r3 Q
/ a! S, F/ n9 U: ]本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。
6 B8 N! h: T3 |- S1 C8 t
( a1 v: T4 C1 m# ^, T; N( D既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。( Z& P( J3 `0 d9 F
3 A2 @- p h. j9 n2 r7 ^
当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。; z0 ]2 E5 X2 j# G7 g) b
4 v( N: O. E% i6 t ], L3 P
是否适用于多层壁热传导?
0 t6 O( }8 s o7 r8 { s% Q0 [' v% J y9 p
评论区有人问,是否适用于多层壁热传导吗?
% u2 X+ s$ n I. q q6 \( q
- R! {$ N c5 n9 C5 g其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~0 O6 |1 `% G$ d) {
' d0 u f0 r) ` l" g( v. o) y+ q, s答案当然是能,但显然不能直接拿来用,给几点提示。& [% v$ P+ Q: l- L
) A+ V; C$ @( Q) A0 c思路1:
4 t0 A' o5 ^5 V; B0 k n: j; ?9 `# c/ a
你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。6 @% H" \3 v* `& N
. ]- t8 w0 s: Q2 M4 J$ }
因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。7 k* ~' m' \" w' {
) ^) Q0 _: g! j' [! A& y5 B n, x
这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。
$ d# f) y& Y, C* |: f+ Z& v& p" l0 ~! T7 l
思路2:
- [) y7 Q9 a0 b' b2 x
( }, [1 A2 T# t, F& s我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。! s8 h' a+ K, A' K( b' L
( v/ W! v3 x8 T# r' I5 }- R
这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。
3 L! F) J$ K' Q9 h8 P; {
2 U9 e: X; r$ h9 t& u4 N7 H这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。( h0 D! B2 ] m4 Q
3 n( f; s# q- j: C' G( t关于边界条件
' V" b" N" I% A
5 N0 O% @; E* i4 h构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。
' {# A+ M) ]: w$ \$ T! j5 ^4 c! ?8 ]* i0 t3 q$ M
而边界条件的作用其实就是找出你想要的那个解。
) e, u2 H1 F p6 f
! W: }* C. g9 N之前文章中给出的算例包含的边界条件是:
+ O/ l$ R8 y) z- X5 q& F8 ^+ G( L
# `. z( e. O) i3 }$ Z9 hu(x,0), W! S+ m- ], F5 G; {, h/ }& b
) [2 w5 b9 y6 e4 u& }2 ^2 W, l& ?
u(0,t) 和 u(1,t)
# J# y! b8 ^2 u+ b% e; R
; Q! r; t/ R- M! a# C1 `; ~在A题中右侧初始温度好像是没有的,也就是u(1,t)没有
# `" O( s( i, q3 t4 F0 G) b+ B8 @
5 ]' O( Z' m2 Q1 {) z首先,你要知道的是,求解需要的边界条件并不一定非得是这几个" g# w8 u3 g' S6 a. C, r
. v, @; q8 L9 h# Y
但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。
9 {1 ]4 L6 |2 Z3 u8 H w' t! l
/ ^6 X& i- g9 J! g$ j( s比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt
9 k$ Q* n7 K! s
1 h) `8 M' A& D/ G2 _! e% C( b这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。
% G4 V5 m0 b' W t7 P6 ~) Q2 r--------------------- ; w; b+ S2 W. q4 ~ [; x% }
: m/ `7 n% D- E" o% C* v# l, g' @" m
, A; X9 e! M7 X- z0 ~
|
zan
|