数学建模社区-数学中国

标题: 2016数学建模国赛A题程序(原创)作者cclplus [打印本页]

作者: 杨利霞    时间: 2019-4-10 10:54
标题: 2016数学建模国赛A题程序(原创)作者cclplus
2016数学建模国赛A题程序(原创)作者cclplus

% f2 A. k, g4 F  G/ _
4 c' K8 G# T$ x% X
+ a6 b3 I; c! H, v' vclear all;
8 j* _0 c; E5 `! @: w4 aclose all;
  \6 B& S" u1 o$ Gclc
8 o2 n9 f% F% f- v# n, h( K( Sformat long) q' ]4 O7 d) i" `' U) v1 h, C
syms h S Fw Ff Ff1 a b c d l L F depth n pl m x1 y1 y t distance n a1 b1;
& T1 C  [9 Z# E' d( TF=[];
2 w8 a5 p% f* f% g8 Itheta=[]; % b2 p+ y% s* G9 W. B0 h
v=24; %风速
+ |, R) h! S; w1 ~! f0 yl=105*10^(-3); %锚链每节链环的长度
6 ?$ l7 r" g4 D* H# @  ~L=22.05; %锚链的总长度
* G0 R& n- Z$ [* v( V/ _num=0; %通过更改不在海床上的链节数得到一个最优解
$ p: ?1 q0 E+ x4 b+ q1 |+ c2 Unum1=round(L/l);7 Q+ j3 w* Z& M/ Q2 P+ T8 `
num2=0;! j$ p- O8 R. F( P" s0 F% L: P
lin=0/180*pi; %第一个链节与水平方向的夹角
- i/ N: L" k( v* P2 glin1=90/180*pi;
) h& W5 R4 _0 q. b0 r' p4 h( wlin2=0;
  s; t* E5 I. |# V: Tm2=1200; %重物球质量8 k+ r( N5 X9 s  d8 J
pg=7.7*10^3; %重物球的密度(单位:kg/m^3)
$ y: n6 v; x# W( r& w- `depth=20; %水深
8 N. C& ]# h. M( _pl=7; %锚链单位长度的质量0 |* H  p: D/ j' `' Z9 a' B
vh=0; %海水流速
6 b+ u" g+ V% e% j% Pg=9.8; %可通过改变此语句来修改重力加速度,单位为m/s^2
% v' ?, E: ?/ H& G: S8 tp=1.025*10^3; %海水密度
8 P  G# I% H$ E2 @3 OM=1000; %浮标质量
' |8 p2 a: {. m6 o. i) cm=10; %钢管质量+ x( d% [% T3 f, g  S- I5 ?: q
m1=100; %设备和钢桶总质量6 O9 f9 @9 q4 N# \% G* g2 b$ ]
y=0;2 k: o$ }0 b. Q1 F6 q
d=1;
( S& I8 q+ }5 I; S: o, zj1=0;
/ a3 X2 H* N$ b) E5 u% fj2=0;9 b# r% S$ F9 \4 }) y8 D
while(abs(y-d)>0.005)%在这里选择所需要的精度,
' x- Q* w- ~8 y# \2 q6 ~if (y>d)&&(num<round(L/l))8 W! a* O$ T: q; S
num1=num;3 k. e. ]' @* H$ s
num=round((num1+num2)/2);- _" l3 I: Z* ^1 `+ q& M
elseif (y<d)&&(num<round(L/l));& S, h9 h" P7 g- n! H
num2=num;" K( m% I& Q" \8 w3 s- t
num=round((num1+num2)/2);
2 e# D7 r' q9 Z$ q# h8 Belseif (y<d)&&(num==round(L/l)), e7 Q5 B% q7 ^* Z4 _" z, ~& b
lin2=lin;
1 K8 W$ ?3 a5 g4 Elin=(lin1+lin2)/2;
0 J0 y8 O* E  P& l8 Q3 [elseif(y>d)&&(num==round(L/l))
; @/ R* i2 j/ W5 f# ]7 ^2 G; _9 jlin1=lin;5 D8 Z% H& ~+ l
lin=(lin1+lin2)/2;4 J# a( @4 T' }' I" o# v* `
end
' G* d  ~, S( ]  ~4 v%钢桶受到的浮力
) _: b& z0 G8 T4 z$ w- bFf1=p*g*pi*(0.3/2)^2;
" z& R0 z: {2 P  w3 {  e$ e  i%钢管收到的浮力
4 d1 V3 w' O, z/ t9 ~& ^# C$ W9 J" YFf2=p*g*pi*(0.05/2)^2;. l* e& O* ]" k* y% T4 W
%重物球所受浮力: r- `3 o- Z2 S  h9 S& D* ^6 |  `0 s
Ffg=p*g*m2/pg;
, y) q  p. o( {) M; V- k' m" U%重物球所受海水水流力" V/ F# W( D+ r/ z4 L% _
Fhg=374*pi*((m2/pg/3/4)^(1/3))^2*vh^2;; W. m2 q; C1 Y! h7 F, S0 H
%风对浮标受力面的投影面积7 _& n; f: @& U, A6 o4 M/ T
S=2*(2-h);
  |# Z* d/ u( I% M+ Z' T/ a7 t%风对浮标产生的力
* p" O$ k! d. d( a3 SFw=0.625*S*v^2;" X  v3 ^# V, \
%浮标在水中的体积
; E2 M4 W: J3 S" |# u  JV=pi*(2/2)^2*h;1 t2 x2 S7 T2 |3 |# D
%浮标所受到的浮力
& w6 z' |; i3 ^8 I2 j1 J& _Ff=p*g*V;
  Q/ p' L7 g0 O' L- |3 C%浮标受到海水的近似水流力0 \# W/ g5 C4 e7 Z1 r1 J
Fb=374*2*h*vh^2;/ Y2 A- X8 j0 `! P0 H* c( [% K
%钢桶受到海水的近似水流力
" {5 x5 q6 D7 {5 [- [Fs1=374*0.3*vh^2;1 ]! r$ u* l+ w* e8 P& X! q
%钢管受到海水的水流力的近似值
9 {6 j( q6 c* J$ iFs=374*0.05*vh^2;" T2 d' e& c8 d0 I
%浮标浸没水中的高度7 ~& o/ a) F" I- n* @% c! K$ B
if num==round(L/l). `" [* c6 n# i
h=(m2*g+M*g+4*m*g+m1*g-Ff1-4*Ff2-Ffg+pl*L*g+(Fhg+4*Fs+Fs1)*tan(lin))/(p*g*pi-(1.25*v^2+374*vh^2)*tan(lin));* w- V9 v' C' u- r
else
: `: b* I, J% o, R: o% Lh=(m2*g+M*g+4*m*g+m1*g-Ff1-4*Ff2-Ffg+num*pl*l*g)/(p*g*pi);# g, a) E3 v- l' a* H5 E) l
end
  W1 E) Z8 S. U" u1 p  La=Fw+Fb;, k1 O$ k7 R( d4 j# d+ h
b=-M*g+Ff+(Fw+Fb)*tan(lin);4 t0 ^; W6 \, {( ?7 c- ]
if j1==0. x% F& W9 C! q) W) L6 V
a=eval(a);6 p8 `8 R+ \1 _' F& ^8 x
b=eval(b);7 j- G/ i; P$ {8 _; j. V, b. Y
else/ q+ j4 `7 a( y  `6 K
end
# [  P+ q3 O+ o4 wF(1)=sqrt(a^2+b^2);
: B1 Y- X) u; j. o* J0 V! ^# Otheta(1)=atan(b/a);1 r% R+ z" j5 @% \2 }
n=0;
0 u0 I0 D0 K8 L0 h0 d8 \2 xfor i=1:4
" S$ ~$ z: W0 ~' j% R9 R% W%钢管受到海水的水流力
0 ?7 t# G8 {2 q/ SFh(i)=374*0.05*sin(theta(i));3 @1 a9 z( b0 z# _$ @& D* [# \9 F% n7 d
n=n+Fh(i);; W, D& Y( ^1 o# D8 X
a=Fw+Fb+n;
6 ]" {+ a, d' p5 B# z% E' k' rif j1==05 N+ M  B: S8 ^. u4 T) ]+ M2 B
a=eval(a);* F! H0 V: x: K( O1 _; \
else4 V) _. k6 V- Z$ Z: W8 j' `! ]; L
end6 W* M: t$ Z* ~' Z
b=F(i)*sin(theta(i))+p*g*pi*(50*10^(-3)/2)^2-m*g;
5 _* K9 }( [2 }% B: HF(i+1)=sqrt(a^2+b^2);
0 F( v  z1 H) [: C1 Ptheta(i+1)=atan(b/a);
7 B3 ^  w+ a* y, }; q; z3 ]end5 R  j3 A7 p7 g$ I4 f5 H1 R4 Y
c=0;8 F  a% s2 e  R, a& ^$ I( f
for i=1:5+ ~! a' u  H- I4 Q
c=c+sin(theta(i));2 @6 [4 ]# W4 E, T: h# o% u6 K# N# e
end7 d0 T: y$ r1 O8 ~- [0 a
d=depth-c-h;5 O. i( z8 \% C- l0 T$ e
y1=lin;8 X" C# v. F4 z. h' z, O
distance=0;$ B; X. j9 U1 O$ N1 L
if num==round(L/l)
3 L. ?0 y( l8 A, r* M; w9 R# w8 ty=l*sin(y1);- ~. F# ]) m7 c! |% y+ @
x1=Fw/sqrt(1-(sin(y1))^2);% b/ |$ W, q( v: Y( l6 B* i  `
for i=1:num-16 U( v- n4 L$ p2 T* S
m=(x1*sin(y1)+i*pl*l*g)/sqrt((x1*sin(y1)+i*pl*l*g)^2+Fw^2);
! G( d6 @7 Q0 G  a" n9 a& em=m*l;4 [, o  x6 `3 F% ^
y=y+m;0 k+ ]8 R8 ?0 m* }6 i2 q; {
n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;( l0 M2 s$ M9 D! f6 P1 R
if j1==0
! R% m: f# Z6 `n=eval(n);4 |" c# V( E( J0 j8 R- {+ r0 y
else
: s; S+ t- E! Lend
* J: v1 ]" u5 \: Y4 \2 Mdistance=distance+n;# I4 M- A, a9 H  R
if j1==0
) O8 g5 b0 A' p9 E+ X; D! r  \/ J$ ay=eval(y);4 f2 t: c. ]  i- P, n
else- J. O9 A) R$ R' b; `9 H
end8 c" S0 A* I- m4 `4 t
end
7 X! R. Q( `6 \! _7 H5 Belse
) F) S+ R# ^! u3 q! C1 ?y=y1*l;. k4 m2 X  k! O# U; }
distance=(round(L/l)-num)*l;
2 p5 d1 y0 |1 y3 J# R- r% }for i=1:num/ U  Q0 U! L+ C; I/ r0 ]
x1=Fw/sqrt(1-(sin(y1))^2);
$ i8 w, v" Y$ z9 r4 ]( Tm=(x1*y1+i*pl*l*g)/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;6 b7 K$ ?$ }3 Z$ `" Z- ]" ^
y=y+m; - P7 T9 X! v2 ~6 T' T+ R7 b
n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;# i- j/ I0 n4 v. M' j* T! ]
if j1==09 x4 q" _" e7 |7 R( ]
y=eval(y);
- w7 y: s/ M8 `9 Wn=eval(n);1 r! j) d9 \/ E5 t$ o8 w" c2 I% O
else
8 }3 _0 f3 q, r7 _end: ^3 d$ N. m- t8 J
distance=distance+n;
7 T, e: @! F' \9 A6 i& iend
* b$ M$ @  {* t/ Y4 z0 Mend( m0 @5 ?! o8 T5 H
m=0;' i- Q) J# B4 b( h9 ~$ J& m3 l* a
j1=1;
" R  V) }/ H" f" \j2=j2+1;
! s+ C7 l' }0 j2 U5 p7 Yend
& X! [  O+ B6 d: L1 P%钢桶受到的浮力
  G$ @4 [0 \2 ~$ v5 l, V2 \4 W; UFf1=p*g*pi*(0.3/2)^2;
+ F. F8 @" Y3 K- Z& z6 X%钢管收到的浮力- D% D% {$ j; F" A# X
Ff2=p*g*pi*(0.05/2)^2;
3 l6 Y4 K: L% Q* A* W%重物球所受浮力
' W4 V/ P1 |; ]; EFfg=p*g*m2/pg;. g) o% Q: N6 D% g
%重物球所受海水水流力$ \4 y2 t- L" I! T% l
Fhg=374*pi*((m2/pg/3/4)^(1/3))^2*vh^2;( G$ k% h. M  B$ h: m% c
%风对浮标受力面的投影面积
! D: H6 {+ c+ CS=2*(2-h);$ p2 S+ c# _! Z- C
%风对浮标产生的力) c2 x& J' O! _% |9 E9 j2 I
Fw=0.625*S*v^2;
8 w# a" A: R% u3 `/ ?# L$ g%浮标在水中的体积$ @5 Z/ t& B" u3 [2 X# _2 T
V=pi*(2/2)^2*h;
" r8 \+ w' ~! T& Q) H%浮标所受到的浮力
( z( z% d' t# I2 P$ ?5 vFf=p*g*V;8 F" r9 U( A1 v/ B  W
%浮标受到海水的近似水流力
  z/ p0 u% q+ m0 f) [3 zFb=374*2*h*vh^2;' m4 \* |! l$ f( U$ `
%钢桶受到海水的近似水流力
% S3 X; \- p- {6 X: @2 hFs1=374*0.3*vh^2;+ a. W& w3 E! m/ J$ ~( K
%钢管受到海水的水流力的近似值
' @* V) w' J7 A- ]; ?3 Y% eFs=374*0.05*vh^2;" S9 L' I# Q' b2 {8 v7 P
%浮标浸没水中的高度
) B4 ?  F3 J# R3 j! ~: {# f! Oif num==round(L/l)4 X: i. Z) Y2 L( o- R3 u& `! _
h=(m2*g+M*g+4*m*g+m1*g-Ff1-4*Ff2-Ffg+pl*L*g+(Fhg+4*Fs+Fs1)*tan(lin))/(p*g*pi-(1.25*v^2+374*vh^2)*tan(lin));0 a3 U! `- P/ i' r# H: b0 U
else 5 h" ^6 X; f( ~
h=(m2*g+M*g+4*m*g+m1*g-Ff1-4*Ff2-Ffg+num*pl*l*g)/(p*g*pi);& a# j: V1 j2 Q& [9 L
end3 M% @+ q8 }: j8 A* z* l  ]
a=Fw+Fb;
$ R7 X2 e3 g# |: ~& L# {+ yb=-M*g+Ff+(Fw+Fb)*tan(lin);
  |3 m  w- |4 C' j5 _' b+ xF(1)=sqrt(a^2+b^2);
4 }4 d- h6 I. _1 V5 rtheta(1)=atan(b/a);
3 u% L. r+ b' D( m0 S% Cn=0;
# V1 j3 I) q# x9 m: ?for i=1:48 M1 \* F1 j" O- g" [3 S; E5 r& J
%钢管受到海水的水流力
# [. H3 l/ _2 w% s+ }Fh(i)=374*0.05*sin(theta(i));. D5 T  H1 R! `
n=n+Fh(i);
) X" w! A; T/ V4 ?1 ?5 k$ wa=Fw+Fb+n;; D- v) `2 [/ T7 e
b=F(i)*sin(theta(i))+p*g*pi*(50*10^(-3)/2)^2-m*g;; s& z& j4 C% {* `7 E6 T4 }
F(i+1)=sqrt(a^2+b^2);
' ~* h% |0 n  otheta(i+1)=atan(b/a);$ i. \; z* j9 s- [
end
! z, Q8 M; {7 Pdisp('输出钢管和钢桶的倾斜角度(角度制)')
  P0 Z# \9 W3 P7 U# o0 {% Q5 Ath=90-theta*180/pi' [, Z# ^+ v, @/ R
m=85*pi/180;9 }7 Y9 J' y1 ]
if theta(5)>m
* J* |2 p8 R  f4 y4 A1 X6 idisp('钢桶的倾斜角足够小,测量准确')
  {1 G/ a* F  e2 k$ [$ L9 gelse # W2 G4 L% r7 ?
disp('钢桶的倾斜角过大')& \% X# N3 [& L( u
end
- X# T. R8 d6 Yc=0;
3 J% @, M' k% z: ~, h) c! tfor i=1:5( Z2 g1 L5 T# A
c=c+sin(theta(i));7 q- T0 ^$ K# L+ N9 Y
end9 ^3 s$ F) H6 z0 j& ]4 v
d=depth-c-h;, H  \" V0 p" c
y1=lin;4 ~. \0 s, y/ L) E' e* i
distance=0;
+ I+ E/ @  f' Fif num==round(L/l)  H  r# `3 _0 f2 A/ I# E. b7 ]( m( Z1 |* k
y=l*sin(y1);0 X+ A3 t6 y) T, S0 H0 H
x1=Fw/sqrt(1-(sin(y1))^2);
' M! h( M) z3 y8 ?' [) d# ]for i=1:num-1- `3 G/ S7 m/ e, m/ I# @3 u  j
m=(x1*sin(y1)+i*pl*l*g)/sqrt((x1*sin(y1)+i*pl*l*g)^2+Fw^2);
9 T8 ~0 |4 j' X% `. T. `m=m*l;% q& H# z8 O' l, O
y=y+m;
# L6 u- ~+ s" i# A0 u, y) `n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
0 i  U: E9 Z0 s' r# c( {' udistance=distance+n;  i: [- y' a2 x2 d
plot(distance,y,'o')8 \& P5 V8 a  j- J* P
hold on
* P; Z% z( h* T! s. Oend& {, w5 ?) Z  S4 X
else0 h( o4 w3 h  Z# X& h8 q3 D
y=y1*l;9 j. m+ L/ z4 r/ m: d6 E
for i=1:round(L/l)-num, g9 g5 S2 ~) C/ \
distance=i*l;: c7 P* h" T* ?& X  x! N5 r
y=0;/ d8 D& b6 ~* L% N4 w7 q" ]
plot(distance,y,'o')6 Z! S3 {, E; ^1 ^- p+ z' Y# [. l
hold on7 S/ J: U4 h1 C3 }: k
grid on! ?3 E4 }+ F# M5 S* I0 W, Z. k
end
9 [6 f: {1 P% I1 c; ^8 kfor i=1:num
! Y$ G! h% a+ E! v! \x1=Fw/sqrt(1-(sin(y1))^2);& Y, {! {+ F) o
m=(x1*y1+i*pl*l*g)/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
) @8 b) q$ o: |7 Ey=y+m; - u" C+ A( f3 g- T1 b  p
n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
( @' f# T5 T! Y+ J9 _  }$ z8 wif j1==0
; {% F2 c5 c' {. `3 A, F+ vy=eval(y);
2 O; l% j4 x7 w* }n=eval(n);- l8 W3 Q( T. Q$ N1 ]! w* N
else
4 ~) D/ _/ i: ?( C) _) M2 H7 zend- ^+ k7 _$ `; u: X  E" u; Y
distance=distance+n;  a$ j( y% M2 P6 [! b
plot(distance,y,'o')
) Y8 m# j+ ?: ]( w% qhold on
: ~& r$ p: S3 gend$ G5 ?; j, `7 ~+ t% x( g
end
  P/ ]! Y9 F: [9 g# t2 ^* w1 Gm=0;
# t( U1 u! N# X2 q0 m: E1 vfor i=1:5
0 r9 @- y* ]8 z" O, k' Wm=m+cos(theta(i));% N1 e1 m* _2 a6 K. S
end" |9 k4 d  c1 g" Q  f" @  I( G
%浮标的运动半径2 M) Q) _6 }7 q- x, A
disp('输出浮标的运动半径')0 z% y7 Y$ p: D; ^7 E5 g
ans=distance+m
+ N$ d" t( G9 A3 X
" U9 G- u$ \  d9 x6 u
, S6 k, {- V" }' k) Z3 z/ b- k% A5 b7 s& H
; ?0 X/ i$ I' K% J( z& A- G! ?

' R" }7 b  h) j% \  x7 S8 j/ r4 ]0 p# t: [4 @+ M
- T$ H. n( i& {1 |0 X/ ]3 _$ n8 B

2018全国数学建模总结.docx

17.26 KB, 下载次数: 0, 下载积分: 体力 -2 点


作者: 571334077    时间: 2019-4-10 19:25
2333333333333333333333
3 A& [9 }3 q( r) ]5 W3 i( p




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