数学建模社区-数学中国

标题: 2020全国大学生数学建模A题思路讲解与核心代码 [打印本页]

作者: 杨利霞    时间: 2021-7-16 16:32
标题: 2020全国大学生数学建模A题思路讲解与核心代码
* F, J8 \% z; ~% ]
2020全国大学生数学建模A题思路讲解与核心代码
5 L+ \0 G7 v* c) T8 K
0 R; d2 A& t, L% g0 I+ W8 o0 y2020全国大学生数学建模A题思路讲解与核心代码
+ F" a0 k+ [& Y1 d1 n: g题目
; e/ F% V/ x9 \8 [' z核心方法:  D8 z" c1 h5 e: p; _
问题一+ ]( P, N% I# Y$ ]
问题二. u; X8 y/ \2 L9 d$ _# l: V
问题三和问题四9 q9 T. M# w) x6 V+ G
答案如下:
- R" a6 `* Q; z3 b题目
, `) R3 b3 ]5 e5 v- P& T7 N; F4 a3 v

! A$ v% j# p2 Y6 L  |$ s4 V! V9 U. {, [$ |! [- }  s% K
: E6 ^, x& U  c/ g' X

7 N3 x7 J8 _( c- w1 u* C2 M, X, b% K
* L3 x9 M1 \( \8 b  A! Z
核心方法:" i7 _! W& l$ I- Q/ |% D+ X! L
热传导: j% \. D/ f5 x* I, Y7 D' N3 R
有限差分法
+ ]/ Q8 w" _5 n  n6 R5 i遍历法
7 W; R. ?6 a2 v* ~" s4 b
( P+ a+ ?2 Q2 Z" S8 M- a# `' j2 e

7 e+ p7 s9 h. I$ G$ ]+ q0 [问题一
5 }  ^$ O9 f- H2 P  ]6 q" n3 N; R建立焊接区域中心温度变化规律模型,推出焊接区域中心温度与其厚度和PCB 板所走过的时间的关系。查阅相关资料可知,由于自动焊接过程中热量传递复杂,因此对模型进行简化,只考虑一维方向的热量传导,即单侧单方向小温区对PCB 板的热量传导。利用能量守恒定律和 Fourier 热传导定律推出热传导方程,再利用附数据件求出方程中的参数,进而建立了焊接区域中心温度变化规律型,即炉温曲线变化模型。依据建立出的炉温曲线变化模型,根据问题一中所给出的各温区的温度参数T1, T2, T3, T4 及过炉速度v,需要求出过炉曲线,即焊接区中心的温度变化
, v5 E# i) n& z. T2 S! g- Y5 W- q- D6 b
. i+ s. f" ?' p2 D
对于热传导方程的求解,需要先确定热传导方程中的参数—热扩散率,这
' G- O/ a1 y0 i5 \- V# O$ o6 C  f可以通过附件提供的炉温曲线数据进行参数估计。热传导方程的求解可以利用差分法进行。! M3 x/ C3 y1 f  m
3 h; v* C" l$ c2 Z
2 D1 @" k, }+ g) D6 c8 p
// lamda的计算的部分代码
7 r% D4 t  A! H8 K9 \  parray=zeros(76,length(x1));
4 ]; F6 Y! x. r1 ~9 Z$ Jarray(1,=y;# ^5 K3 h: x# @5 \1 b
array(:,1)=z(:,1);
2 \$ I. i, Z# Ofor k=1:318 o% ~1 A( A, B
    for j=1(1)-1$ |' j+ F% z; s  M) s8 b
        for i=2:75
2 X% f8 _0 A& s8 e/ \            array(i,j+1)=array(i,j)+u(k)*(array(i-1,j)-2*array(i,j)+array(i+1,j));
: t( n0 }7 B6 T5 @$ M# U        end7 \5 n0 ?! Q2 t( X
        array(76,j+1)=array(74,j+1);
4 `7 v0 L/ O! @: I4 X$ Q1 t: S    end
; l5 l( Y8 q9 u" k% Y1 ~, n    e1=1(1);
" S6 z$ s$ Y& p4 y. S    e2=time(1:5,;
5 a0 N: g( c2 X# Y    [C,ia,ib]=intersect(e1,e2*100);# S6 e+ F5 ~1 x" b0 w4 H5 F
    for i=1:5% h) p) y; L; z: ^3 N6 d
        b(i)=array(75,ia(i));2 i- h( l* N8 `( r* c
    end9 Q( z+ e- Q% a
    for i=1:5
5 j( v( f) q3 q+ y$ b7 g; E& r8 O- d        c(i)=(temperature(i)-b(i))^2;2 ^. l+ N3 c! M
    end
2 b8 p7 |+ E7 Q: q$ {! ~$ ~    rss(k)=sum(c();) _+ b4 ^5 f: A; H% q
end; S) A' b3 f: v  @
result=[u;rss];
, _5 h1 K& y" H8 J/ H. }11 @  _  ]$ P- M1 Y. S$ T
28 J) U( I8 ]/ e5 m' E2 g# \
38 n1 T- s1 S$ k' N/ b. c- |
43 H0 l6 _# P, A* Q
5* i4 {8 E. o; ^. C
6
) D! R& i0 H$ `7" L5 G  Z+ J% m( F% m. Y) T
8* y% {2 z0 w  y
9
  m! E1 P7 A( T: ]! }10$ L& v# \  m; _# i
11
, Y- \- \5 I4 m6 i# j7 H12; a* ~, k& ?7 Z( p. V
13. I/ L, j& A& n7 C& t5 U$ A: ?
14- a; ^. M7 S, |. r7 G% t
15
4 U7 {( w; }5 i7 i2 c16* w5 a/ a1 H# H1 f! i/ u
17
+ Y6 z0 h' k0 ~5 h# @18% ~1 A. b0 U7 A* I: {/ p; K
197 A( T; g4 |6 U0 N/ k$ U2 ?  r
209 x7 }, x3 r) C- y8 `9 ?
21
% j) X8 T& F/ H% h6 q% d* m22
) B! q7 O' Y! I4 k23
) b3 o* g# P1 V3 G, W有限差分的核心代码:. i8 w; s% N' [1 ?1 z; n' V
4 ~& k, y( {3 G: w5 O

& p4 f( f6 J4 H( z7 T5 M//有限差分的核心代码
- p# a2 C( x! `# c# Garray=zeros(76,length(x1));
0 F/ V( O) M, D1 varray(1,=y;
/ l2 H, a( a' v9 A) f$ Z2 [0 c2 u7 {array(:,1)=z(:,1);
* f3 O2 B8 K4 S1 A* e% U# jfor j=1(1)' S. |9 t" @  Y! x
    for i=2:75
. [/ ?# k9 `2 ~# L" F6 \) b$ n. H        array(i,j+1)=array(i,j)+u(1)*(array(i-1,j)-2*array(i,j)+array(i+1,j));
1 w* L; L+ D4 E6 `3 L    end+ D6 E2 y" j1 z( u: b
        array(76,j+1)=array(74,j+1);8 Z% D4 Y. K9 ]: W* M
end
+ H/ x& h/ @* Iz(:,2)=array(:,2143);4 T) f3 }& E! j6 A1 h. o# @
for k=1:99 M& F6 J; w6 e# y' L: H
    for j=L(k)(k+1)3 E' _0 o0 a2 K
        for i=2:75
5 L, F" |& e' \/ A1 C/ n9 v            array(i,j+1)=array(i,j)+u(k+1)*(array(i-1,j)-2*array(i,j)+array(i+1,j));
  t9 |8 q) b: N% u7 [        end
: \7 l. b4 }! k            array(76,j+1)=array(74,j+1);
# Z, P; C. V4 _& e( V& d! v    end- \# U, R% x* b9 r- m/ n1 ]
end4 |/ S1 j) C- t& Z0 t2 T
array(:,length(array))=[];1 S2 j1 s2 h* p- ^5 J5 t

$ Y, w4 ~! D& F3 U2 }

( m$ r. j3 E3 o# }1$ Y3 L7 [% C, }: E5 n
2# I6 t7 k. K; K' P' c: q7 p
3
9 V* U% f: x; D0 `8 X4
# _/ E% n4 E9 D8 P$ O, n5  C+ Q1 A6 U  \0 [
66 j( y& r0 a% j# y* @; c
73 V7 D3 f) W8 k) W
8
: b2 J$ c! k7 V) K7 t1 @97 Z) j* W: ]) w
10
, b  {; Z* L! g$ L, V& r+ a11( ?! \& i" ]) ?4 a  R9 v) R
12, h& p. Q+ R  ]; O$ y) J
13$ k  ]2 w$ |! H  M' F& T
14
* |1 C0 f0 {. ?/ h15
8 m- o: ]* z% m5 W16
* l. f+ b; q5 i8 X) f2 F17
# J6 `4 I1 |5 C18
1 G8 m& }6 C4 A2 j  E" ?19. {) Y. o$ r9 D
20' C2 U/ d& [" K8 ^
21
$ J  W- H3 ?9 r" d* g9 n得模拟数据和真实数据对比得炉温曲线:8 q7 |) O" e. B

; G  e: Z; p5 d: m, b, C4 ?

+ v: x7 D9 W5 \- U$ L3 B9 K* f0 \5 v8 S* w+ J+ a, y
6 I: h0 o$ W( i9 H  \: A3 a
问题二
1 }$ E$ r+ H5 J- w# J5 ^# u问题二中,基于问题一中所建立的炉温曲线模型,在四个温度参数给定的条件求取传送带的最大过炉速度为优化问题。此问题可以看做是问题一所建立模型的反问题,即在温度分布9 \9 P; c+ r. q/ {0 w1 j2 Y
已知的条件下,要求通过该分布计算最大过炉速度v。在具体求解该反问题时,可以利用遍历法对过炉速度进行遍历搜索,这样就将反问题转化为了正问题的求解,从而问题一中模型方法都可以继续使用。3 r( ^/ f3 s1 M# m! {
0 l; y2 Q. g) K$ F1 m9 f" M% o

2 [+ i$ e1 e5 Z& \/ p问题三和问题四% u; u5 A# J7 m9 b3 }& G
问题三和问题四仍然和问题二类似,也是对过炉曲线提出了不同的要求,进而在这些要求之下确定影响炉温曲线的 5 个参数 T1, T2, T3, T4, v ,求解也可以采用与问题二相同的遍历法进行,但由于此时遍历的变量个数增多,如果遍历步长较小,必然会使得计算量增大,因而必要情况下,可采用分阶段的遍历,即:大范围,大步长,小范围,小步长。需要考虑的就是对于面积和对称性的数学描述,面积可以采用积分的离散化表示,对称性可以采用以最大峰值温度两侧取对称点,使对称点的温度差值尽可能小来实现。% ?2 X1 z: u3 h  A
& j; A' G5 g. I; k' s& K( a# Q

/ C  p$ d% L' }答案如下:
; \4 w5 z) W- U# p5 T7 x+ u* a6 }8 F' x; F4 o5 L
% ^4 U+ ~8 b! D
注:用以上方法算出的结果均在最优解范围内,详细解读请待下次,困了该sleep了
2 z) g7 L; s6 u- X5 }( X  w————————————————
5 h: T8 ^8 ~+ N2 \  G# z; K5 S版权声明:本文为CSDN博主「盈博简」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
4 x9 C' B$ p0 |3 [& {( p原文链接:https://blog.csdn.net/Sandm_Hou/article/details/1127266355 y% t1 s+ Z# J$ B: A8 f
( w5 D- l$ X. S
6 h$ c4 p( v& u

作者: 1051373629    时间: 2021-8-9 13:04
谢谢分享!
; g( h- a, r) L! Z3 y. s/ Q3 N
作者: 1051373629    时间: 2021-8-9 19:17
谢谢谢谢!
' y8 L. e+ R. _; S7 B( i# Q4 Z




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5