- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565643 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174916
- 相册
- 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题的简单指导& @6 q/ T- l3 e* \0 L* k% Y
/ Z7 k8 Y1 [8 R
之前写过一篇博客,介绍如何使用差分格式求解热传导方程- z( ?$ Y, \5 r6 p6 `3 ]+ ]2 l! ?/ q
" i. S! I$ l& M( K今天打开博客,突然发现评论区被这篇文章霸屏了
9 F- f8 ]/ G( }4 G
* t% @ n8 [. V9 l" s3 ?% k$ |& T# q s* }( J7 P: {
+ n' o* `! u! b* a7 f2 N! Z" ^询问实验室的小伙伴才知,原来是被可爱的建模学子们攻占了
7 Q0 I5 x$ L( k; _6 r7 p
+ k1 @; q% l/ a经过简单的了解,发现今年建模的A题的核心就是求解一个热传导方程,因此之前所写文章的程序基本可以算是神助攻了,完全可以帮助大家构建解题程序的基本框架。
+ O$ N; _! ~8 C# ?5 z. p$ N% a& \' ]1 @) X, |% m
但是!/ z/ F$ O' @# j: z2 p& v
- `. S! @" \$ e+ e% {$ b0 F数学建模比赛考验的就是大家的学习能力以及解决问题的能力,我只提供简要思路,不要做伸手党直接找我要代码,不要问我怎么写,请对得起你将来获得的一等奖。
- e) A0 G. @4 b5 M. }) r5 }
' o6 v1 t: b5 {6 e4 W再有就是,你要先确保你能看懂我已经提供的源代码,否则下面我提供的思路你可能看了也白看。+ H7 T0 N/ m2 E5 r0 k0 w* `
$ z& I: I9 ?) D' Y这里统一对大家的问题做一个回答:7 G6 Z0 m; e( n8 a
& g$ h, Z9 A) }" F
本题适用差分解法吗?: {, A( ?: w" w1 q1 C
( Q9 ]3 y# S/ ]+ g/ s' |求解偏微分方程的方法中,差分方法 和 有限元 是两类最主流的方法。; H1 } L, p( V* X3 r9 k3 Q
+ k: e( y6 \. ~" f, @+ M: @* B3 x
差分方法的优点是原理简单,但是只能求解规则区域的数值解。
9 Z3 i1 B6 G4 p y' z. M$ d% d% `
O$ l& s/ T6 M5 ]( }有限元背后的理论相对难很多,但能够求解不规则区域问题。: L$ {3 j" E" V# q
/ s; L% Q/ U' g+ X" Z# [+ F: _0 ]
本题适用哪种方法解答取决于你的模型假设8 q. J0 z$ h+ H9 t
T. a8 J7 x$ E% c+ t! ^
本题中涉及多种介质的热传导的求解,我的建议是,如果不想给自己找麻烦的话,将每种介质层假设成规则的矩形。+ [7 e1 n) M, Q. V; m
" s7 p: T* f c4 R [既然带求解区域是矩形了,那么本题使用差分方法来求解更加合适,关于差分方法,你可以随便找一本介绍偏微分方程数值解的书,都有介绍。
" d9 p# v2 D4 b7 G9 D9 d' l5 @
0 k9 Y8 A9 z* K- a/ w当然,你如果将模型假设定义为更符合实际的不规则问题,能做出来当然是亮点,但切记不要搬起石头砸自己的脚,毕竟建模时间紧任务重。$ Z: D' q9 l/ J3 k) X# }+ W( Z8 k
Y: E; F8 N/ ~. }5 E; B. ^是否适用于多层壁热传导?' l$ v& r- B" c" o5 B
7 ^& ?; i; U4 m
评论区有人问,是否适用于多层壁热传导吗?
2 K% _( u* Z: w1 r' h8 a$ e/ _
& h! r2 ^- ?5 h4 M x& X" E其实就是问这个程序能否求解A题嘛,O(∩_∩)O哈哈~
" S0 P4 k& k: q% v* [& C8 q: F/ a" y) L q
答案当然是能,但显然不能直接拿来用,给几点提示。4 w+ E& v& ^/ E) l4 L) L
8 e/ y* }0 @6 Y5 ]1 m: ^# o思路1:
4 m d. Y5 Z$ \ ?3 a8 i
/ p& c$ @7 N4 L# A$ i9 L# Q你单拿出其中一层来求解,和我提供的算例已经没有本质区别了。
% @" K3 y6 |% w" P! O- ?$ @( t" t) b M& g: B1 {6 B( M
因此,你可以一层一层的求解。先求第一层的数值解,第一层的结果一有,第二层的边界条件也就有了,于是第二层也可以求了。: g0 m. s& Y; U9 L
; V( ^' { }( O9 P
这样做的潜在问题是,第一层中求解的误差,必定会传递到第二层去,数学上可能不太完美,但是好理解,代码改动也少。
( ^5 I: U5 n( p. W, O8 V# O
& I* V( k ~- u. ]0 F思路2:3 T- C- E+ A' \/ ~2 c# _
2 e h) K* J# ?# L6 k$ f/ U; }
我认为数学上更好的方式肯定是整体一起求解,但这就有点困难了。
5 f. T6 s5 v' s1 E7 [4 O. n" D; G+ i0 D
这样做时,你需要对每一层边界在系数矩阵的相应位置处,都按照边界处的对应关系进行相应处理。* t' l4 f. r x: E: Y" W/ w$ p
1 T, H/ k; q; c: V; a. ?' ^% E
这需要你对差分方法有着很好的理解,如果我提供的代码你无法完全看懂,建议就不要考虑了。
6 i, Q/ ]) ^1 L: I$ }5 m
7 P. r5 z4 `/ k' E8 W2 D: e. E0 s关于边界条件; _0 P' P* N& r+ F! F
4 M9 a' V( ~7 P% _5 O
构造的差分格式是保证解满足对应的方程,但其实满足给定方程的解有无穷多种。
( d A3 e0 I; {0 U: i
5 }% Q3 |5 m( b( w5 q- m9 |而边界条件的作用其实就是找出你想要的那个解。
7 R3 z% g# k5 J3 j* A H
& c! b+ T1 N) `5 ~0 c之前文章中给出的算例包含的边界条件是:
: j0 ?7 `9 }1 g* `" h( j5 u
) ~# }6 A# O* X& vu(x,0)& g5 A6 @ E L, B+ I& o7 i
& W# B; i2 `! V3 V6 g, l, Y
u(0,t) 和 u(1,t)
/ S$ p! F! J6 A" f' | N/ W. d/ Q
$ X8 u" h- ?+ k- G- M$ E在A题中右侧初始温度好像是没有的,也就是u(1,t)没有- r8 `. c( z$ ^& O; Z
& ~) ^& Y( S/ }首先,你要知道的是,求解需要的边界条件并不一定非得是这几个
. {3 H6 q( t7 @; {( {% Q
3 q7 ^4 ], a: J8 \4 V: @* x但是少了一个边界条件,你就要想办法补上一个边界条件, 边界条件也不一定是已知函数的表达式,导数的表达式也是可以的(当然,代码是一定需要相应修改的)。
" ` b) h: g- a4 z$ q2 c6 Z0 r: K+ N& O' C2 Y
比如没有u(1,t),你可以想办法构造 du(0,t)/dx 或 du(0,t)/dt
" \! n* a2 Y) Y& ?: Y8 y! ]& q5 a- o( C" z# D
这就看你如何理解原问题了,建议查阅文献,看看别人使用的是哪种边界条件,相应的对代码进行修改。当然也可以通过模型假设,将问题向你期待的边界条件上面靠。
% A6 C0 ]7 v. T8 a---------------------
: @+ Q p2 E: b; }: e) k, u6 M) o T/ [" t
# |9 A/ p3 ?4 G# ^$ `% q7 z, d
% u; u" Z: I" C" i3 s |
zan
|