2018数学建模A题的简单指导6 m" u% F! C$ ]' x( P7 I- C0 D* e
, t* Q- O& \+ { ^. B
之前写过一篇博客,介绍如何使用差分格式求解热传导方程, u% X7 a' c. j% b/ ?% }1 Q
8 H# B j5 i' C0 q今天打开博客,突然发现评论区被这篇文章霸屏了5 Q- E% m! {& I. }( [2 j( I. ]
- a8 m' {4 p0 C. _3 M! H
$ o0 g0 y$ S6 i. n1 \, A' T , {; n" V; ^6 N0 U3 U0 B& d) I询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了$ a) U& K) {& c/ Y9 T2 i3 u
5 E7 n. s. V% |7 r v( C- ?: P2 l1 g
经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。 4 p2 ~/ [! E' _( `, _4 d ! ?* N& x' S! }% A但是!7 M/ Y: f/ M* C. h
9 G1 f4 b7 q8 B. T' ^& N5 {
数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。: @8 {$ m) f9 q$ @
5 d, a. ^8 a( T8 h. w8 S再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。 ! K* \: v, b' O 8 x+ ?3 l1 i3 N7 j! w) h0 Z$ W这里统一对大家的问题做一个回答: s' s, g/ M1 g* g) h
/ n' m3 n1 y$ y2 F0 l- P. z4 i/ n) a
本题适用差分解法吗?1 C* h- E# h0 k0 k
1 T) _1 l) A! Y# I& \9 ?! f求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。( \" d, j' S" e- H' M S) T
; x+ z$ \9 g3 \6 {% ]9 l7 u2 K
差分方法的优点是原理简单,但是只能求解规则区域的数值解。6 | t; `3 Z0 l
, p; H0 l9 x" j8 d有限元背后的理论相对难很多,但能够求解不规则区域问题。7 j% Q4 P% h( g5 E
, e9 K3 l- t6 g2 h5 @6 f: L
本题适用哪种方法解答取决于你的模型假设6 Z' W) Q O& i5 J' ?" J
$ [% j" ~; Q( Q, C. C
本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。+ s! \/ D; h6 y: M2 r
1 t5 p2 D1 s7 r1 n
既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。 9 }, r6 R% ` w7 \: ] " v' v1 d6 s( U当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。 & U$ K+ x9 s- k! ^ ! v( c7 P+ c L6 l+ `. a是否适用于多层壁热传导? & k+ w4 e5 ?3 R" v7 W( M& m5 {, {! s J3 S8 K5 |. g' t0 c
评论区有人问,是否适用于多层壁热传导吗?& b5 \3 A6 W9 E T5 v
4 W/ y4 o. v7 {# `其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~1 s# `8 V! I s- }" o# O7 v8 O; x# T
% u+ u7 V! S5 z* ~0 d3 v答案当然是能,但显然不能直接拿来用,给几点提示。 . y8 {- E# F. o. i9 {: \5 Z' e" \: p' L
思路1: a" O' `! J% e) u4 e, @9 z ^* K) s4 n' h& s0 k. W5 ^% i5 d5 c
你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。/ a& K) I' _& e @! A$ b( o
8 T% O. W% S4 c) D5 X' l" c0 l: g因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。' t7 B* d7 E, _3 a4 F
) z3 N2 \8 x. U这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。 3 b' o4 g1 N0 x+ W. _/ Y5 O. R+ J
思路2:' ~- N& v# B q8 o" a, I
. M% `' B% w: C0 V% V2 m. c2 p0 B2 k我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。 5 U6 Q( X+ ]$ ^, [* q( z( B0 O% V/ U* L
这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。 . C/ [0 V. x+ G9 a5 ^ 4 w: Q! F2 K0 k这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。 , T3 ]9 o" F- M0 ^% W% C . I: d& Q4 K9 [( @' ~关于边界条件( O, P# b+ d4 f' d, g4 \ q$ z