- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563302 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174213
- 相册
- 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题的简单指导
: ?$ E3 K+ P Z( b$ T
( i# B% H1 e5 \$ n7 m4 \5 S5 U6 N之前写过一篇博客,介绍如何使用差分格式求解热传导方程
' l3 V' P. _. \: r
& K, ]% r; h* ]/ j! V今天打开博客,突然发现评论区被这篇文章霸屏了
) r6 ^0 _- e. X7 y; [3 K& g5 \$ U; ^5 A: R: z
: K; q- L, H8 s
2 q) T* }" t# i+ O) D E( C& Q询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了* o/ r3 `. p" l: X7 W
9 N6 U x Q' [, ?
经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。
. b3 Z! V( C1 @: Q" r. D' D8 Z8 X& e% k# u/ s
但是!. { o! H4 m* y7 W9 N7 l) |
- J- \& g, ^: z% _数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。0 o; r1 B: U( w! S- {. a
% S+ X% a+ S/ e8 R r再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。) I- T2 [5 P4 {. D" W
7 d# ~7 O( F, L% ?6 i. D" h6 g0 y这里统一对大家的问题做一个回答:8 [+ }& {- m( V: n
% g* Z" T) R9 X. e6 z$ b# X( a, P% G( M本题适用差分解法吗?3 [: }5 z- X* G& r5 _4 u8 F
" [. M( `( |* O2 H4 e求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。! T: G/ c) ?+ W$ e2 d% t
0 Q# d9 j% m- F7 {差分方法的优点是原理简单,但是只能求解规则区域的数值解。& Z% h* h' q. p( L% I! S% ~
9 K; U- u, n; Z( R) v: E
有限元背后的理论相对难很多,但能够求解不规则区域问题。2 J* Q, b; g+ k w
& o* _3 d: U P! J6 Z
本题适用哪种方法解答取决于你的模型假设
& y1 R; n2 }% h% f
7 W" L' h1 B( } w, Z5 W: z本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。
, b- j& Z" Y" |& f3 ^+ M* G+ e- Y4 [% A, e0 y! R
既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。+ }" m6 K0 H- @+ F
9 F3 t0 |) g7 R$ f$ h# a当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。8 ~$ T2 q) i } u; w
4 G" w3 z6 U+ h7 d Q+ ^. B9 O是否适用于多层壁热传导?/ S# k5 _. h$ Q9 u: V3 j" H
: A# n+ D6 V% S Z. W* U
评论区有人问,是否适用于多层壁热传导吗?& s& M& a m, q% {
' s: `0 i! h9 i* n$ Y) W% o$ W+ A9 X* V其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~, _5 j0 i7 U+ d( d( |
( B: @" U" p! X: N& D4 t答案当然是能,但显然不能直接拿来用,给几点提示。 a6 r( m: ]9 f% ^8 s
! s+ o+ `; P5 C% q; h
思路1:2 ]* A3 X+ A$ O6 R
7 O! `5 R* `2 H. P8 X( Y你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。- B1 Q+ P+ m' K A
+ V$ q; H2 t6 f6 S( B9 s因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。
3 v6 f0 u- [4 ?9 E; b `, k' Q. q7 A, r9 o
这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。
3 Q& i3 q7 x: T; m, X3 N' W8 W! W: Z
思路2:
, q' `1 H6 W- z( O) u% T. G/ T" u' J7 Y6 }: R6 n( r0 T
我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。
: Q; a( G$ ~0 i4 y# c0 u5 c+ Z
; s& i# t" G' x4 c1 V) c这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。
5 \8 G( n) i9 ^/ ?6 J; a' S3 x# v; H. N. T+ Z0 J& f
这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。+ V3 U5 ^5 ]3 l
% q3 C& A6 ]; g; R- J; O& s6 s
关于边界条件( }3 H6 ?& |. g2 y8 V# c P
/ E" b2 M, m* ~" R( G. B! G
构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。
: N' f; T' O& g: w0 A" h4 u. {6 G9 c G. l- r. p) E
而边界条件的作用其实就是找出你想要的那个解。! |# b N. B6 {
" ?5 M# k5 [/ z \; W# _" s/ V之前文章中给出的算例包含的边界条件是:' A2 R) Q3 O! O. `* }
2 v3 w4 G& e+ P; j5 ?0 o$ Yu(x,0)
, `" U8 ?6 ?' n; I' F! X: n# x; m2 S
/ h0 f( y. U8 L; _& Mu(0,t) 和 u(1,t)# _* `9 B# v8 t3 s+ R
$ O* X( m* \4 j. U3 t. I
在A题中右侧初始温度好像是没有的,也就是u(1,t)没有6 M3 V; H: X4 z6 X( w S: h$ r
6 V. M1 e% y% w! z' Z/ G# {
首先,你要知道的是,求解需要的边界条件并不一定非得是这几个/ M" K# X; Y+ |# E, M
. ?) u* ~# g' j, ?; z但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。( i) H) z& ~6 a6 B; W
; G3 n! q0 B, N' B
比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt
- x+ T m7 W. u9 g8 V0 q8 O1 J/ x. K+ y# ]
这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。' Y: J1 e$ N/ O8 |" ], V5 f. i C
--------------------- 5 K) N4 E. U( x' p$ D; y
+ i* M( c! F/ p5 f5 q7 W/ |. t/ K3 O6 y/ g. _' S5 S3 G4 s
, l' [( x& B1 c' j8 |+ a8 k |
zan
|