- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 562686 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174179
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 18
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
2018数学建模A题的简单指导5 T% t+ Z: |: t: `( _: L
: ?- }3 a7 i$ A- q6 s% {
之前写过一篇博客,介绍如何使用差分格式求解热传导方程
- @; k5 d+ M9 j( g* E$ J Q4 n% D# H6 A# ~$ L8 U
今天打开博客,突然发现评论区被这篇文章霸屏了1 M+ ^/ G- b- w* H- }$ c( f$ {
! K1 }+ u2 W5 s; X1 C' S
) o( ^; m5 p( B0 j I4 z
0 U3 x1 P- W7 P询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了- A7 c8 z( w% _: X
& D0 |0 N$ z, x% L: s' c ^2 M经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。' H' W7 f1 J6 v8 {. a n+ v+ u
0 Z9 ~% H* a) e但是!9 |! W! V# ?) l+ Z$ ?4 ~' e6 N
, V! B/ i6 U, ?& K2 J, Z数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。2 ~6 C) g8 Q, z8 a
! e, |% Y+ S* [5 U& Y% x
再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。
0 l4 h4 Q% G, E
% Z& ^, }: L- {( F, j9 }, Y这里统一对大家的问题做一个回答:' A1 [/ y: p1 q" g% m
6 q- A; D( J8 x/ C
本题适用差分解法吗?. u; @' w C; d1 a! Z2 _* }
! m6 J# U: m6 @3 G3 a% h求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。
. G1 H3 f9 B% I8 r2 ~$ n
; I( F+ X6 ^& H9 r: J差分方法的优点是原理简单,但是只能求解规则区域的数值解。5 ~# h s* d$ I3 \; M3 c
8 s4 @- D/ U/ D2 N8 m: B4 U/ b8 t
有限元背后的理论相对难很多,但能够求解不规则区域问题。1 T! d! r$ J1 |
$ P7 L! R- H( O5 v
本题适用哪种方法解答取决于你的模型假设0 y* C8 J/ R; V
v0 W' ]$ U2 \2 q( i本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。% o' g( T# a" c
1 x$ n/ M6 L* p2 Y; c7 u既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。- v- ?1 ^. R+ w2 [9 y8 }
5 c, f8 _ F/ @/ X" j; X2 s' A
当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。6 X: n/ K* r& H2 w M1 I6 ]( f* ~ _
: C7 Y( M# V* }$ U是否适用于多层壁热传导?
( E. B4 A9 P! r" A0 t( T$ T0 H* Z$ r) b: X! M$ ]
评论区有人问,是否适用于多层壁热传导吗?1 H e$ H% q$ v5 a
- h0 ~5 H% r5 @* \3 T! t0 O其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~9 a0 b% L, v) ^: R# _1 e; s- H
; K. W# J# m* _3 e答案当然是能,但显然不能直接拿来用,给几点提示。
. T1 p3 h- Y% J c# ^9 ^4 ~* }
3 b9 G$ ~. W( q9 y# e思路1:9 U' R* q8 V. }$ Q; ~1 s5 y6 Y5 p
5 X" R" @3 N" \; g( ?2 E$ Z* x! R, v) ^% j你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。; _0 I% |4 C- Q
# ^8 f* O! u7 a. _# d( I9 `
因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。
4 h9 J+ h K1 y, S
3 W7 R. J% Z4 N! b这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。
2 r) v1 @& a' d2 ^
% H( P4 G! d3 a2 b2 _' u+ C思路2:
0 c, ?, E) f! v- d( i! v/ ?9 @' p' K/ r
我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。& S1 Z, ^" I$ ~6 J! T. J! y6 Y1 [
9 f1 D- {2 j$ z/ c: \这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。
9 R- O9 v. m! {, |1 D2 U: s, t
, L6 I! G, A# X! w2 C, O' S; ^; A2 s这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。2 S+ j, _- p5 D6 ?0 D* r8 H
& d& W/ }+ F% x, S$ P关于边界条件& s$ }: e. r e+ F
( W4 Y' W; M I5 C8 q$ k$ Q* Z构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。! m, E) ], e2 [) G
, f4 u$ k* t( W* Z! l而边界条件的作用其实就是找出你想要的那个解。% l3 }! v; u5 I* u' I
& m% e; M5 B5 W0 F, {3 ?之前文章中给出的算例包含的边界条件是:
) y. Z m, ]) C0 l" P, _% y! [
( _! K( j2 b5 O& W' e. x- h/ xu(x,0)% t) ^5 u; Y. @$ a* T+ a$ S# T6 {. K
2 {8 `" g& j3 v% M$ M7 {: G0 _: v
u(0,t) 和 u(1,t)8 k2 J! g) P* d; ]9 V) s$ N L
2 b Q1 U8 ? g3 t; {6 u
在A题中右侧初始温度好像是没有的,也就是u(1,t)没有
% _- N- f, ^1 t& {# o1 r( W2 e) ~! l& t: k2 u* E5 B
首先,你要知道的是,求解需要的边界条件并不一定非得是这几个
/ `$ K( G2 b7 O; n9 J
9 M! @- @" f' A# M" e4 w3 V" G但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。
$ p- Q& P4 f; ]2 k# ?0 X0 R" t7 d* [3 h, @4 o$ |; M
比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt
; }) W! ^& [% ?( }
" ~1 y1 P; [" Z( ^1 c这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。: j r2 k2 F" C
---------------------
& g: Y6 o5 ?5 a. l9 C" u
9 R! H }! G! w- \( r! m' c6 f0 I2 L+ `& R; O
. Z& H( }! }+ P/ o! |
|
zan
|