数学建模社区-数学中国

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

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

1 P9 {# X9 o) t/ o6 m8 O5 K9 c) a3 B; u; [# y+ e

* Y3 {! o( H) [1 L9 Y; @clear all;8 v1 B0 a' F5 x9 ^* Q
close all;
, A1 K  ]4 D; J) T' c$ w, `clc# ]! [/ a7 j9 h5 _; u
format long
6 {4 @4 q, |# Z) B- `* \3 `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;1 K, }: ]3 T: o$ p
F=[];
# {# [) _4 U6 r6 H4 Otheta=[];
( i* t8 U, `; ]+ K2 a8 \4 av=24; %风速- ?2 ?! _- l  ^- q1 K! v( a7 e' {
l=105*10^(-3); %锚链每节链环的长度, [: A( _9 M) K
L=22.05; %锚链的总长度- U3 T/ q2 U& o- B% @" l
num=0; %通过更改不在海床上的链节数得到一个最优解9 s1 f8 {. _* d
num1=round(L/l);8 c4 a- Y8 Y% k% B; f  ~; e
num2=0;
0 K. k4 g7 o4 |( J6 d) Slin=0/180*pi; %第一个链节与水平方向的夹角( g; F6 V) [# e" c' N
lin1=90/180*pi;
- T7 p8 G* A! J4 W& j& y9 p5 Olin2=0;
7 V. j, V3 h, O& ym2=1200; %重物球质量, V: o; w8 p( E* Z7 ?9 O
pg=7.7*10^3; %重物球的密度(单位:kg/m^3)
# V; }  A$ O1 h, I% ~" gdepth=20; %水深$ m5 P. |9 {  o1 n: b6 I
pl=7; %锚链单位长度的质量6 t1 S1 i  f, z3 k$ I: \) Q/ ~
vh=0; %海水流速
. R$ Y' _) {/ `- _  S% G7 qg=9.8; %可通过改变此语句来修改重力加速度,单位为m/s^22 T2 ]! A) U8 E6 V$ f/ }
p=1.025*10^3; %海水密度
3 g; A: p/ Y) J2 M! YM=1000; %浮标质量
- W) ?: O5 l2 i0 N0 @1 q3 wm=10; %钢管质量, U6 ]2 G8 H7 W) H+ |3 O
m1=100; %设备和钢桶总质量  t% q' j3 i) H) _( S: t
y=0;7 l8 l2 ^0 O! H- L
d=1;
" O" \7 L) }  q. c0 k1 Lj1=0;
& I6 D4 {4 b7 r/ c7 \4 g. Fj2=0;
/ j0 w, S* e' [) A; cwhile(abs(y-d)>0.005)%在这里选择所需要的精度,1 M9 l8 \5 R# h4 i+ L+ r8 W3 ~, @
if (y>d)&&(num<round(L/l)). U0 u% I) Y' d
num1=num;- G+ _; W/ n& R4 ^7 K$ Y3 q
num=round((num1+num2)/2);
2 w8 _& V/ b' Q( L: [% F5 _0 Velseif (y<d)&&(num<round(L/l));
2 p7 V5 m% y3 a! W* G& Onum2=num;
$ {. e9 T! G( f2 w5 Znum=round((num1+num2)/2);3 Y4 `- y& d* s, I: q
elseif (y<d)&&(num==round(L/l))
( S" V) r7 ?! H* N- [6 Z8 ~) Clin2=lin;
6 P  e* Y5 Z( }; a& y8 Z1 X. Rlin=(lin1+lin2)/2;3 M$ }9 U% A( }3 c
elseif(y>d)&&(num==round(L/l))
0 D. ~: [: ]6 _  N8 z+ P" J0 Elin1=lin;5 _) t1 j# k7 j; r) W8 h: v0 l+ t* J
lin=(lin1+lin2)/2;
  W7 `0 Z' g2 Q* R( lend1 d6 C% T$ G7 Q
%钢桶受到的浮力
: y2 y. |& H  a% W8 gFf1=p*g*pi*(0.3/2)^2;5 E" k' P5 _' f, x, g+ Q' I
%钢管收到的浮力
3 `  ~% C$ O- x3 y4 f' ?Ff2=p*g*pi*(0.05/2)^2;
* |0 C; ~) N0 w, T%重物球所受浮力# q/ ?! r, J3 T9 `1 Q! m
Ffg=p*g*m2/pg;
/ O% ]: Y" L! d  ~4 O2 A  [6 H%重物球所受海水水流力
; t  o* y& [8 l2 o% iFhg=374*pi*((m2/pg/3/4)^(1/3))^2*vh^2;1 [/ ?2 F  B9 V0 ^" k. S
%风对浮标受力面的投影面积
' F* Z3 @& O% iS=2*(2-h);
7 p: p+ V- p2 A# ]1 e% x%风对浮标产生的力% X8 a7 z% G0 y& Y2 D; s, ^
Fw=0.625*S*v^2;1 e& ?# w* I$ V/ n6 R
%浮标在水中的体积3 E/ y1 ^: x! o7 ?0 U6 u
V=pi*(2/2)^2*h;
; y, |& W+ I) A# M. B/ G( f%浮标所受到的浮力/ W3 [& x$ l1 D& b* v9 ^& u6 C
Ff=p*g*V;
" t3 }6 E, D4 u% ~% V%浮标受到海水的近似水流力
4 l4 A4 \0 s( {. BFb=374*2*h*vh^2;% s  T8 b3 o7 O( P5 b
%钢桶受到海水的近似水流力
8 ^+ K. N3 A" ~% vFs1=374*0.3*vh^2;2 [. c$ q! V2 Q% Y# \
%钢管受到海水的水流力的近似值2 T& S' F7 f$ h$ ~' a$ o6 R) r1 e! v) b
Fs=374*0.05*vh^2;
# `- E- }8 R+ |2 J! T%浮标浸没水中的高度4 ]' Y/ p2 n, m& W
if num==round(L/l)) x7 _2 `' M# }6 R( {: ^  P" g
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));3 [# j  v* }4 B
else
# \/ s( N! H3 @6 `7 }& Eh=(m2*g+M*g+4*m*g+m1*g-Ff1-4*Ff2-Ffg+num*pl*l*g)/(p*g*pi);
9 ]; Q# c+ c  I) T+ M9 \9 Zend1 h/ X; I( q0 w
a=Fw+Fb;( c1 n+ A1 ^8 x
b=-M*g+Ff+(Fw+Fb)*tan(lin);
( P0 v  N- w" d4 A7 E) I6 |if j1==00 X. {  E, q1 |
a=eval(a);& v; P7 d' A; q7 D3 W
b=eval(b);2 }. q5 c7 q! U3 s  Z
else
6 s% ~' D1 F% R  P- Jend
8 ^) K0 t& f+ R, eF(1)=sqrt(a^2+b^2);' }. E# o: E4 x6 C* ]* F4 r, q8 t5 b
theta(1)=atan(b/a);
4 i$ s; `! B! ~, V# ?7 R5 rn=0;8 K0 }7 c! r2 V2 h" x/ t& \6 D4 {
for i=1:4
( i4 c3 X( F) G: U- k%钢管受到海水的水流力8 F1 R% K! @7 y" @; k4 ^1 S9 o% z
Fh(i)=374*0.05*sin(theta(i));
5 F) ~6 r5 s( Q6 h# S  [1 in=n+Fh(i);
! J( L8 w6 ]6 B) _% V0 Ia=Fw+Fb+n;
, S' J6 r/ e% H+ |: bif j1==0
3 [% p1 ^) @, e9 ta=eval(a);5 k- C+ Q6 ?+ J* N; G1 i' E
else
4 ]  j' T/ \6 v! b( W* bend! s6 t7 X$ W2 T2 x% d
b=F(i)*sin(theta(i))+p*g*pi*(50*10^(-3)/2)^2-m*g;
+ N, M* |4 W% A4 }9 i1 z3 A* ^( SF(i+1)=sqrt(a^2+b^2);# [" Z3 W! C  E" b7 E
theta(i+1)=atan(b/a);( B+ V" v) f& ?" {6 [6 ^. z5 Q
end& `! R6 v( Q& r7 Y1 A, A
c=0;
3 R9 `/ }5 Y" D  [( Q" Rfor i=1:5
, q0 u- {( o! I' Y+ u" ]c=c+sin(theta(i));
& R) o" m, ^; M$ \: Cend9 k3 Z/ \: X+ Z' j
d=depth-c-h;
( J& B; J  T$ ^3 u  x! s0 A: M4 k1 f+ Ey1=lin;
& Y! h% r6 r+ R- Adistance=0;& ~" u# D6 Q, X2 q4 y) ^
if num==round(L/l)
9 V) H( T4 K( C! y4 Py=l*sin(y1);
6 V# ]$ e' N+ g6 C3 s) A! B: hx1=Fw/sqrt(1-(sin(y1))^2);$ Y( N2 _" Z6 z6 ?8 @
for i=1:num-1
9 W% C  M) _, M9 {7 N6 p9 w% O* Gm=(x1*sin(y1)+i*pl*l*g)/sqrt((x1*sin(y1)+i*pl*l*g)^2+Fw^2);
3 `% K7 d9 M" `. |6 n' jm=m*l;6 s8 a, R. P9 ~
y=y+m;
! Y, C+ ~% I+ p# ~/ on=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;/ ?8 p, J' k, L' t& [
if j1==0
5 y9 ]" a1 e* g: I- t0 {8 ?; Q% D, ~4 @n=eval(n);, K7 I3 S$ C8 z5 t& P; a
else& J1 P% }" e/ {  Y8 h4 m" G1 O
end3 ~; P* y4 t5 E% P& {1 _
distance=distance+n;
4 U( g# q$ R% p) O& L3 \" |if j1==0
& g9 _: O$ A3 \- h$ ly=eval(y);
1 l+ _, h  L) K# G  Zelse  c, N! A! N% n' ?  \% t# j
end
. X/ V$ F4 f; @" P* iend
( f/ s0 V: X) ~+ |else
) `2 U( F$ ~: _1 \8 ]6 Py=y1*l;* `# g5 k. }4 X( M3 r
distance=(round(L/l)-num)*l;; T) ]5 l8 o# i7 O0 {' f( P7 G' C4 o
for i=1:num" y2 n5 t3 l6 A' l5 y$ _2 |
x1=Fw/sqrt(1-(sin(y1))^2);
) r- c3 X0 B! K* {! a8 lm=(x1*y1+i*pl*l*g)/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
- V6 E. ?- b/ f0 R4 K5 ?# y, my=y+m;
1 I0 D; {; R0 a. \- C& ^n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
+ I) L. ]/ }/ ^9 d! {if j1==0
$ ]: J6 N1 q6 _) T8 \, [' vy=eval(y);' v% X' N3 W: W; i" `/ Z
n=eval(n);
5 w8 ~# V' c/ c) Velse
6 ^4 M: K' W0 ]7 L# P# a7 _- ~end9 ?6 \8 t* `5 _
distance=distance+n;/ u6 X1 r! x1 V1 Q+ x6 {/ z
end3 M+ @1 X8 [, r$ S. p  J8 U
end- F; Q; h4 M4 z* h0 ?( ^0 u
m=0;
" m0 y- q0 w, g2 ]4 {7 w- T, ]* jj1=1;
/ E6 u* ]8 G, o& r/ Bj2=j2+1;5 M6 ^5 o! i; \
end
7 n" d- g6 w9 J* M3 a$ |$ ^0 g%钢桶受到的浮力
4 E+ k$ ]& z6 ]Ff1=p*g*pi*(0.3/2)^2;
. ]: c) W/ _2 A1 ]' P- a%钢管收到的浮力
+ X1 F* J8 U; OFf2=p*g*pi*(0.05/2)^2;0 v; i) O6 T5 d+ V
%重物球所受浮力
* a4 ~: e+ q7 O# ~+ @4 ?! ?Ffg=p*g*m2/pg;- s; W4 F1 x9 x4 n3 N( P2 z. N
%重物球所受海水水流力
  M3 I. ^+ Q& ?+ T  rFhg=374*pi*((m2/pg/3/4)^(1/3))^2*vh^2;; J1 X3 l) O8 [. F/ E
%风对浮标受力面的投影面积/ p2 A# y! d3 l  R# g
S=2*(2-h);2 M0 W; K2 A( [7 F
%风对浮标产生的力
, A& L9 W& D0 @0 LFw=0.625*S*v^2;' R7 y$ ?0 U( n% Y/ C% K
%浮标在水中的体积
3 X4 ^3 M: V/ D' `* S/ mV=pi*(2/2)^2*h;
, b4 y' T9 G" Z4 \: a  Z1 g/ g' n%浮标所受到的浮力
6 X' _1 T. t& {" NFf=p*g*V;
2 T- V$ c" N- x%浮标受到海水的近似水流力
9 U3 b: ^- b8 q$ \! y3 VFb=374*2*h*vh^2;
% C& m; v$ I/ C# u( `0 I%钢桶受到海水的近似水流力5 L2 c2 O7 U( g8 w9 ^4 P, a
Fs1=374*0.3*vh^2;7 i6 j1 |4 y1 O9 Z
%钢管受到海水的水流力的近似值/ ?% D+ ~% x0 f/ \7 @9 N6 [1 k
Fs=374*0.05*vh^2;
* J. n( k2 `" ]" }%浮标浸没水中的高度* T) T% w' Q3 z, J. K" G5 s0 r! d
if num==round(L/l)
/ ]3 R2 J, _; ^. Q, g5 Z" F1 k) Nh=(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));
! _" h2 h2 I$ uelse
, y3 u! Q% B: a; I. S2 f% _h=(m2*g+M*g+4*m*g+m1*g-Ff1-4*Ff2-Ffg+num*pl*l*g)/(p*g*pi);  `( _6 a. [5 B
end
/ w0 Y/ W! _0 @: K' r1 w' ka=Fw+Fb;, c+ T" K: A& q* V
b=-M*g+Ff+(Fw+Fb)*tan(lin);1 a, L" d  y7 S- K/ V
F(1)=sqrt(a^2+b^2);+ c* G3 I: Q2 [- z& n
theta(1)=atan(b/a);
* W# S1 d0 U1 N; \, ~8 R/ S, Mn=0;
$ o6 V$ R/ @6 N( ^8 Afor i=1:45 _1 i& Z" m' \# |9 i- d1 b7 w
%钢管受到海水的水流力
& |: ^) ~! L  t  \, mFh(i)=374*0.05*sin(theta(i));
# k8 l' H% [3 ]. _: z8 hn=n+Fh(i);
( z9 \. A, P9 h' w* Na=Fw+Fb+n;: m( [( `% u, n, i& B; |
b=F(i)*sin(theta(i))+p*g*pi*(50*10^(-3)/2)^2-m*g;
6 p, e$ P5 K+ x% `F(i+1)=sqrt(a^2+b^2);
9 D4 d( F; W1 {$ }9 Btheta(i+1)=atan(b/a);. v8 s- |8 q) K
end
8 o) A$ ~. v8 }disp('输出钢管和钢桶的倾斜角度(角度制)')
9 \1 `# j  J1 Hth=90-theta*180/pi- P2 ]0 w0 t; s1 A% w
m=85*pi/180;6 s" S8 O+ l5 j& y% J8 a4 a2 a
if theta(5)>m
; \6 I$ @/ y+ f6 Edisp('钢桶的倾斜角足够小,测量准确')& V" h. g" B9 p; H. T4 V+ S3 j
else
) e5 l+ c; S) i! {7 A2 Rdisp('钢桶的倾斜角过大')
3 a5 y, F. ^1 z4 x& J& Bend" @% |+ t4 w7 |9 g5 Q
c=0;
4 `- t% Q/ I* p; l6 |( pfor i=1:5. g# W' P" L) H# N) z0 H/ v, s' @" s
c=c+sin(theta(i));) ]+ l, a" N# Y/ P7 {6 M# `
end& h, H+ B; e4 [$ n2 m5 _4 r4 s# [
d=depth-c-h;" ?3 ^5 E& s, O; b7 G9 w* _
y1=lin;
9 X! O0 V9 L. Y( D2 t5 z9 edistance=0;5 z- i  e5 l+ f$ H( E1 B$ H
if num==round(L/l)
3 y$ s+ n4 ^/ v4 w' e0 W; D7 e+ sy=l*sin(y1);
: v. i& D7 F, x; c& j( m; ox1=Fw/sqrt(1-(sin(y1))^2);
4 x3 {3 g: `+ ?/ Y' Ufor i=1:num-1. b4 I" j: D1 K5 A5 u5 I( T, S
m=(x1*sin(y1)+i*pl*l*g)/sqrt((x1*sin(y1)+i*pl*l*g)^2+Fw^2);
8 @; U/ H. J, m" `% [m=m*l;' G# q# @$ W! T$ T+ H- m9 m: E2 U
y=y+m;( k3 \* _  G  m" p9 i! Y( T% @
n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
6 b- P4 I. h" h' j  g( v3 @% Gdistance=distance+n;
: `' k1 a9 X$ O! k) N& u; _3 u1 Hplot(distance,y,'o')
9 l, [7 q9 W( q9 \- F% ^$ ihold on
: B4 ]! ]( S8 e' Mend% C( g3 y, F9 _9 W& b. x" F4 D
else% |" w' ^5 K* j7 I
y=y1*l;
" \' C4 I/ L9 c1 cfor i=1:round(L/l)-num6 r7 d0 H9 K$ W" V+ D) R
distance=i*l;: u6 R) \6 R$ o7 ?. w! y- w
y=0;
# b  V$ A* S% p8 y- ^$ `plot(distance,y,'o')
% r8 f; u9 A1 bhold on4 k# F! }1 M. c2 U9 s. w. c$ B. J
grid on7 d+ `( b3 u2 ]2 `- p  ?+ {5 Z
end
3 t. d0 ^9 J' @for i=1:num6 L& @/ q) [# O1 b  |) e
x1=Fw/sqrt(1-(sin(y1))^2);, Z% t# x( H: n* v. N& c
m=(x1*y1+i*pl*l*g)/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
) s- Q) P8 ?. k6 }) @y=y+m;
, {' ?" h; ^# fn=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
! r" ?6 e/ E2 v% h( Q) N" |if j1==0' m2 p: K0 ]9 `! I
y=eval(y);
& _* O# J- o$ ~, ?n=eval(n);# O5 ]6 V& K# B- @, J
else2 w2 g, q7 p' y& H- z6 S8 w
end" z( t) r' Z. y2 z# L/ r
distance=distance+n;
3 T3 b$ e( u) u% q. I" ]& splot(distance,y,'o'), }2 p. C8 W/ E
hold on
9 E: T- }, _* `end
# l% [2 A+ S& V& yend
: h$ J5 K. E* m. t3 n* Om=0;0 O9 i  s' P, a; H4 Z/ S
for i=1:5; `- l- y% I* S
m=m+cos(theta(i));
* `) F& s! ^! R* N( p$ T- h5 `end( g5 B$ G0 m  F; A' R
%浮标的运动半径
) j" |$ h' G  ^; I5 l$ K) rdisp('输出浮标的运动半径')
3 y5 X0 R* i5 i4 M" ~ans=distance+m% ]; d8 W7 ^, \' h

6 `# q8 @+ W$ x, Q; ]$ J& v4 p9 |: h: V$ ?

8 X* D7 H. s! |; ^6 E1 t5 H. Z1 N/ q( S
* z+ ~; o1 U9 h  P, @/ G3 l

/ o  p, e) r  l
$ i! T/ \" E5 G7 O4 J: m( Y' _

2018全国数学建模总结.docx

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


作者: 571334077    时间: 2019-4-10 19:25
2333333333333333333333
# v, _, H5 I6 E# j6 Z6 p' w




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