- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 564661 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174621
- 相册
- 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题的简单指导
2 s- Y' t7 s' j( j3 U+ f1 |0 k; w+ ~8 p7 R8 T' e3 P
之前写过一篇博客,介绍如何使用差分格式求解热传导方程
4 V' ~6 J7 h& m* D0 l! y9 v
8 v3 C3 g# P' J今天打开博客,突然发现评论区被这篇文章霸屏了
& U+ w1 A T) X& i8 `% `! ?
' T8 C( t; B# G7 ^* P5 V: O4 k. Y% m6 }9 _' T- c" K& O
- {6 ] D" D- h0 b6 a* h& b3 M3 Q' t询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了4 f p/ p* F" f9 Z, E
2 F" F( F( `2 j
经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。( [5 y' |+ t; a+ y
; X1 O2 w4 V6 \( G# t( S
但是!4 v# j/ s. U2 ?2 s2 a& x5 O
6 M2 P# U1 \. A# w数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。" \" N. x9 R# e7 [1 u/ u: e2 W: Q% `
# { m; J1 j+ E% V. a3 z
再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。/ h$ l' g. G: s5 S0 g
) ^: Z5 |. Q, Y* F& U; [$ m/ {( r
这里统一对大家的问题做一个回答:4 l" I$ n6 N4 L- N! B: W6 y
9 }3 G# b. a6 c' Y& _6 v% G" ?
本题适用差分解法吗?
* f7 O' G9 x9 A/ H+ W# }+ D1 ~$ h+ }7 H
求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。
$ }" N# p% \1 p) |( N s7 i; C7 m0 G* k, J, @3 D
差分方法的优点是原理简单,但是只能求解规则区域的数值解。
- h1 n. P6 o1 h4 r+ b7 @, e$ J& e+ C' Y B& e; m/ J
有限元背后的理论相对难很多,但能够求解不规则区域问题。
3 V$ l& s4 t% w" }2 O* |1 y) h. A. v( v
本题适用哪种方法解答取决于你的模型假设# b; v6 E2 z2 v1 S, p# O& D2 Y2 K5 N. h, ^
! r" n5 T9 B8 u$ C {! f
本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。
4 \' N! F, t% v7 K4 K) H
0 e& ^6 J( F% Z8 ?% W5 C既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。
2 T0 M p$ z) ~2 K/ q3 o" _5 j+ @: ^5 j/ A$ c
当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。! [3 J' X# P6 U m9 k
9 X: F( v6 }2 M5 [5 ?/ O
是否适用于多层壁热传导?8 ]- V8 X: S" f6 N5 n
7 s. M' J) f" M评论区有人问,是否适用于多层壁热传导吗?7 y6 C3 x% D: x( z; l5 i
$ |. I! k4 O. J3 \, ~
其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~7 r+ D, ?; T. s: t8 z4 L
& L$ o! @, {' i; R" }9 |
答案当然是能,但显然不能直接拿来用,给几点提示。- F) \. l, K. b8 b9 g3 O
- C/ [2 X* b% _" P思路1:7 p7 F9 N6 R ?% j3 Y
4 P! E L' Y5 e+ @' \( R你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。 `1 q# Y9 d& M, i7 u
4 c# U* h1 p2 e/ E- l: J6 R5 E' Z因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。. f- x* M' e7 v, U6 }& L
+ [9 K" i2 F' S这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。; X' X6 v& i* R2 B/ W" L
1 ^: i2 H1 Q5 m& ~6 p }7 ?4 s
思路2:- V& U7 S; r8 t6 u
# r7 }& W' i0 j @. k- E6 k( f我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。2 P1 z B( f& M, a4 ^6 s8 x9 B
" [% a: T9 x, f% e$ G这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。9 K% {7 ]; Z& Y5 ?; g
+ C0 j, m V& ~6 g9 W+ ?6 h
这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。" A" K- s2 ~9 w7 r
6 O! F0 A, m. q- k8 s# @关于边界条件
9 i5 S" ^2 C" @8 F0 w8 x! g0 }2 |4 w" a, P) q0 S- v& `
构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。
5 G& Y3 g: d9 P& d' y% x4 X' ?5 x
7 ~6 @5 D6 O2 V! b. ]* \而边界条件的作用其实就是找出你想要的那个解。+ K$ H$ }. ~/ a" c' s
, o, y! y$ e1 E; ]) q
之前文章中给出的算例包含的边界条件是:7 i- ^4 e4 J+ T0 k. d3 m
8 H( f9 X3 B4 ` B2 ju(x,0)* J/ m% y9 Y7 W0 _
- H7 n, _ X M6 i
u(0,t) 和 u(1,t)
* k! W8 V) q& K
w; v7 Y: z4 i; E6 U3 g在A题中右侧初始温度好像是没有的,也就是u(1,t)没有! |/ q% m4 a- M+ m& L2 a) b, {( e& _" r
' ^. Z) ~# L% g! g- j) S7 l5 [首先,你要知道的是,求解需要的边界条件并不一定非得是这几个) K; @1 z8 w! e! ^9 ~8 ?0 L
' H5 Z, B o( k
但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。
5 @& k0 [, E# O7 c
" I/ V4 B- c) ]! \# p% V7 A* t比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt
$ ~; `! ] m! o' e' ~* Z6 U' ?9 Q N- f+ ^& i3 B
这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。
6 ]+ g9 ?5 P7 I8 J) K7 W--------------------- 5 ?2 g% T, P& W% O/ D6 R7 ]
5 R3 B3 G7 P0 |; m; d. H* x
% U# Z; ?3 U _+ }/ _
3 T$ ^8 b5 T# T W |
zan
|