数学建模社区-数学中国

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

作者: 杨利霞    时间: 2021-7-16 16:32
标题: 2020全国大学生数学建模A题思路讲解与核心代码
* f5 D4 t% p: E, q7 W$ w" |
2020全国大学生数学建模A题思路讲解与核心代码# J8 v" O/ k! N% c7 b
, s2 B) E$ ^) R2 r
2020全国大学生数学建模A题思路讲解与核心代码. S  N0 q5 A. i, ^3 H0 U
题目  m% I' k3 u& u9 d1 Q5 _% b- t9 v" a
核心方法:6 a2 L* }7 L2 ^) f' z3 j* ]
问题一
: W- [- @* @) a; r, }: X9 c3 m* U问题二& }, ~" n* S4 d, }3 x' ]6 g1 k
问题三和问题四
/ l6 N+ |; o6 I9 l" D答案如下:( A' V( @& D. Z8 S6 e# \6 e: K; O# M
题目
8 W0 W- Z; G7 S/ \6 I* A% {' Y  m
! i8 }% G8 d+ }3 L- q+ q/ Z# n

& _% h+ [# k# f7 a- E* M) M8 _# n) l2 C3 Q; r  x+ c: s

" X/ |/ b% Z8 q
5 [: D8 ]$ V3 D, f0 v/ e

' X- r" `- n: r" H' K. I. h0 S8 B核心方法:5 w" e3 O9 ?( H6 D) f. ~
热传导
  U  U. F2 |2 n4 M8 W有限差分法% w: n9 O+ Y& ]" ]2 n
遍历法
7 s0 ~4 G$ y; ~4 d7 R4 k5 J6 r
% q! X- X( a: C+ m1 x' J
问题一
$ ~2 R* U+ X# d+ q" K, B建立焊接区域中心温度变化规律模型,推出焊接区域中心温度与其厚度和PCB 板所走过的时间的关系。查阅相关资料可知,由于自动焊接过程中热量传递复杂,因此对模型进行简化,只考虑一维方向的热量传导,即单侧单方向小温区对PCB 板的热量传导。利用能量守恒定律和 Fourier 热传导定律推出热传导方程,再利用附数据件求出方程中的参数,进而建立了焊接区域中心温度变化规律型,即炉温曲线变化模型。依据建立出的炉温曲线变化模型,根据问题一中所给出的各温区的温度参数T1, T2, T3, T4 及过炉速度v,需要求出过炉曲线,即焊接区中心的温度变化
4 l1 E* I8 C+ b8 q, o$ a" a
: y7 }# R: ~# U; B, V

3 Z& p' `. U# P对于热传导方程的求解,需要先确定热传导方程中的参数—热扩散率,这
) ?, J/ r  h) }! d: r% [$ J可以通过附件提供的炉温曲线数据进行参数估计。热传导方程的求解可以利用差分法进行。* [0 a# b* w' N% m' }! a7 k9 d

' P8 I; y( [* G
$ w+ [* V$ [. T' `# }; H
// lamda的计算的部分代码7 o9 t$ }+ c6 S9 a" _; o6 d  \
array=zeros(76,length(x1));0 u; b8 c! q. l4 K4 q, Y
array(1,=y;
9 Y" @" i) b9 A7 a& \array(:,1)=z(:,1);8 o. u8 H- \1 ~6 R
for k=1:31. ?+ B! r$ n: _; y/ R% h% ^
    for j=1(1)-1
1 v4 y0 s- H- Z3 E" D: c        for i=2:75
+ g8 Z  C6 F5 b            array(i,j+1)=array(i,j)+u(k)*(array(i-1,j)-2*array(i,j)+array(i+1,j));  m* }( b. C1 U9 s
        end
! M5 G( j2 O+ E2 [0 \, w        array(76,j+1)=array(74,j+1);, _4 @& P2 `$ h% R# c! g" e
    end% r2 `5 o& U3 q" a3 Q
    e1=1(1);
2 A- R$ _8 T3 u$ B5 K    e2=time(1:5,;9 y3 @! d% r( j) _3 `' x; _
    [C,ia,ib]=intersect(e1,e2*100);1 E" A2 S! L0 q" R5 }
    for i=1:5; m! N0 i8 i( @. h0 ]9 H: W! r/ M
        b(i)=array(75,ia(i));! e3 e: p. E( @$ O% K& K: t
    end& A. N* O8 D* D9 S7 Q
    for i=1:5- M) w" G0 x2 t6 }
        c(i)=(temperature(i)-b(i))^2;
/ S- F+ D- _& X    end
8 R1 k- w2 h7 p; K    rss(k)=sum(c();
5 ?7 M: i8 h3 A+ ^- N5 h( Vend% b- J3 _4 R$ a/ L
result=[u;rss];, f. G9 r- A9 _& m' O! @
1
, ~% `! O. `+ |2 F! u: I2* K3 |/ q, t2 Y- d4 t$ ~
3
; R" d0 M) w. m4
/ b+ |3 K+ Q) K, h! {5
( n) M" ~/ g% d# j60 j& X/ N8 Q( m- h0 @( V
71 q, U& u4 W% `+ }# l  r
8* S! _5 y! o5 G9 ]& e4 d
9# ?) t+ c4 H8 b2 `' O6 T5 D& ?
10) T" f4 a- f) G3 z4 D8 @; Z
11
5 N) C  c6 a  a% J; G12
- v5 [$ q9 t; k5 M- p& w138 ?$ L$ y! w) a2 t6 a1 L
14
/ V: L  J" T: Z  H: W; w" {15
+ x  `2 h4 b/ x16& V. X) \  B3 g$ P- @. E4 K
17  p3 p9 L, Y" Z+ ^) ^
180 |3 O! `1 M; z, j
19
) X& \+ m/ x) S' B( W& \20& H# U; F% V0 R1 X% v
21( K' d' k5 D, l7 A4 j% j
22- o3 P; ~# H. V) g  |9 y
23+ @4 q- x! v9 B# ?. V+ c
有限差分的核心代码:& h6 Y9 G  X+ \) y: F
' m5 ?: Q% g1 j# I; U- u2 Y% V

3 \" G3 g# i1 g//有限差分的核心代码- j+ |5 Y/ X, i: \
array=zeros(76,length(x1));  H: w2 T/ K4 e: T3 s% K
array(1,=y;
: t) n" @# b  G2 O, Barray(:,1)=z(:,1);  g& M1 K: l. [9 J+ }" Y
for j=1(1)  B% ?; @* O3 U+ L
    for i=2:758 [  b7 I# u! W& S/ E4 F
        array(i,j+1)=array(i,j)+u(1)*(array(i-1,j)-2*array(i,j)+array(i+1,j));
' {; C' `% ~7 v* h/ p9 }4 w) V    end* K) M( M. B# O3 |  f+ t+ ]( d
        array(76,j+1)=array(74,j+1);2 L0 N, Q% a8 i1 x$ e$ r7 o
end
. [3 o4 V2 S% P: d# ]1 i6 Vz(:,2)=array(:,2143);
6 }  g/ @, M/ l; A' [7 \) yfor k=1:91 h5 D2 k8 f; y2 t: n+ }
    for j=L(k)(k+1)
  {1 n  ~9 o# n$ F        for i=2:75
+ z" Y0 y4 X7 y$ [1 l( _            array(i,j+1)=array(i,j)+u(k+1)*(array(i-1,j)-2*array(i,j)+array(i+1,j));
7 d, E& [% c2 @6 i8 d" y        end
& ]( R8 Q! a, Z4 X" v            array(76,j+1)=array(74,j+1);6 I" k  |$ e$ j* ]6 D
    end7 Q+ Q" ]/ c% f( T3 N( i* V
end
4 |& r* M+ C( P* q- k& e; Z% N& \array(:,length(array))=[];) N( F6 v: S/ Z) k1 P# |
  Z. j9 u& G# S" _
9 k8 C- }( E3 }2 w6 Z8 V
10 A% X: ]0 ?8 G8 {
27 A3 _5 a: F' M" j
3
- C, T( f6 ?# r+ C" r40 Z% J2 D7 ?  p/ e
5/ _& i; h* [! h, w' I+ ^
69 K8 o4 x2 d  _" E/ G3 ~' }
7
! @8 G2 Z8 ]1 W8 Y* L, X2 @82 a5 I) p7 |/ r, e
9
6 v7 _8 r4 g- l2 h8 {105 k3 r' a( K4 c4 g& j2 }
116 A9 a3 y. k9 A1 F; ~3 O/ G
12
, B/ t6 h9 p. D13
! B& P9 F) `5 u5 h1 z14
! X5 ^$ M- K6 w9 q& [15
. {' W$ d5 x4 o, r- n16# D6 X0 z# i7 y+ _
175 q6 T+ Y/ {/ S' \- u# }
188 D/ H& x' y# q3 Z+ d  A
19$ v5 }: o$ }$ L  H5 O+ @% u+ @2 a# e( @
208 T, q; _7 F" z6 N* _, F
215 x) Z/ C& B9 m! [7 y
得模拟数据和真实数据对比得炉温曲线:
0 y/ D4 S* X- ~& S, x' J* y5 K7 p7 x
3 x8 F$ s2 e8 p* r: K, c9 d- p

  ^2 `9 A1 r6 D) _' }; P5 E5 v
" d: ^' f' |4 x0 V, k# D& {9 P
问题二) G5 e0 ~9 u1 D
问题二中,基于问题一中所建立的炉温曲线模型,在四个温度参数给定的条件求取传送带的最大过炉速度为优化问题。此问题可以看做是问题一所建立模型的反问题,即在温度分布
7 a1 T5 k+ q. d' s- ]) k' Q已知的条件下,要求通过该分布计算最大过炉速度v。在具体求解该反问题时,可以利用遍历法对过炉速度进行遍历搜索,这样就将反问题转化为了正问题的求解,从而问题一中模型方法都可以继续使用。7 J$ \" @" ]' R% c  Q" u9 V$ H

3 i( ?2 n0 i1 i  s* w6 _

! f- l4 Q/ Y; y6 w问题三和问题四
1 B! v3 d; T8 Z" D7 ~7 ^问题三和问题四仍然和问题二类似,也是对过炉曲线提出了不同的要求,进而在这些要求之下确定影响炉温曲线的 5 个参数 T1, T2, T3, T4, v ,求解也可以采用与问题二相同的遍历法进行,但由于此时遍历的变量个数增多,如果遍历步长较小,必然会使得计算量增大,因而必要情况下,可采用分阶段的遍历,即:大范围,大步长,小范围,小步长。需要考虑的就是对于面积和对称性的数学描述,面积可以采用积分的离散化表示,对称性可以采用以最大峰值温度两侧取对称点,使对称点的温度差值尽可能小来实现。) ^, N2 l- `  K  {1 h# @6 h  l) P' s
, ?! K1 W+ x; J! c, U) ?
% |* i" A6 s  ]- X3 M( {; z
答案如下:
% g% H. [+ E7 P' p+ ^+ C  U
0 I) i0 S; H2 V$ X+ j4 j; o

/ ^8 j( R2 Z! W/ d. j. a9 `5 m, |注:用以上方法算出的结果均在最优解范围内,详细解读请待下次,困了该sleep了8 a; d1 W& E9 c9 V
————————————————
+ u1 ^; H& Y8 k/ V8 e版权声明:本文为CSDN博主「盈博简」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
# q6 Y. t$ E( H& {% k原文链接:https://blog.csdn.net/Sandm_Hou/article/details/112726635* s" z8 l! k$ P& T2 ?* S

9 W' H9 }4 ~8 S4 O
& L1 J# e( b+ x  s
作者: 1051373629    时间: 2021-8-9 13:04
谢谢分享!
! Z- H( x5 ^- d3 d4 o. A: ^- u0 q
作者: 1051373629    时间: 2021-8-9 19:17
谢谢谢谢!5 t  D: t/ u; Z, w  D





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