在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 565640 点 威望 12 点 阅读权限 255 积分 174915 相册 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题的简单指导
' Q! k* K. X# i( T" W. p; ^/ x
n! a* ^4 G; ^9 \ 之前写过一篇博客,介绍如何使用差分格式求解热传导方程7 l; X$ a6 ^( ]1 O# N. s5 L
/ ?3 Q) l; Y3 \6 M- b
今天打开博客,突然发现评论区被这篇文章霸屏了% w- ^6 M6 w$ C/ U# I8 P
& W4 u- t7 Q! ~) L5 W , R D# ^/ u [ e8 F
! J+ r2 H' W7 ]* O' f6 Q- d4 R 询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了
4 X& m% Z/ J0 \& J+ x5 ^
3 h1 `- J" }% P6 E 经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。& R* Z: \2 N" C0 v
: L& |& z( Q; k. }+ m
但是!+ B/ a/ }- E! t, K @( b; k
1 D8 h) j# C2 o t" c4 G. d) l 数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。7 W2 w2 ?' d, |& E. R e, S
( s O" P2 w1 H2 b4 u" O1 N 再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。% q3 n/ c K- d
$ t' N, V' N3 i4 X1 F* ^ 这里统一对大家的问题做一个回答:9 |6 h% P6 G6 F" g+ P& @7 c
% G) } v; i& A- v _ 本题适用差分解法吗?! K% ~' o- r8 G0 H! a( O. s
/ F" y3 J5 \- f$ c$ R: r' O& A 求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。5 S6 P, k4 Z8 K
7 |' T7 z/ [2 }5 y6 e
差分方法的优点是原理简单,但是只能求解规则区域的数值解。
2 c- K+ v8 c( {7 A# C2 E |) q( w
- R# ~2 p3 p% D8 [ 有限元背后的理论相对难很多,但能够求解不规则区域问题。7 Z5 n0 y% x9 \- J: Z2 |
9 [) A( ^& K0 ^1 {* W' K' ]: M 本题适用哪种方法解答取决于你的模型假设
- I, i( x& j8 W. o" d4 M$ q$ [+ F" y - u _8 \3 U T4 B
本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。' T N! D2 C M
* l6 p8 m( E6 f9 W9 r6 `' A
既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。
8 H. S; Q: F0 g/ P8 m# [" _/ V ( d2 r; x) [1 A, {( x! l
当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。- u) a5 s: j. D3 ?" M
% L) m9 k& I8 z% \/ Y6 a 是否适用于多层壁热传导? L* h- [ s9 c% x( E- l# f
, r& ^, l' P" ? 评论区有人问,是否适用于多层壁热传导吗?4 r. V6 m2 g) v: m: _, S
/ k. ]) O9 [3 D8 y9 B: b 其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~
O/ ~1 H! F S7 a! Z , a" Z4 V( e5 o# K; A7 ~7 u% w$ m
答案当然是能,但显然不能直接拿来用,给几点提示。
- H" n/ W& p2 l 6 H2 h' t# K: i0 @6 n7 ?
思路1:) s: H# D/ J7 Y' Y; e
. G5 l) j2 k& d 你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。
# `0 _) q0 v% k+ t* S 9 p: m3 B! O5 V/ r/ Q
因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。
5 n+ l- Z* B9 _" ~4 |2 d" s% Y U ? 7 t& Y) [5 f. j1 g& \9 j/ ?! r1 g2 a
这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。
9 O- v: J: [: d$ }! z
- i+ {. ]$ H1 x4 b- i/ q 思路2:3 }9 r5 `1 a" N: U! H5 o) L {
% L, X& }' Y4 _4 k, V& v
我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。" g9 |# {) J) k
$ s+ @: s2 t7 z- q
这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。/ b& _: y, C- e' f1 r
6 r1 S$ H3 o# \: m; X 这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。' A: I+ ^) Y5 l9 X0 e% n+ s2 t; }
; O6 K& S" L7 S+ r" W 关于边界条件# W) _ F5 k/ }: ^5 B
/ ^7 U% J h( A8 N' p% T! H" y 构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。( `! \ L$ f% ]& r- w: r$ x) T
. O9 v' A; @( x4 A/ U1 S
而边界条件的作用其实就是找出你想要的那个解。
4 u+ ~! m, y5 P& b1 Q- o 6 P6 |9 F6 [2 c1 o
之前文章中给出的算例包含的边界条件是:: }- l. |8 J+ i3 }5 ]
: D2 W9 H4 u2 V/ T
u(x,0). x2 ?- ~' y9 N% @
0 R/ P9 p2 \! t7 U' b" K% t C) s
u(0,t) 和 u(1,t)
8 T: Q' H6 e9 D $ I, A* P3 _: u
在A题中右侧初始温度好像是没有的,也就是u(1,t)没有7 F; l$ V1 J+ y5 q. w
/ S) Z' X7 G @ z2 F 首先,你要知道的是,求解需要的边界条件并不一定非得是这几个* ^; p1 c* n: B6 |9 w( o
g8 w1 Q& [6 H: j6 C 但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。2 O* y3 P( N8 ?# u: p6 A( f
$ V7 L& W6 K G$ g$ d 比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt3 G. C* ^2 X9 B T" P3 o
5 H- l" }- x, r1 e# e, p) ^, u
这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。
1 \: m- w' [1 i ?: A --------------------- + A2 \8 X% }2 K/ e* t/ v
8 A! r3 z$ f2 S7 z! P6 t: I. D/ O
1 P0 W6 e/ s7 U9 d! h, D. S1 X; _
* b: O6 d/ _0 j$ S' e' a' M- \
zan