数学建模社区-数学中国

标题: 2018数学建模A题的简单指导 [打印本页]

作者: 杨利霞    时间: 2019-4-6 14:23
标题: 2018数学建模A题的简单指导
2018数学建模A题的简单指导$ z8 I& B( g- p. G

+ I+ d$ h: L8 d之前写过一篇博客,介绍如何使用差分格式求解热传导方程' P1 v5 V4 L0 T2 G! A- j% L7 P
7 ?  Q8 [3 e# X2 o# D$ r3 @
今天打开博客,突然发现评论区被这篇文章霸屏了: D8 @5 {. e) ?" i1 W

. e# S9 a3 Q( U  E! u1 F- J0 w( T
9 a& k4 |; p3 o+ G: z) H' T# L4 Q8 z% L4 H% v) ~' _# T
询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了
. z7 D0 `" y# ^) z1 Y+ |6 |
4 S" z1 M& h* i经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。
. y: R- E# y% m+ T+ n. i6 M' A, }
" K6 I+ c+ J. _/ m但是!
1 D( m, u) L' X3 \% f4 j: {& {- k2 @8 F! c  Z3 a9 M
数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。
' }, Q  f) m  D$ s0 m2 I& K- w% }# A% [* R9 K5 @: }% R3 O* [* J
再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。# P: \' r* X: a: a9 R

  b. B- u5 O0 {这里统一对大家的问题做一个回答:) a. @' R7 B3 L* C: ?
5 u* L: i' \4 y; p. N* X1 D
本题适用差分解法吗?
) A4 v  f; b/ p, K) y
0 R, V' e. y  b4 h2 ^2 M求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。9 [0 m% v* ^: n* {& Z
2 L8 k  `9 r9 R! c. C5 H* m* v* o
差分方法的优点是原理简单,但是只能求解规则区域的数值解。
3 d- S+ S- r& Y7 i' l# L) ~: d# u
$ D+ ~4 H9 U6 q有限元背后的理论相对难很多,但能够求解不规则区域问题。
: A2 L8 p* L$ T6 f2 X. S- I6 O. D
$ V  ]9 v' @( |1 v) \( s. f+ i( R* r本题适用哪种方法解答取决于你的模型假设
. p/ P1 E, H* O$ X% i" z7 X9 \3 T
本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。, T& N; D- F' R) ^1 m6 m

3 \, Q+ e1 C; V% M既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。
, \4 o( B5 C& w0 ]( D0 n' H4 ?9 f8 Q4 R6 ]% G, Y- K) |: _
当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。5 `8 a- n3 F* x9 I5 p; r
, ?# P6 k. S9 _" Y8 m- x
是否适用于多层壁热传导?
# r# ^+ j) v; `3 z0 q7 Z. ~" k
0 `3 e; Z: w$ b- E7 W评论区有人问,是否适用于多层壁热传导吗?3 J3 B' y/ ?4 v7 z" b

( u7 L) J8 F( S# o1 \( ~其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~
6 _4 k" `- g# @: k6 N; ]- G- S* B$ J% S/ ~6 g
答案当然是能,但显然不能直接拿来用,给几点提示。8 Q  a3 q! D7 V7 ?8 n# n
  M: U2 [+ N9 G, G. g' P
思路1:% h6 }0 |9 e7 @) Z. ?5 M
/ P7 x: H+ m1 y$ M& \4 m
你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。6 G, v7 j, {6 X* u' a" u
. @; p1 n8 ~" M7 j- E; [9 K7 Q1 @+ o
因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。7 e( c  }- o  K. |  T9 b% \

# v+ e3 c' t4 D" u这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。! Z9 @& E( ~- d2 S# M- ]2 u; C

' r; ?; x7 t! T3 m$ b! w思路2:
1 D& G$ r( K' b" X* P  [: ?+ s$ W2 l4 e
我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。. r& Z2 Y8 P! Z3 d3 u2 \; X

' x. }/ a. _2 C这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。- F- n5 P, U& N% w7 U/ m
- f, s" P. d- @, G7 m9 M
这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。0 K+ ?) [9 n9 m$ g! y
3 z; y0 k. M- \  i' q) }6 t  A
关于边界条件
6 g% f, N' M: k8 a. I
' w4 B" l) k! n: m. [8 n构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。
4 B- [" r: F6 f& k+ N4 @6 [9 K$ ?: u# G
而边界条件的作用其实就是找出你想要的那个解。
0 m8 h# W. V# j# m. ?( p  Y, W! Y
之前文章中给出的算例包含的边界条件是:) G$ B9 J! a& R* c" U

' f# r* i5 l# S1 L7 N9 Lu(x,0)
0 B5 O) C) `: H
5 e# ?, G6 \, v% ~! E0 wu(0,t) 和 u(1,t)# \2 K( X+ i5 S+ r1 ~2 K; h5 J

$ e4 N4 I4 X) `0 [( x在A题中右侧初始温度好像是没有的,也就是u(1,t)没有
& r, L5 d4 P# T4 F) E; t
* @% ~6 h8 p, y' x2 U- s首先,你要知道的是,求解需要的边界条件并不一定非得是这几个. B; D4 n4 I/ J. M8 X, F
5 K/ H3 V: ?5 b! x) p7 m
但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。; x  m$ \! x- L( z0 m
1 q1 z# e$ E4 F1 t
比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt
: r$ ?+ y0 B# u, s" [2 O& z& c' q; F! H1 |  R  ~. R
这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。
/ H/ y6 ^$ ^$ f2 @! c3 [1 y---------------------
6 y& |3 D- b, v9 ~6 f6 z# M, M! W1 U, q* M* i
2 |# G: s7 a. o5 [$ F

3 L" l& \$ S5 I




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5