数学建模社区-数学中国

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

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

  v4 ]9 |5 C& ?( e& C
5 ]1 ~9 l( }5 u6 t1 u  a; [
- u: M; v8 x+ O: ?clear all;3 O5 {2 g7 v) C( L7 B7 d
close all;6 T1 M/ W( u# S. |, Z1 @9 L% z: E
clc+ j/ x8 l$ T  C! W# [8 G# W
format long
) {3 i" J( _7 p% C8 b2 x) @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;
9 T, i2 e& l! H0 g, ~1 PF=[];- d6 a( |+ U1 ]* \  W6 ]. F
theta=[];
7 E- y* M; F; e* \$ t) k& n$ Yv=24; %风速
/ l# X+ \6 ^# c1 w3 u% ~  [l=105*10^(-3); %锚链每节链环的长度
" W& g' y: Z* q% |4 V, YL=22.05; %锚链的总长度, j- u, ^% J; D! l7 h5 Q" y/ R
num=0; %通过更改不在海床上的链节数得到一个最优解
& `6 _" m$ Z8 [9 R/ Z: Wnum1=round(L/l);! t- ?! J, H& C3 j2 ~1 w0 S2 J
num2=0;; W" m8 q, t4 f
lin=0/180*pi; %第一个链节与水平方向的夹角+ a& Q* t  G) ]
lin1=90/180*pi;
- J! i# g- K* V( z9 B& Z8 U  @lin2=0;
& O; \: `( y2 U$ W0 A8 C: Z1 bm2=1200; %重物球质量
/ B9 c* e) y% t* N$ I$ k! ~: e, X& tpg=7.7*10^3; %重物球的密度(单位:kg/m^3)
. M/ J* A1 r' {* P9 X( pdepth=20; %水深- |" F$ G/ W6 n7 T! L
pl=7; %锚链单位长度的质量
0 \5 ~0 j) d$ ~# d% i+ O0 Z6 _vh=0; %海水流速
9 E  W- K. A! u, B5 G. _3 ng=9.8; %可通过改变此语句来修改重力加速度,单位为m/s^2
2 ~# ~! e, {; E5 T9 M. M- _5 pp=1.025*10^3; %海水密度
) l; j8 c, }2 s4 X4 wM=1000; %浮标质量
5 Z0 B  t# r# \. k* T% M3 Jm=10; %钢管质量5 l" A5 s( h* K- ^/ [
m1=100; %设备和钢桶总质量
: K2 N4 k* @) \y=0;7 v+ K6 r9 R3 W' A! r$ I" }
d=1;9 c- b9 h; Y$ Q$ Q- K
j1=0;
9 r1 Z. X+ A8 l9 n: Xj2=0;
. x; q) O  }; X$ Wwhile(abs(y-d)>0.005)%在这里选择所需要的精度,0 L) x3 p. |6 Q- z/ Q7 l9 `9 t
if (y>d)&&(num<round(L/l))1 ^- i  s' M$ S% |
num1=num;
  u7 y, e, h+ ~# |2 U8 @) k( b) anum=round((num1+num2)/2);5 D2 f, s& h2 g# S5 `
elseif (y<d)&&(num<round(L/l));
+ S% \  j3 ^+ g( snum2=num;3 A6 u7 N1 B5 Y  V: a; @  A1 v
num=round((num1+num2)/2);
. t7 r3 ?' q) r# H, O4 C9 Telseif (y<d)&&(num==round(L/l))3 x! O8 }$ O" L1 w" e
lin2=lin;
- ~6 W% g/ l- r6 b7 e. t5 ?lin=(lin1+lin2)/2;
# n. Y, z8 F! t  D0 r8 W8 Velseif(y>d)&&(num==round(L/l))
4 @: ^  o$ c' d" `& d/ L: wlin1=lin;; q* f( ?& |( c. e
lin=(lin1+lin2)/2;
, O( p5 v5 J( x" n& w; Tend) o; O, K) f( b" @
%钢桶受到的浮力' v9 d1 f7 o$ A- \; w
Ff1=p*g*pi*(0.3/2)^2;7 \* A  z1 ^' m6 b& y  ~
%钢管收到的浮力
" z" y3 Q/ D% ~' k$ u: {Ff2=p*g*pi*(0.05/2)^2;- n) G5 Q3 E/ W9 ?
%重物球所受浮力3 z" n2 A4 j& t4 b
Ffg=p*g*m2/pg;
5 j% C( d* t: G9 K/ V' z. J%重物球所受海水水流力
8 C- W/ n% C$ N  |+ [* Q" ^+ CFhg=374*pi*((m2/pg/3/4)^(1/3))^2*vh^2;. M- m0 D" r+ x+ a8 `& h9 K
%风对浮标受力面的投影面积
  `0 ~. ^3 u" t* mS=2*(2-h);) D9 r5 V: w: u' v" I
%风对浮标产生的力
  v+ F7 L" r4 c6 sFw=0.625*S*v^2;  U7 _: W5 v& Y% w6 B
%浮标在水中的体积  f$ j5 ]4 }6 ~; ?! }) k8 `  X
V=pi*(2/2)^2*h;8 {( ?: o* ]' A8 p! S) o* Q1 g
%浮标所受到的浮力' {& k. J/ E$ J% W- H4 D. y
Ff=p*g*V;
1 G2 U0 P& ]4 Q! R1 u%浮标受到海水的近似水流力" H1 l6 Y, v, p- _& C3 ]! ~& O; J
Fb=374*2*h*vh^2;
6 o% Q' a& ~* S: t. }. t4 j%钢桶受到海水的近似水流力
5 i: h  ~: _/ T9 ?6 a$ A0 tFs1=374*0.3*vh^2;" v0 O# r: L) H7 [8 o/ V8 n. U( f1 ~
%钢管受到海水的水流力的近似值0 j% G8 S3 p. p6 r3 e" @6 G
Fs=374*0.05*vh^2;1 ]4 O0 c: R* w( c; q
%浮标浸没水中的高度- G6 g8 {8 s+ G7 O) \
if num==round(L/l)) ]2 o! p  e0 o) _# V/ \7 V# t2 P
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));
$ Y9 j' u% f6 L4 k7 t& Yelse - b0 A, |$ Y+ K  L, f' k5 \! ~2 {4 k
h=(m2*g+M*g+4*m*g+m1*g-Ff1-4*Ff2-Ffg+num*pl*l*g)/(p*g*pi);& q: ]% r  |; A2 N% W2 L
end
: ]- X6 R4 }+ o7 X* t- |6 ya=Fw+Fb;- o5 I3 G: [: A/ e6 @4 O- Q
b=-M*g+Ff+(Fw+Fb)*tan(lin);0 ~: T4 Q5 J( k# l7 k
if j1==0
5 j0 E; F$ M" L/ ~2 da=eval(a);/ e7 q# a4 z; X" d# {: G) @
b=eval(b);
7 J3 i5 f3 z% _* Z1 J0 E( x9 m  r4 Belse; c7 c  p9 M' Y" e! N
end
) T0 `8 r" b. S: eF(1)=sqrt(a^2+b^2);/ h0 z5 P; {/ W- }- ~! y
theta(1)=atan(b/a);
$ b3 ?5 o( x; i! o, Jn=0;
3 @' B( G, ?( Q, ]4 i* ]5 Z. Nfor i=1:47 x4 p2 P% c  e# m# Q. I) |
%钢管受到海水的水流力
; u# A* W) s, H3 j5 o0 M. vFh(i)=374*0.05*sin(theta(i));# w7 m2 v$ Z/ @
n=n+Fh(i);
1 C* K5 Q1 W7 ~a=Fw+Fb+n;* B- J3 I( {4 d# F3 s4 W- \
if j1==0
5 N( s& u6 ^& Wa=eval(a);
2 y, u' O" x  \- u4 g1 belse
# `% n& o4 {3 O/ c# x  v( O) Uend* z0 [: Z/ ~" ?. _
b=F(i)*sin(theta(i))+p*g*pi*(50*10^(-3)/2)^2-m*g;
! L3 P, r& }. k9 A. j+ pF(i+1)=sqrt(a^2+b^2);
+ F: D3 V! {- Y# U& t4 atheta(i+1)=atan(b/a);6 i5 p; j' Z8 d5 T3 {  N
end
5 y( X' I* H& U# R% h" Nc=0;
0 @. m2 }6 a* i7 T8 _for i=1:5  Z  E6 \9 P! C/ T: F
c=c+sin(theta(i));
# x" y3 m" @) N+ eend' E* k, A" j* A* c
d=depth-c-h;: _5 {6 Z6 C1 R8 G# v" j
y1=lin;
7 a6 O/ F0 |  _  Y9 C* g5 Kdistance=0;
9 w7 `# m* l: h7 [if num==round(L/l)
2 [5 w- j: }) A2 {) Y/ Ny=l*sin(y1);6 c9 q* T% W) T8 J( v9 I
x1=Fw/sqrt(1-(sin(y1))^2);
) ]3 @& ~! l" h, yfor i=1:num-1
8 E$ E4 V" C8 `4 d  C0 Dm=(x1*sin(y1)+i*pl*l*g)/sqrt((x1*sin(y1)+i*pl*l*g)^2+Fw^2);2 u  R6 G4 n( K' }6 ]; x, ~
m=m*l;
2 f4 V5 T9 d, c$ S8 S7 I9 zy=y+m;
/ m2 f( [5 h$ V4 N' N$ B( bn=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
9 J/ U* @8 C( u1 |  M$ e% Xif j1==0
: F+ u9 R/ p; k8 S# Cn=eval(n);! i2 w# @0 x& b/ @( d9 A9 ~; ]
else
1 q( Q9 B; U4 g2 [* F0 tend% v1 G  o9 |; }7 t3 V( Z5 [
distance=distance+n;
* \6 k) x- F/ p- yif j1==00 O; |+ q: H/ o0 l8 i: {  }
y=eval(y);
! a7 R) @7 ]" L) Selse9 E2 i, i- M6 y# m4 S  x( t- Y
end/ z0 I: f: H& w, G
end
/ y( _+ p) k  Q  |* V  jelse
" [3 M0 N' V* l- @y=y1*l;/ L" }3 M% s7 G: E
distance=(round(L/l)-num)*l;
) B5 z6 Q. f0 X( `- v4 Hfor i=1:num+ y% I7 j* Y7 [$ c7 q, u, h6 G
x1=Fw/sqrt(1-(sin(y1))^2);
0 z6 ?' ~0 C& a9 ~& t' Cm=(x1*y1+i*pl*l*g)/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;: Y5 X7 E2 ?& E% o
y=y+m;
, N7 i# `# F" k; v( Nn=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
1 f' z$ I8 l, |, U+ Lif j1==0
- g& O6 m$ ]' x$ |" _y=eval(y);
5 \6 Z& M. q6 t, `n=eval(n);
" W# ]3 N; n( y8 a8 i/ }( p0 Melse
1 E9 E, J1 c& M6 p' |& ~end
; Q, ], Y* r- o' jdistance=distance+n;
& b! Y: }' s# n/ `end
7 g: Y3 |/ B; U7 ?# C$ R$ f7 dend# Y4 ~) ]0 }$ F
m=0;
. {  C9 p- D5 x3 `! G$ Xj1=1;
2 D( @& Q% V0 v  _1 _: Qj2=j2+1;
+ a. m9 ^; e" T" Y  i& Kend
2 j+ b% p1 Y/ F$ U8 q* d5 a%钢桶受到的浮力
* C' X5 w& K9 b' u9 \Ff1=p*g*pi*(0.3/2)^2;/ D+ H. ^# H% ]7 T1 ^4 W, b
%钢管收到的浮力* y0 E1 k# u- L8 H( j; \& @
Ff2=p*g*pi*(0.05/2)^2;; A1 j; n+ f! t* C# D! n& j
%重物球所受浮力4 j, I9 I6 q* U6 D8 y- c  F. U9 l
Ffg=p*g*m2/pg;
0 r, f# k% l  y% w' z; L( N%重物球所受海水水流力. K8 r! t( R, W6 [- j3 h. v) O7 {
Fhg=374*pi*((m2/pg/3/4)^(1/3))^2*vh^2;( L3 D+ K6 L# }
%风对浮标受力面的投影面积
( R) s  b# a( Q' VS=2*(2-h);
. b) E+ o( K7 `- C. |9 S%风对浮标产生的力
; \! ]" u) q* Z6 @: x9 g# G: r1 MFw=0.625*S*v^2;
4 Y. ]. ]5 H$ i& e/ P* C%浮标在水中的体积0 u: g5 @0 Y4 {0 w0 V7 t/ }
V=pi*(2/2)^2*h;0 y1 N% Y$ ?9 e/ F! e5 _
%浮标所受到的浮力+ H# p/ d, Y% k8 j7 R  Y  c/ u# |
Ff=p*g*V;6 x0 R* F& c% L  K& r6 ]
%浮标受到海水的近似水流力, V: U3 i) J: X: M
Fb=374*2*h*vh^2;0 K3 V! _1 `, f7 j5 L2 a0 `/ M
%钢桶受到海水的近似水流力
$ H0 Q7 a# e9 ?0 M. qFs1=374*0.3*vh^2;0 V* A2 R7 r& H* e1 U" u1 F
%钢管受到海水的水流力的近似值
5 E: E0 `  o0 j1 nFs=374*0.05*vh^2;
$ U% \8 T/ y: p8 ]$ K' o& q%浮标浸没水中的高度! c' h$ U9 `: F' U1 F
if num==round(L/l)
$ z) J, C7 f6 r8 Ch=(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));; m0 X6 y8 g; a# R4 H  V2 i( S
else
2 ^3 i* l+ `7 g9 _h=(m2*g+M*g+4*m*g+m1*g-Ff1-4*Ff2-Ffg+num*pl*l*g)/(p*g*pi);, s$ O, O/ w, p5 k* Y2 u6 U
end6 Q& N0 I4 C2 Y% }  L: ]
a=Fw+Fb;, o7 Y& P$ D1 N7 Z! ^# w
b=-M*g+Ff+(Fw+Fb)*tan(lin);
% s4 G- y% s8 S- ZF(1)=sqrt(a^2+b^2);4 B0 o$ t7 ?* P+ R& y2 U& q# S
theta(1)=atan(b/a);6 n* D1 u; Q4 s% e5 g* Y
n=0;
+ c6 D$ p! Q3 ~* L1 n) ufor i=1:4/ a: Z% q4 K  [; K
%钢管受到海水的水流力) U( U7 W5 h: v7 F
Fh(i)=374*0.05*sin(theta(i));
  s( x1 t* b% R, W5 qn=n+Fh(i);
- `$ f8 x/ t9 Y- ?a=Fw+Fb+n;, T3 o- W3 C/ Q. V7 e( |2 {
b=F(i)*sin(theta(i))+p*g*pi*(50*10^(-3)/2)^2-m*g;
1 Z' n; s+ E0 [: X" t0 mF(i+1)=sqrt(a^2+b^2);( d: T6 `; }, m: n9 O0 t
theta(i+1)=atan(b/a);
" X9 J; @) J9 uend
- o; p% m5 Y) F! K. J1 Cdisp('输出钢管和钢桶的倾斜角度(角度制)')
6 B& g/ v7 g* ]+ [5 oth=90-theta*180/pi  C! Z% N7 s1 J+ ?+ n( t
m=85*pi/180;
$ [0 A2 A7 X& e6 P* z5 p- Fif theta(5)>m/ P- a+ Q4 n7 V) z9 h
disp('钢桶的倾斜角足够小,测量准确')
* N/ T7 {4 }  v% T+ }: o6 ]else * t% u" i6 s, ]$ i2 P
disp('钢桶的倾斜角过大')
. O* P; k# e7 y5 Z9 n  z$ oend& _. H- k' ]3 w% I6 y2 y( G
c=0;
6 P4 ?' g) ]8 [) S  c  X! Zfor i=1:5
. L6 ~5 \1 Z4 }$ c4 `) q; i4 dc=c+sin(theta(i));
/ m1 J# ^8 a. f; Eend
+ U3 ^8 m% r4 ~6 ~d=depth-c-h;
6 j  k, \) @4 v8 Fy1=lin;; i, B8 }" u+ _" _
distance=0;9 t: e3 q2 g: n. C
if num==round(L/l)
/ t6 {; T* J7 s5 i3 T: zy=l*sin(y1);
: L& E6 f! ^- r  ?1 ux1=Fw/sqrt(1-(sin(y1))^2);
5 a  V$ I& n" S7 _for i=1:num-1
& r! N6 E7 W8 F6 x1 l7 A( i3 p# {" Ym=(x1*sin(y1)+i*pl*l*g)/sqrt((x1*sin(y1)+i*pl*l*g)^2+Fw^2);
2 s7 m- k' v. W7 A9 Vm=m*l;3 ?" O& i* W1 t# ~: h! r/ b& \, ^
y=y+m;
2 q/ ?( Q: ?' z5 x6 dn=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
% o. {( C+ ^' Jdistance=distance+n;
1 X( J3 H3 t. B2 f7 t* y3 vplot(distance,y,'o')% K. X* A  K; [7 g# v  Y6 u
hold on% |4 z" q' U" X+ v2 G
end
7 i# V, I9 `4 _5 A% I' qelse5 a5 e6 g7 d" z+ o# G
y=y1*l;$ w& U: |' `; C# v3 ~: ~% w
for i=1:round(L/l)-num- G$ d% Q0 U; I$ Q  B
distance=i*l;
8 c% d2 T* [, s8 x1 A# d7 S8 ?y=0;
6 l% G: w3 w* V& |, @plot(distance,y,'o')3 W  D/ H2 @& o4 B* s
hold on: S2 D1 W# e8 E2 Q# E4 E" W2 d* q( q
grid on8 h5 q/ M0 T. u+ q: U6 G2 X5 a
end2 c' n$ a5 ^# I( s; |$ Y7 D! o- [
for i=1:num2 Z; F9 [3 ^- ?; m! D( R. _  H- w
x1=Fw/sqrt(1-(sin(y1))^2);, L5 p5 S: m/ Z% ~! {  q# N4 f
m=(x1*y1+i*pl*l*g)/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
! P* Q; D* j5 M" @0 H7 Ry=y+m;
4 B* N, M- _+ k1 Wn=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
, O, c5 g: A$ z; Wif j1==0
  e: ?% Z8 f. r2 n- Wy=eval(y);- k( C' ~5 P5 \
n=eval(n);" F4 e5 ^8 E9 t3 m; P
else
+ I* y) z$ Y) n+ K7 V; dend8 k6 \3 i8 g8 I$ z& `! }7 X
distance=distance+n;
& R1 m2 _7 I+ w. y9 }- Yplot(distance,y,'o')
, P. R+ L2 ], E0 m: D5 ohold on
. I0 f$ B7 z3 `% Q% Rend
, O6 s2 E) O8 dend* N: ]- I4 y8 R$ b0 Y7 u
m=0;0 V! v4 }5 A8 [6 [
for i=1:5
, n, C* J: ^8 |+ E/ v. W1 km=m+cos(theta(i));
8 v0 V$ D+ V& @7 b3 W; vend5 @5 R' J8 r! o- Y- H+ B/ g
%浮标的运动半径
0 x7 {  ?! W/ q& Vdisp('输出浮标的运动半径')) B4 w' [) W) M* i
ans=distance+m
9 ~! Z$ h2 C$ u2 B" H3 a8 C- h: P9 s. D

3 y* ?& O/ g( q6 Z0 u- F& X
1 A" m8 i& ]7 g5 ~
8 q% M/ _* ~, u$ w0 D/ Z! }4 R
/ L( z% X3 ]6 A0 A- |, l, p2 `
8 h8 _5 z9 b; w8 u* }% @  z: r
) {2 c: G4 Z' f: h: {

2018全国数学建模总结.docx

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


作者: 571334077    时间: 2019-4-10 19:25
23333333333333333333332 _, O6 d7 J1 J& f% o  L+ q9 Q: M





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