- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 558947 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 173057
- 相册
- 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题的简单指导
5 W7 x- b, e) P' m5 J9 H
! ?; D x! x$ g% v% z; h之前写过一篇博客,介绍如何使用差分格式求解热传导方程
0 ?6 i) q% O( V* r9 m2 P
6 ~$ w0 t/ O, n! G" s. O. G今天打开博客,突然发现评论区被这篇文章霸屏了' w; e9 M, e2 P' [- C. n+ {
; @* a/ H0 A8 x* ~7 {: U" A" R
% z: N- B8 d% ^. a6 @0 B. }
7 D$ b* A8 d2 c: f- Z
询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了
4 O( o- v5 R& S: `' S% `- u' i
, y9 E1 y) j* y* `经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。# C7 V4 U. K% C1 r
, o: w, [& P0 M! i( P( j1 K+ k
但是!2 k4 D4 v, U- s( {1 z
, O7 X/ m$ } p8 U
数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。
1 W! Y: o( _. m! d) {
- X3 U3 x/ @3 F8 Y再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。( z% B' w+ l7 r+ L% B
* r2 _/ }1 F4 |8 p- Q6 h
这里统一对大家的问题做一个回答:/ W: @0 l% V2 Q( f
8 D( o/ P( U% J. S! b- D t
本题适用差分解法吗?
, R3 p( j3 K' ?) C5 k! i9 u+ Q c1 @0 }
求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。( T q9 {" H6 t% s4 [
; K; Q% c( C3 ?: R3 k' [5 @" ~4 P差分方法的优点是原理简单,但是只能求解规则区域的数值解。2 R/ @; i- {3 l V, D2 }
3 Z5 Z3 V, O4 q/ p/ E有限元背后的理论相对难很多,但能够求解不规则区域问题。1 \; m: h- D1 I g: L( _/ t
$ k9 y4 p; R! |
本题适用哪种方法解答取决于你的模型假设
$ Z1 }- g( X- F4 N% p' Q% [$ B! e+ L, M" v+ L2 T1 a$ n
本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。3 ?. r6 P8 B* p
6 e3 s; Y4 C( V. g' U/ g既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。0 L6 U) U, r* S) z
( [: \. S) M4 J" A8 j
当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。# n- k% B6 x( J# r: V; }
2 m) J. n4 T4 B6 _0 L
是否适用于多层壁热传导?
. p! q8 b, @& w- a: o7 W- m# ]' J, `, A U1 n
评论区有人问,是否适用于多层壁热传导吗?' Q" N4 Q+ s1 ]3 p
4 e5 o1 o; B R0 q) ?其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~
, Z2 E: j* m6 \! ?9 P, u5 `
* }& e l& }. v5 X. l+ y+ M- w答案当然是能,但显然不能直接拿来用,给几点提示。
& c3 ~) `) m7 l! B: k
. O ^: [% s( W/ H! k+ F思路1:! l4 p# W2 Q- p4 a3 X9 j
( ?; ~: |: M. F! B6 l; I* S你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。7 K- Y' j; |* k4 ~0 [
! P( X' U3 g4 v9 r& d
因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。
" j0 W7 ~5 c( B/ G5 \( @$ O- G% g1 e: L
这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。; P6 s1 F2 Z/ Z
+ J8 I+ M4 }8 b" E, P9 d' B6 `思路2:
! n# c) v! [: j0 g3 p/ `5 W& w4 P8 L& [- q
我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。
3 b2 t) N! c0 @1 \5 L. L& c- m2 F" Z p" V" v% J% O
这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。
) B+ F5 t6 | x' w4 k5 H) `5 v# U( z% I4 _& I; _
这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。
, z6 w0 T9 N$ t% b+ E( ?( c# P0 E q8 x l# j
关于边界条件
, G6 J4 e; M8 o' d/ Z! e
) S) {$ P( T! L构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。- F8 p/ V4 T! l' J* |. b6 H
" Y. o) [8 P. o3 i: s; K
而边界条件的作用其实就是找出你想要的那个解。
% K6 t7 s p" Z) k- K# q3 b$ Y9 N# u: v# P% ^2 y3 ?* x; q, C; W1 X
之前文章中给出的算例包含的边界条件是:3 @, x6 z6 Y; L! J" @, O/ H+ ~
( U! A3 D2 y, q. w) @u(x,0) B6 M0 c) e! H' g/ N* J* I+ h
$ v% [. i- y; I& Ju(0,t) 和 u(1,t)/ w: B2 J) j" E8 ]6 l
/ A4 }& b) X! u
在A题中右侧初始温度好像是没有的,也就是u(1,t)没有
; E. g7 i3 u' j" U# |3 f, c5 E
, u5 T: Q7 h& c; L# J" t+ q首先,你要知道的是,求解需要的边界条件并不一定非得是这几个
8 C" `* f r3 B% T3 R9 _3 G# N! c* M A8 G& H/ v* k# I( @
但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。
" | |1 O7 M" n6 ~6 a3 S- `7 L' p+ B. G5 Y/ q
比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt
}% W- d; E* W5 Y- E# |& X! e+ S3 Y/ S }! S& y# G/ Q
这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。
5 Z) e1 o( u& C# C. ]---------------------
; s Z" {, {# J( i( z: U+ s9 @7 {/ ^' n w/ d
+ i4 {/ }" x" u1 j" p$ Y& Q, t2 D% l' s) Y7 a( J0 c
|
zan
|