- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565620 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174909
- 相册
- 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题的简单指导# A5 V7 x# z9 {$ p, N
8 G' ^0 w, o6 l$ p
之前写过一篇博客,介绍如何使用差分格式求解热传导方程
6 u9 [0 S0 p0 i8 M5 y2 }) v A( r1 A0 v; I* a9 e
今天打开博客,突然发现评论区被这篇文章霸屏了
7 u0 E4 G' ]' A( h2 M& D o" @+ k0 }6 {# W
o7 J( I5 f7 `* a1 M
" e& o6 m2 Y6 @4 L5 c询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了0 s* h8 ?; M9 O. x6 z. ^+ f# o
' i% }# I' h) J6 e经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。- @8 d$ ~8 J1 R x' N
3 l4 q6 l( U: \8 {& G% X但是!' p; h# ]. N& c' r0 Z) Y2 |0 v/ L
8 u7 a8 R0 {% E1 [
数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。" x/ D& W8 z4 S' A$ w( B# y
/ B1 G t: |( y. G) m4 b
再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。
$ Y1 d6 u8 c; [7 u
! C: |! n `9 a6 m这里统一对大家的问题做一个回答:
\0 P1 C$ s5 o3 f% _- D* x3 v
- B+ H+ C4 g0 e% p. j2 W, N) H本题适用差分解法吗?
9 g8 u8 f2 z0 ~( p
! p" I/ f' R) E S4 Y求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。
* [4 ?2 z/ s/ i8 M
/ \6 s" _9 ~, K1 e4 q4 [5 ]差分方法的优点是原理简单,但是只能求解规则区域的数值解。* Z1 C! X* T: ?4 B& t) h
1 o7 {1 {4 ~4 d+ j有限元背后的理论相对难很多,但能够求解不规则区域问题。
- B; H U% B: W, A; h
% d; \. ]: l0 c/ M4 I! |本题适用哪种方法解答取决于你的模型假设! B; r) W; L9 q1 b8 m, w
) M; n; ~: W2 n8 x8 Z) u6 r& ?: \. x8 s
本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。
* I" f# Q7 a' R" v
( W& W- k- ?6 q! r& q! ]- D既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。
2 s1 k5 g# N( ^- c/ u( R8 O% j# y8 j9 F! P+ U7 D, v
当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。3 |" I" V& @, @1 q" C
+ Q- S/ Q2 f% Q' R; X1 w u是否适用于多层壁热传导?
/ \- e( ]5 [& s; T8 Q
; O+ f F* x, q% P* |( s" i: |8 j- M$ @% y7 z评论区有人问,是否适用于多层壁热传导吗?! o" i6 y# P; `3 u8 x, M0 T7 a
& R% I7 v J0 y ]/ m其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~
+ O7 C4 H$ T/ ]+ K' k7 U9 t7 r1 R r/ w3 ~% k1 {! } y4 s
答案当然是能,但显然不能直接拿来用,给几点提示。
+ U1 R* j* T, r1 M$ t% a) i
$ P8 Y1 ~ y5 p0 \思路1:' g; t+ Y/ r0 I# F S
: G- n W) }/ Y, H+ H8 Y! m
你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。
+ t2 U; R; z; F$ c( h
* }, ]# n; i, j d) o9 I- E- |因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。: E6 { ^9 U& d8 E; J
, X7 w- x. Y8 ^0 M
这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。
6 T" m7 i, ]2 ? z8 z+ M+ p
, o2 {5 `. ]3 m2 d; n3 ~思路2:. q9 j9 H. a" K( J2 r4 Q
) }6 Y0 }& r$ S3 \7 q: _
我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。2 R4 [4 a' ?; ]# ^! j
8 z; [1 Y5 K4 b& s: J( X+ K
这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。+ c" a( U/ q! E" S! B0 u( K `
$ e' G2 r7 |, }0 ` |这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。
- ?, B, z7 ^, [3 l- t" Q' ]; Z2 a9 o2 {. i" d; i j. {
关于边界条件' D9 \! G3 G2 ^% L, |
& L# l4 ~+ _9 L; V, e% t* e5 W
构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。. ~2 ^. y& B. q, W( e
6 T4 s7 q6 W& K/ k而边界条件的作用其实就是找出你想要的那个解。
, O1 G) a: Y" h5 a, D# g0 S. k
4 ^: x$ P- S( k4 x& X4 d9 W之前文章中给出的算例包含的边界条件是:$ X- ?3 j9 h% w
6 {+ R" g8 s+ O+ @
u(x,0)5 V4 y4 t' m; D; ? C R. \" ]+ p, J, [
; x- C# p/ w4 b' f; U3 v2 p" j& }
u(0,t) 和 u(1,t)
4 x8 V" ?! b2 @9 U3 m5 l& Z! L+ h+ }5 p0 o8 j
在A题中右侧初始温度好像是没有的,也就是u(1,t)没有" h+ U# x) I/ P4 l
2 k3 ?( b9 ]! t( e- t. p8 i/ V& B p首先,你要知道的是,求解需要的边界条件并不一定非得是这几个" A% p2 y3 l. T
0 ]% L) G/ D; S5 E# y5 |% w但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。
, o/ } h: ]0 l) ^# A" {! x* I; A! }, `8 e" L1 W4 D
比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt9 | s, u: H+ _
! {* N4 e2 E4 G9 f& s l
这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。9 @6 b5 D n5 g: k$ H# g
---------------------
1 ^# c+ v& F- S" r/ f
$ x+ k8 R3 n* s( l$ E4 @# @7 f! c9 x! y
/ j, G( B: d. ~; i: F% W. H
|
zan
|