数学建模社区-数学中国

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

作者: 杨利霞    时间: 2021-7-16 16:32
标题: 2020全国大学生数学建模A题思路讲解与核心代码
# g5 _8 o" M5 S9 q, z' j  E( _; t4 j' E
2020全国大学生数学建模A题思路讲解与核心代码; J8 g; K7 }. _. R) j# b

! l( G3 \  K4 E1 u- t7 x2020全国大学生数学建模A题思路讲解与核心代码* D+ e2 f& v" q7 _+ a
题目/ F3 Y. E2 S1 }- W8 a/ ~
核心方法:3 D5 r0 H) ?$ L& P# {1 h1 X
问题一
  A* }' a( K" g6 V! r问题二
3 n5 i0 h# g* ~- T+ O. j- g问题三和问题四+ V* T6 C9 E4 P' q$ X+ E/ s
答案如下:
% Z) H9 T9 {5 c" b3 o题目
, D, {* r% i2 }/ N2 x$ p1 Z8 X' Y: s  g! r8 n9 M  {3 R" W
- t2 Q" b1 E4 h
7 c/ m  S% v% u' d7 `

0 W2 Q7 D- T) _3 s% S
) |# Z& C: y! d: f
8 O' r. V" z9 m& t, B6 t
核心方法:
  V9 n1 ^! G. i3 |9 \热传导
1 ^% [( V  d2 V) Q2 P# N; q" Z$ l+ D有限差分法
$ Z/ {" {# Y! a: r: J$ Z遍历法
8 W) c0 {6 @( g- k1 \
( t. {' B4 E, O7 _/ s; W* |

) X* p* g" r8 _4 A+ m2 B- h1 L; {/ e问题一7 A3 `0 X. ]( N. R- ^! C
建立焊接区域中心温度变化规律模型,推出焊接区域中心温度与其厚度和PCB 板所走过的时间的关系。查阅相关资料可知,由于自动焊接过程中热量传递复杂,因此对模型进行简化,只考虑一维方向的热量传导,即单侧单方向小温区对PCB 板的热量传导。利用能量守恒定律和 Fourier 热传导定律推出热传导方程,再利用附数据件求出方程中的参数,进而建立了焊接区域中心温度变化规律型,即炉温曲线变化模型。依据建立出的炉温曲线变化模型,根据问题一中所给出的各温区的温度参数T1, T2, T3, T4 及过炉速度v,需要求出过炉曲线,即焊接区中心的温度变化
# g$ f5 \' g! q! k6 z
% Q& F5 f. C, @5 j

4 R. o0 Y: N2 R6 t3 O1 X对于热传导方程的求解,需要先确定热传导方程中的参数—热扩散率,这% y; I5 u! z! a- d3 e' V
可以通过附件提供的炉温曲线数据进行参数估计。热传导方程的求解可以利用差分法进行。
- B+ ~, n; {* J* L" p, O; ?8 G8 ?; F. ?
4 H! l' E5 I& L9 e5 d# l
// lamda的计算的部分代码2 A  i7 t: G, H( y  s8 o# U" l. P
array=zeros(76,length(x1));
( x4 n: W* X3 s# Karray(1,=y;
. g# b+ A2 v" d+ |& {, A+ zarray(:,1)=z(:,1);& I) V/ x! d5 R
for k=1:31" [+ y3 i3 d; k4 c, h9 K
    for j=1(1)-1) B4 `+ E8 z& \5 E
        for i=2:75: y% W' v+ I, Y9 |
            array(i,j+1)=array(i,j)+u(k)*(array(i-1,j)-2*array(i,j)+array(i+1,j));0 m4 q" a# j, |
        end
/ t1 K# g3 `' N, U* A& V        array(76,j+1)=array(74,j+1);
1 z2 o. i! Z% Y- s    end3 K* _, Q4 x6 c- ~7 X6 X
    e1=1(1);8 m4 A9 u$ H9 @/ ~
    e2=time(1:5,;
4 P  u$ B( n. L; }0 {0 [, Y% `/ G% l    [C,ia,ib]=intersect(e1,e2*100);
5 h% d1 I  O* q; [" |% R9 [    for i=1:5# W9 a- g7 m4 y- B) Z0 |7 p# @
        b(i)=array(75,ia(i));
. S) L) k3 k# A0 s9 c% s    end  _8 q8 E+ q7 |1 D/ v
    for i=1:5, K' ~3 q; h( Z; p
        c(i)=(temperature(i)-b(i))^2;6 o0 O% }- J  D8 O+ v8 d
    end' A' b9 W5 C1 h- M7 \
    rss(k)=sum(c();* ~& f9 `4 K. X/ t
end
1 d/ b( u" ~1 L8 D& [- u" C5 sresult=[u;rss];
7 N9 I  O' ^. r; Z1
+ I4 }0 o- I8 r+ ^6 D2
$ s4 w! U( _1 l4 V- \, q3
& ?5 G% A( z* z+ P4% h. O  W8 H( g( Q3 E  B+ J
5
( v8 y1 u7 q0 w; r- L& c4 X# v6
0 B# N& V) J6 {% w! p; z5 _5 |74 H2 Y: \' x/ u
83 C( V% R& G) K  Q) t
9
  x9 F7 ~7 x7 a- i1 H7 m10
* r! N3 d  Z( _* V116 d- m1 F& N! q6 W8 v
122 |/ L4 b/ P4 O6 C2 m. l/ I) Q5 c
13, E3 L+ _0 Q% W! ^/ S
14& o5 e% |% [9 y0 s
15
) L$ s% a! v# b' n: p16
; B7 H1 m  C. s8 b17! Z) b, x# R- a. T: Y: ~0 p7 j
18
6 C+ W! R6 p/ v19  G7 b5 B5 D+ B/ q( Q" A3 L1 _6 |
20
( k' n& e9 ]6 C( S% V% v0 I' D0 ]% i21
, F7 F% C! |2 n2 q8 M22
3 Q4 f7 S7 q1 `/ d' ~23
' u- l9 }2 [( ]% b$ p; L6 M有限差分的核心代码:
% N0 [- }$ o* o' L! \5 Z& f. s  J- [- t3 K. X4 c
6 J; ^, `2 i* l. w/ G
//有限差分的核心代码; H& b, L% m7 l& X
array=zeros(76,length(x1));
+ k& o$ `) O8 Z( L; l8 n0 Barray(1,=y;1 f  `/ D$ K8 E, Z9 s
array(:,1)=z(:,1);
5 q( T1 ?& d& v6 C% C, t2 X' Nfor j=1(1)# a$ |* R( E; _) S
    for i=2:75$ F3 o; r* s0 L5 N# U
        array(i,j+1)=array(i,j)+u(1)*(array(i-1,j)-2*array(i,j)+array(i+1,j));
' P$ _0 E+ X& E, B& k    end
$ K+ S& Z6 ?9 t) H2 @2 N        array(76,j+1)=array(74,j+1);& T- L/ L& \) g2 V9 j
end+ g/ E: w8 X- N6 @3 E* H
z(:,2)=array(:,2143);
2 ]; j8 N, q+ B5 L8 p/ G7 ?# Wfor k=1:9$ O" d# D* t- {. J5 I
    for j=L(k)(k+1)
4 A2 u/ ~2 B- f4 e! Y$ i5 b, L        for i=2:75
! E! ?: ^- p6 N6 B            array(i,j+1)=array(i,j)+u(k+1)*(array(i-1,j)-2*array(i,j)+array(i+1,j));
9 i* ~( L1 {. E% F0 y% \8 C        end
$ o0 d6 Q, Z. {+ ~+ U            array(76,j+1)=array(74,j+1);! ^, _; S: U* K" ?9 Y
    end
4 \9 Y4 c% G. J, G! X8 a+ Jend
1 T5 K5 w5 ]# Qarray(:,length(array))=[];; n8 e" d3 W. D7 G: k& }
0 e; d; _3 T8 H3 b3 U1 ~1 ^

7 a) U8 o( v) ?! R, z& N# G18 ]' v$ ?1 E0 F! ^" f% C
24 J* K1 Y. ]# F& l: z- c  V
3
! Y  j/ ~9 g* ~# O) U# W, c' L4
/ Q8 k% Z$ g$ X6 K' R& N( o56 W) }6 {# i! w' ?+ V
6" e7 E7 K5 v% n# t- @
7
) ^7 m8 x4 r9 B* z3 V87 ~: S3 H5 z) J' m- a
9; i, j/ ^0 B! N9 l8 o/ q& F" O% e
10- B; ~2 U3 C- C
11
! L3 D4 R4 ^6 S3 [7 o12/ d. h  Z7 d  S6 y9 x7 N5 m9 v4 T- [
13
9 x( J( c: Y% @) y# j; @14* Y3 O& Q9 H( L1 e  Q" ?9 z
156 l) [8 O3 Q  j7 Q2 V4 a
16& r9 m8 d; a0 W9 D$ G
17" h) X  D3 k" G8 M, N
18
3 {; B& g- h' }19
2 _, h! k5 h  W4 x5 h6 T7 I# U20
2 X% {9 o: t, Q9 C- a21& D& A& l0 ^1 N* K0 B& V+ q/ O
得模拟数据和真实数据对比得炉温曲线:: F! C0 m- W5 n: M+ v+ d* y' ?

$ s4 h& I) f  O/ d; f4 [+ v& K

  u+ U. E8 V4 L+ ?7 M5 j
" |9 ~8 A7 h& O$ {; I1 P! W& S9 V" r) n
$ _5 f" h2 g7 L& H0 b
问题二
  v1 l( y7 K2 x& m; J& }# P问题二中,基于问题一中所建立的炉温曲线模型,在四个温度参数给定的条件求取传送带的最大过炉速度为优化问题。此问题可以看做是问题一所建立模型的反问题,即在温度分布+ A6 y) X9 K' H( C$ P" h2 X
已知的条件下,要求通过该分布计算最大过炉速度v。在具体求解该反问题时,可以利用遍历法对过炉速度进行遍历搜索,这样就将反问题转化为了正问题的求解,从而问题一中模型方法都可以继续使用。$ J' F2 H) a) m& c& q" B
5 }# P1 I' Z4 s  K) D
7 _2 k$ o" _0 O+ X6 G4 d
问题三和问题四; r, g( o$ v& x( G, M& u
问题三和问题四仍然和问题二类似,也是对过炉曲线提出了不同的要求,进而在这些要求之下确定影响炉温曲线的 5 个参数 T1, T2, T3, T4, v ,求解也可以采用与问题二相同的遍历法进行,但由于此时遍历的变量个数增多,如果遍历步长较小,必然会使得计算量增大,因而必要情况下,可采用分阶段的遍历,即:大范围,大步长,小范围,小步长。需要考虑的就是对于面积和对称性的数学描述,面积可以采用积分的离散化表示,对称性可以采用以最大峰值温度两侧取对称点,使对称点的温度差值尽可能小来实现。
$ _+ t- z( n2 W# e
& s  |4 M2 K  f! V% N3 a

6 f5 S: @9 ]9 @答案如下:2 D8 U# f5 O4 L: K, S: P9 K  U7 h2 u* T& W
6 |" Q! i2 u% Q2 X* D$ ^# U% G! F

/ b) Y% k3 @6 c5 k% l/ P注:用以上方法算出的结果均在最优解范围内,详细解读请待下次,困了该sleep了
$ D4 Z6 E5 R7 ~7 T+ L————————————————
2 M. u5 y* r  G5 O6 Y9 _$ c, R版权声明:本文为CSDN博主「盈博简」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。# g3 J/ F3 Y2 |4 C: P) ?  k
原文链接:https://blog.csdn.net/Sandm_Hou/article/details/112726635
( f. \  W) z' M& _/ b
( p4 M6 `/ L& p& M( R( {# f: z- q+ j4 W4 W( s0 T

作者: 1051373629    时间: 2021-8-9 13:04
谢谢分享!
7 }& P! M, L. f- T  E
作者: 1051373629    时间: 2021-8-9 19:17
谢谢谢谢!  D! ]' W6 T2 Q- f! P0 e7 h





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