- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 559098 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 173102
- 相册
- 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题的简单指导
' _" c$ u7 Z& m [7 f/ g. L/ K9 [$ O+ J4 `8 u
之前写过一篇博客,介绍如何使用差分格式求解热传导方程" s3 D* I( n% Y
: d; c( r2 f: |+ w4 J0 G2 J
今天打开博客,突然发现评论区被这篇文章霸屏了, q" F6 |3 x8 e2 {8 i7 p
' m0 I/ n# h- b4 |
7 B7 h$ b7 Z( i
) U! I6 I, V \6 i( K询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了- ]. e" Q" r" M
* ?) m& X, S# ^$ W. Q
经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。, n4 Y# y$ L, ?. L& r
' c2 A" T2 q r! C
但是!
5 ^; Q$ u! O" C) c" o
4 F: A& H0 Y- `0 j# z( g3 O4 T F数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。
2 o3 J/ j* x, h. m8 t6 V6 T6 i+ A% L! X
再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。9 l6 l* B F, K: Y7 k9 B2 `+ [
|8 v+ V: f$ u# e$ C8 G/ n这里统一对大家的问题做一个回答:
$ J5 A6 Y8 i' m6 v3 w$ u2 r$ W2 j0 J1 e" J- z# P
本题适用差分解法吗?
: J) V- [, B1 g# S2 i Q% V: R4 r+ B0 ]& n4 X
求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。
" {5 A: C/ P" o$ U! {" L7 Q
" a, n, i) x2 u0 I. N差分方法的优点是原理简单,但是只能求解规则区域的数值解。( c0 }0 e' ]8 o
5 q8 F( _6 J/ w! ^% h有限元背后的理论相对难很多,但能够求解不规则区域问题。
9 Q2 f9 t, z( r" e8 j2 x# ?9 `# r3 r
% F. M( C: ?" j; X( x本题适用哪种方法解答取决于你的模型假设5 S6 R8 |+ q7 h- j( V* I
% [& K r0 \; g! X$ R/ G \% |
本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。- i, V& s* s& ^! \% z
( J7 B c5 ]9 J5 X6 G
既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。* x: I5 [* @! u9 [( S# ?
/ s2 a3 A, W% w
当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。7 o2 _) L V7 J. ]9 R
4 I) H' B. j0 x
是否适用于多层壁热传导?
/ i& o4 C# M( T7 O6 f& E, n% ?3 Z5 r: @% N* d4 a
评论区有人问,是否适用于多层壁热传导吗?2 N8 O9 L6 J# o7 t1 Z
. E3 b9 k# N& Q3 @! d
其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~2 R" J* b$ A4 c$ n
. m$ M) j% g+ b1 H( [
答案当然是能,但显然不能直接拿来用,给几点提示。
7 h5 k2 [/ _' B' k9 U7 {5 @5 B
( n, B9 y) C% d2 y7 p& D& E ?! q思路1:2 V: Q3 a4 p5 |5 `6 I* F! k w6 @
. P+ F/ z( a! X你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。( e8 b" K6 n; j
: }) }1 f W$ @
因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。 m2 L6 ~ ^. o6 E+ O3 i) a2 N; y
- |& u: {! a0 K
这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。3 Y7 B) L q# c2 X. v% v0 p
$ T4 R) [' J/ m
思路2:) J4 @0 V. k* x9 o2 {$ w
9 E! n, Q# a3 @" _我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。
1 `( _5 K! R# h+ ~7 u6 X. I
7 M# U1 K+ o1 c9 E7 L7 B- W这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。0 D" ~4 Q2 n6 M3 `! i9 [& W6 B
" ?. E4 u2 b! j/ h" s
这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。
3 p' S, e7 \. h9 D! R$ w( E) B# y4 b7 e d9 I
关于边界条件
3 M! s: N, j2 d9 \6 w4 {, k* C5 ~. H0 B* S% |0 G2 K0 o% N
构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。, ^$ @4 l- D% w8 l( \) ? j
5 A6 b& [8 n; m; U. L- z" K
而边界条件的作用其实就是找出你想要的那个解。3 k- K% ~6 r6 q5 J- u. x6 ]
- R2 s% s( ]7 @1 t; f4 ]2 r4 n之前文章中给出的算例包含的边界条件是:
0 x5 H$ s @8 X) G) }! ]4 a' C% W# O& `& h
u(x,0)
q5 `2 t. m$ {! {% z+ t& [4 q& b$ F n, f& i
u(0,t) 和 u(1,t)
$ K+ h7 y$ J2 R: T9 W6 K+ x
2 {7 o) {, R% {* b6 C8 d在A题中右侧初始温度好像是没有的,也就是u(1,t)没有
" b! c. W4 H4 T9 g) N+ E5 t3 `
$ ]$ |# Y4 t5 K* p首先,你要知道的是,求解需要的边界条件并不一定非得是这几个2 ]: x& \; B3 K& Y
7 n( t2 ]2 v% @/ c3 o) I2 w$ L
但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。
6 K$ i2 k( ^$ E- e# S
$ K4 h9 u2 R6 b" a/ v c比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt
% R8 A$ ~4 d* M$ \
2 e$ `4 s( X% G2 G这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。
! I5 ?7 Y1 W4 N' K8 [8 k--------------------- 7 |" s; t7 S3 V! j- A
/ ]" z7 H& q+ t; t
3 B" i" |& q* o3 E
+ {4 Q) _4 \3 j0 S, O1 Q |
zan
|