- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 567259 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 175401
- 相册
- 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题的简单指导, d/ v3 z) r I9 _& T
8 C ~) }, M4 U之前写过一篇博客,介绍如何使用差分格式求解热传导方程
2 C6 s w9 }, V4 U) k* B3 F
7 n8 c: T! M: n今天打开博客,突然发现评论区被这篇文章霸屏了0 _: ]; Q- p% R7 o, h
7 ^ h o! k* [' @" _% L0 O9 `) Y) ^* v1 h0 Y+ u
; F$ J/ x/ q! B' e7 s) X A& T0 ^2 M- S询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了( n8 d- T g |& f1 m. s9 I
& d$ X2 ~) z8 V' z3 d
经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。
9 G5 D6 B" @" }# D* `2 l K4 B' L3 H) v3 Z+ r0 t; @, }
但是!+ Z/ L C( r: m
, A0 O: A6 u& `" s/ O: S9 d+ k6 {. t
数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。
6 W1 R) e3 U' J4 w" H6 T! n- K, m$ v: {
再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。1 O3 [# m3 ?0 n# t0 }
/ l. I( G) N3 K1 p; ?. s, E0 [$ A这里统一对大家的问题做一个回答:
, J1 @! ]: @$ ?+ |# L1 K+ F
9 K2 i: `& J9 u5 h/ b& I \本题适用差分解法吗?
$ g8 B; H- }2 w/ r; _. U2 @3 M) w3 V% H, h: I6 u( }
求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。
4 I# V& f. Y( o% B1 h8 c3 A$ n- G" z9 V
差分方法的优点是原理简单,但是只能求解规则区域的数值解。 |7 U2 Q2 p3 l( c
$ r$ F; K' b6 [( t4 x2 z1 t有限元背后的理论相对难很多,但能够求解不规则区域问题。
+ W5 u7 R @) [* F9 w: [' E% L1 p1 T# e( V3 L* A# P
本题适用哪种方法解答取决于你的模型假设
% h" |. }5 U- k0 f* X0 n( P
4 z) s/ R5 I2 Z2 o% H本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。 D% ]$ C* J- O, n5 \0 n
' X. k7 W" o: U$ ?. M既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。
5 f9 `3 `. J; `- s3 t; q! z1 ?
# O) _! l. i" t当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。( ?4 G' i. M: L6 I( }7 N
6 R; `- i3 N7 ^是否适用于多层壁热传导?
' E5 ]7 j& ]( M, H1 J) _% z$ L& n8 o* u( y
评论区有人问,是否适用于多层壁热传导吗?
+ V, g% M+ e; h, d$ `* S3 f3 t" h, t/ W8 E
其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~
3 g" ~0 [$ Z! A. g& t& H% ?2 p7 X' v( S7 t% C# b. r
答案当然是能,但显然不能直接拿来用,给几点提示。
. O w3 P. d4 _7 h; m
& C- b# o* P' G. j- f思路1:" J5 {* i* W; e% m+ b7 |
! g$ j7 }. G6 o& r9 X+ K你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。# G/ R) [' q. `, k- F7 U
7 [4 V% D* j5 r
因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。
+ @. x5 c+ f. w3 Z X" r$ g$ G
! O" U. r" f' J+ Q% z! w这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。
) m9 A) b# N/ k) ^' W' ]0 o& s- B% q: D: \& }
思路2:: ?, }7 V* A7 Y5 d. F9 t5 j
2 k0 Y4 ^1 G k$ b! D我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。 u' x' n: ^: v5 l* }
' C5 o7 a, p% `- D" q这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。9 ^0 Q4 {8 @& A! N+ k S
Q9 n+ z( B- }, B
这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。* k- [( q+ M* M- B
5 k" P' l; v4 p* E ]/ f. b; q
关于边界条件6 G, R3 h2 a4 K# @2 q0 B8 b7 n- m
4 e( J9 B- }, _8 Z6 ^% `4 V7 ?9 t构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。: T: b! W. d/ c" a- r
. j- q, l- B; ^/ k# u而边界条件的作用其实就是找出你想要的那个解。0 b6 E. t- s: `/ C
$ D: V* r, G. y& A) C( U4 S/ U之前文章中给出的算例包含的边界条件是:( ?; p# R- ^; N7 Q' A, W" j1 V7 F
+ u3 \3 u1 @2 U# X$ S$ F
u(x,0)8 A, { E6 ^# i6 f# J$ ]* x9 G
$ p1 u7 m' P' O' o+ p: t- ^4 @u(0,t) 和 u(1,t)
. m h+ l; o& D z; Z5 c4 [" W/ M: e5 h
在A题中右侧初始温度好像是没有的,也就是u(1,t)没有
. d2 \7 K7 B; o+ c/ I
8 x) d% z8 Z; }; f首先,你要知道的是,求解需要的边界条件并不一定非得是这几个
+ c( U5 U8 O( D/ T0 t
- @6 d! f$ N( @2 |7 C. F d% a但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。4 F' ^: x+ M) U |/ ]
0 \. E5 U! Z o# r0 \& _4 R6 L0 N
比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt% p- j6 W5 h; U' E: [
9 ] Z# E9 U* z# C, a这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。
- O; K" @1 j& M- r8 Y--------------------- ) c2 v& `6 Q* W) k8 e* B+ j3 D
$ A6 k0 S( s, z4 R. N! L9 l
* ~* k4 m1 ?6 a4 }4 {9 n2 {1 K6 g ~! u
|
zan
|