数学建模社区-数学中国

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

作者: 杨利霞    时间: 2019-4-10 10:54
标题: 2016数学建模国赛A题程序(原创)作者cclplus
2016数学建模国赛A题程序(原创)作者cclplus
) z- p/ `- Z$ H5 s0 _
$ u1 x& n' d' f2 r5 m/ L
8 A9 N2 M" d' [/ ]8 E& B0 f2 ?
clear all;
; s/ l! r" Z' [2 w/ S0 p' P5 M2 aclose all;
! t4 m9 g& u1 g  b! @" Xclc
( j- l. e, p8 T  g2 x" W/ I) fformat long& R9 L* M5 Y- U
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;' J# A; I! Z2 n5 V+ n
F=[];
2 w* i' Y& c* d2 r) Wtheta=[];
6 O. @0 h* H% I7 y/ J# G1 sv=24; %风速
. c6 c" V: v/ K' \l=105*10^(-3); %锚链每节链环的长度
  q1 n9 |; j; {% r! p5 u' @( xL=22.05; %锚链的总长度5 s& M( @: I* A
num=0; %通过更改不在海床上的链节数得到一个最优解: w+ f, j' }$ ^- R, `( c
num1=round(L/l);- ?% `- j# a4 V+ M5 k) u, A2 u. ]
num2=0;" j) X8 V# S' @- I! ^( x5 p
lin=0/180*pi; %第一个链节与水平方向的夹角
* I- {! _0 N) X6 Y. ~5 Llin1=90/180*pi;( l' [$ c/ T4 M! Z. Q( F' I) Q
lin2=0;
; n8 y- _+ ?, `6 n* Vm2=1200; %重物球质量& M8 s( q( v+ p% e  g: a: G/ F
pg=7.7*10^3; %重物球的密度(单位:kg/m^3)
. K4 U: V, O+ P. Xdepth=20; %水深6 C: w6 @) e3 H- ]5 l9 d9 g8 B
pl=7; %锚链单位长度的质量
$ L' }+ }* ~% T0 jvh=0; %海水流速
! h, y, C4 J' k/ l! `# R! ~g=9.8; %可通过改变此语句来修改重力加速度,单位为m/s^2
* g2 z9 r# v5 L8 jp=1.025*10^3; %海水密度; A9 @5 q" g: `; Z7 d9 ~
M=1000; %浮标质量; \9 _* p, A6 u* u) a" D5 S0 l
m=10; %钢管质量! q  \' s* @' W; [# V
m1=100; %设备和钢桶总质量
; F4 \/ K7 Z! v* @$ M. jy=0;
5 E' l4 ?- m! m. N7 K# n( @- fd=1;
. x, x2 H1 n- n! c7 mj1=0;8 R9 u4 G: ]( O# H2 Z4 w
j2=0;
: o7 }4 R: b3 M0 bwhile(abs(y-d)>0.005)%在这里选择所需要的精度,
  N. e$ d* k0 R; w( O* Y- dif (y>d)&&(num<round(L/l))- u6 Z/ s  U; L6 k
num1=num;
1 {# ]+ D5 C! A& }num=round((num1+num2)/2);- n  E; Y4 j& {0 h$ ^; X/ z+ m1 v; b
elseif (y<d)&&(num<round(L/l));  K1 ]( z# O1 n- V
num2=num;% W) }# n( @7 |2 B8 N  @. I; }0 f
num=round((num1+num2)/2);
' y5 o  y' u$ g1 E) ^8 f1 \+ Kelseif (y<d)&&(num==round(L/l))
4 X! H5 I7 x+ u2 Klin2=lin;
) Q3 ]8 h6 {/ X2 H$ \lin=(lin1+lin2)/2;
+ S9 _: P/ M" _" F4 I- x8 U7 g! [elseif(y>d)&&(num==round(L/l))
+ L: |8 d' n/ E$ h$ }) c2 x* tlin1=lin;
3 o6 w; S7 H' `5 g' c/ rlin=(lin1+lin2)/2;
( L2 r/ Y/ I0 S  ^# ^) |end
8 b- s  E" E* P! c: G2 p%钢桶受到的浮力( {$ ~% C# c3 c8 h, T1 _  A! f
Ff1=p*g*pi*(0.3/2)^2;+ X$ @6 k5 F. q0 Q
%钢管收到的浮力
6 F: P- E: [; ^9 LFf2=p*g*pi*(0.05/2)^2;* v4 S$ r' l) h$ F3 c- M  G$ ^
%重物球所受浮力
9 t* i( r* F( ?+ w2 ?' R, j  P1 x0 Z2 QFfg=p*g*m2/pg;3 Z8 l: Z4 v& V9 Q
%重物球所受海水水流力
! k- n) F5 r7 ]: g' UFhg=374*pi*((m2/pg/3/4)^(1/3))^2*vh^2;' e" T& i2 S3 S
%风对浮标受力面的投影面积
0 `+ Q  v" A1 t* Z. B1 p1 MS=2*(2-h);% k) q. D5 b3 T1 }8 Q5 Q
%风对浮标产生的力
7 a$ c! K! {) \& A3 t; x: ~0 \0 o+ kFw=0.625*S*v^2;
% ?% c' V. T) e/ C% o: i% w%浮标在水中的体积* _, r, V0 @& w5 r$ U  m
V=pi*(2/2)^2*h;, Z8 l+ u' k" Z3 r4 N3 Z
%浮标所受到的浮力- O3 R& }& `. F* i; T( k' O* o# N7 d
Ff=p*g*V;
, k2 a+ l. P0 \, a1 w2 j+ e$ }0 q%浮标受到海水的近似水流力0 y! J9 X4 Z7 a
Fb=374*2*h*vh^2;
, l, `* K9 ]- a%钢桶受到海水的近似水流力. r+ C6 ^- j; t/ }, [
Fs1=374*0.3*vh^2;9 _+ [* X2 Z! D
%钢管受到海水的水流力的近似值
1 ~9 U* _$ ]1 f' BFs=374*0.05*vh^2;
5 r' M8 A/ t7 K8 {( O%浮标浸没水中的高度
7 n' ]5 u4 w$ ]4 M. u% yif num==round(L/l)# d$ \9 F/ s  ^* a5 Y1 h! n4 [
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));' ]: W1 m$ p* x! N( M  ~5 `
else
5 S9 D# O5 B. }/ o& U4 ?6 rh=(m2*g+M*g+4*m*g+m1*g-Ff1-4*Ff2-Ffg+num*pl*l*g)/(p*g*pi);
  R" H7 ?5 Y- [" }& v1 Gend
8 H2 s# S8 k" V/ Sa=Fw+Fb;0 ~' k( R0 f, k+ O* ]
b=-M*g+Ff+(Fw+Fb)*tan(lin);
$ X2 {+ b3 r! Z  xif j1==0
! Y6 J4 Y& b0 I0 `% oa=eval(a);
' t) [' j' s0 b- O, lb=eval(b);3 c6 w) h# l/ z) J/ P- I5 X5 h
else% ^' ]/ y2 I  `# @4 Q
end
9 V: A, G2 j* s5 BF(1)=sqrt(a^2+b^2);
& [, h2 M/ R+ @theta(1)=atan(b/a);' U1 S) ~, W# [3 G; ]
n=0;0 b& H! {! J: o* y9 C* B7 ~  O9 `9 j* H
for i=1:4; ?3 D. d7 F6 b
%钢管受到海水的水流力
5 D, x1 ~& d. L  _0 fFh(i)=374*0.05*sin(theta(i));
" K) d7 b) n  _* A1 un=n+Fh(i);& m; G- z2 |$ G, }; p  q
a=Fw+Fb+n;
: m6 w6 @( ?: w! K$ k% p' gif j1==08 i% b- J# f- M; ^# l# C- x
a=eval(a);4 K% H! |" e  V. Y  V% Y
else# V5 K$ l' w' x
end7 Z* q1 T  q- r% E* J% P8 j9 z  g
b=F(i)*sin(theta(i))+p*g*pi*(50*10^(-3)/2)^2-m*g;: J5 l5 P) R( ~
F(i+1)=sqrt(a^2+b^2);( D) q: F+ F; I$ @8 O+ M
theta(i+1)=atan(b/a);
- V: W) q8 c. J* _  a& {end& h+ @5 u( o- C7 [/ {: T4 T
c=0;
& `. l  J, a+ ?3 V" t9 \for i=1:5
  ^2 `4 a6 ^) [5 R( Vc=c+sin(theta(i));
& ~3 ^# E& [4 h) G+ z) j% Mend. i6 @+ A. Z4 [
d=depth-c-h;3 I1 H9 E: L" s, J% N
y1=lin;! V4 r& U  e; s( d( q
distance=0;
) Y" {  z* D# p) ^0 e3 K) |3 h* _if num==round(L/l)
% `. C  Q$ L" Iy=l*sin(y1);! S7 h& C! Q  Q7 @; v9 q. L+ Q$ V1 C
x1=Fw/sqrt(1-(sin(y1))^2);
$ i1 D$ T" R+ k5 F7 E" _) `for i=1:num-1
9 O3 U2 k" a+ I. w5 R8 N$ Tm=(x1*sin(y1)+i*pl*l*g)/sqrt((x1*sin(y1)+i*pl*l*g)^2+Fw^2);; [/ v. m2 b6 Q2 x$ {5 e4 h8 t
m=m*l;4 r6 j2 C7 @: G5 d8 m# k" j  m! X8 v
y=y+m;
5 o; N/ ~8 D* Q7 m' x) v- @$ kn=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;$ o- p) y+ [! v
if j1==0
) t  |' U' _& V2 [8 h& m* xn=eval(n);
7 W9 \2 B0 b& r! Jelse; c1 v5 {* |8 v7 R8 N( b* b
end
. i3 X! ^  o% s; ?distance=distance+n;- V! e: q1 h' E
if j1==0
6 t- D( J1 \5 G& R; h: Cy=eval(y);; r1 r' r! x" W' {9 ]: W0 \0 H
else. o6 i. j# k: o# V- {: e4 z
end
6 \; n4 b* b/ o- l6 s7 R# Send/ b1 G0 ]& T) o" M# k5 ]6 e
else
, o" n* [: G2 D1 Ny=y1*l;
) S& D% \# c- cdistance=(round(L/l)-num)*l;
6 y, b9 ?: y. J0 u2 r. bfor i=1:num
( l. A# ~7 L) e2 Ix1=Fw/sqrt(1-(sin(y1))^2);
( {- n' w$ n# |) f. h" f9 |9 o& [m=(x1*y1+i*pl*l*g)/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;* f8 M. c  v9 p# d2 A. t( d
y=y+m; + m& H* A% q$ D4 ^( o3 B+ E
n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
; `6 E6 V* Q! D+ R9 V* ^( eif j1==0
) o- B# v0 Q5 I6 `8 A: s) Ry=eval(y);& U: X! j( Y, L" e
n=eval(n);
4 p0 ~' @% V- c5 g9 ]else
" V! P5 u3 ~+ Q6 @% zend
3 t$ j: ^/ j: cdistance=distance+n;+ e% a9 P5 P! a8 D6 V7 p7 T& u
end+ K  b+ _+ {! q7 T4 P$ D" B* s( ?
end+ x3 @* S0 ?" n
m=0;8 R2 a/ B: x8 I
j1=1;
9 h8 a$ G9 ?# ?* R' ?j2=j2+1;
6 X; z% K+ _( u1 `# t/ ^" \end
/ w- P  B8 d9 E! H  E; }: s%钢桶受到的浮力
9 Z; N( N4 [$ |5 G: @* r1 N& o; [Ff1=p*g*pi*(0.3/2)^2;
, r% E1 y# q( v5 A( w7 P%钢管收到的浮力! n2 J; W6 T- b6 y1 h7 C
Ff2=p*g*pi*(0.05/2)^2;) X4 [" H: L3 a9 m5 m6 {
%重物球所受浮力
4 Y* k7 n; \8 o( g% IFfg=p*g*m2/pg;
7 x6 s1 e! _1 d2 {$ w# U. w%重物球所受海水水流力
$ i4 G+ h$ E' b( {Fhg=374*pi*((m2/pg/3/4)^(1/3))^2*vh^2;& q! m# H& Q0 \9 o7 o9 J& ?6 q
%风对浮标受力面的投影面积  {9 m4 Y$ [* l  q! N0 `! |+ t9 }
S=2*(2-h);
0 ]4 f8 l' B- d# r%风对浮标产生的力$ e( T4 a* n  i9 f4 r' e, C, S! ]
Fw=0.625*S*v^2;
8 w2 o- M, |* m* \! W# O%浮标在水中的体积5 L7 @# `, Z8 J/ Q; k7 c( a
V=pi*(2/2)^2*h;
* w, }' m0 O7 j( {%浮标所受到的浮力
, I% E1 E% A4 E% S0 R, I0 vFf=p*g*V;
) B/ {2 p( O! B  `%浮标受到海水的近似水流力
/ u3 u5 `% m2 B5 s% a9 v) hFb=374*2*h*vh^2;
9 z9 c4 v, }# G- l3 W5 s2 ?% K% ~4 y%钢桶受到海水的近似水流力
4 F3 @+ z7 J8 [Fs1=374*0.3*vh^2;
. |- M, c2 Q7 {/ I* G0 N%钢管受到海水的水流力的近似值
9 Q" L3 X! x! ~3 J6 q( K( I; y  BFs=374*0.05*vh^2;7 S9 {( w$ m; f" d+ U
%浮标浸没水中的高度" ~. V! P7 }. N( k! c2 S1 ?: O! ~0 A+ h! M
if num==round(L/l)' r+ P3 l+ g- k+ V7 Z, O$ 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));) Q( K" k7 I+ l& y
else
1 l/ G" S; i5 w4 fh=(m2*g+M*g+4*m*g+m1*g-Ff1-4*Ff2-Ffg+num*pl*l*g)/(p*g*pi);6 v9 N7 p  W3 Z, ]/ C! P
end
' R3 B% v5 n  X) ]* z6 ba=Fw+Fb;
: o! E; Q8 e* [; N: |9 v2 ^b=-M*g+Ff+(Fw+Fb)*tan(lin);+ ~) A, J# T! ?" P$ h2 \
F(1)=sqrt(a^2+b^2);# J. \. V) c# J6 o7 F4 f
theta(1)=atan(b/a);
" [& @1 G$ y. W7 _0 sn=0;
! _0 P" c6 V& }9 d+ i0 @7 Mfor i=1:4
% b  c! C: ]' ]5 `+ z7 c%钢管受到海水的水流力2 L- G8 ]% w0 @1 o; x3 ?8 X/ G0 _5 D
Fh(i)=374*0.05*sin(theta(i));% v7 h. O6 Z& N2 k
n=n+Fh(i);* D  N7 r: _! j: b$ X) H: v
a=Fw+Fb+n;
4 u4 C/ L: K. k' s7 r" P$ Wb=F(i)*sin(theta(i))+p*g*pi*(50*10^(-3)/2)^2-m*g;; P) q5 g/ V/ |0 E' O! f7 K
F(i+1)=sqrt(a^2+b^2);- f" F) p# i8 L% J6 G
theta(i+1)=atan(b/a);
$ r* N  l* d- Rend
" b4 }  X9 ]# \( B( i; N0 ]disp('输出钢管和钢桶的倾斜角度(角度制)')
6 E( U, H6 i& y4 q' ]( Rth=90-theta*180/pi; o4 {! e; E" l/ T
m=85*pi/180;
$ s* Q9 x6 D5 _1 ]4 d5 p" Yif theta(5)>m- r/ B& P5 u! e+ l. G
disp('钢桶的倾斜角足够小,测量准确')) w" Z3 S' @* X8 |" |
else
: g- B( e) l" s# `9 Ndisp('钢桶的倾斜角过大')$ L2 _* J4 J& Y2 |' @) K; d9 f# |
end
+ X* i/ X  J' {% L4 I; q+ pc=0;3 |* P: P/ l& O3 \8 Z* G- l
for i=1:5% r6 ~; n  g% D% o: }
c=c+sin(theta(i));& _5 A! a- J- H) B
end
) ~" Q: z! [$ \' Fd=depth-c-h;
: Z2 o" |/ }$ G/ by1=lin;( F/ B0 j) H0 Y3 [- ]  X
distance=0;# a/ ~8 U% Z5 `7 c
if num==round(L/l)6 x; {9 T% d2 C4 `  d
y=l*sin(y1);
0 L' L: ~' j. Z/ ~x1=Fw/sqrt(1-(sin(y1))^2);  R1 W# N- _' b4 j% M) C5 T
for i=1:num-1- U- B' S& i* Q. [# u2 W
m=(x1*sin(y1)+i*pl*l*g)/sqrt((x1*sin(y1)+i*pl*l*g)^2+Fw^2);- X0 V. g# k: ^- W; J
m=m*l;4 n$ |/ d: ^2 O$ }& M8 l" i* j
y=y+m;  \: H! w3 A! h
n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;+ p6 m' w! l, e6 z
distance=distance+n;- o( H9 Z, T4 w3 @2 m4 I; v
plot(distance,y,'o')
) ~/ d/ H7 t, ghold on$ D2 k* g% b) Y6 |/ K
end3 Y9 N2 k4 J# {! ?( u4 V, @3 s. L2 k
else0 {' ?% h4 w% ?( H# D: ~
y=y1*l;" t% ]0 N5 O: _( Z- F
for i=1:round(L/l)-num. k, g5 f$ b! }' k# Z0 c  {
distance=i*l;
. i& t. ]  P" k7 Wy=0;
' i4 n, u  a. _plot(distance,y,'o')) D; t0 v- Y: m* f  [1 I
hold on/ K8 h: ^  Y' k* i" ?# P* J" V) E
grid on
( x. O' e. j& oend
4 }. }! r6 {8 G$ S( f$ rfor i=1:num5 P: @/ X% u+ p" Q1 l
x1=Fw/sqrt(1-(sin(y1))^2);
; T2 x4 ~1 Q- Im=(x1*y1+i*pl*l*g)/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;/ Y- ^. c' R( T, h3 g
y=y+m;
* m3 h$ z0 w( l: pn=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
# ^1 I: x& a  h. U5 g" d+ pif j1==0
* ~8 l, t; \& L5 Q- V8 Ty=eval(y);9 V8 \7 H8 I3 R/ [1 j
n=eval(n);
! U9 z9 ~4 ]: `else
0 h: `  ]) G( Y: j+ send
" W6 O( U+ B/ f. fdistance=distance+n;: z/ a7 X! r1 N+ l$ D) T6 N$ l
plot(distance,y,'o')
. X! [0 d; k% Shold on8 r. c' p. L1 ~
end
& n1 I$ l. I  d0 i; @end0 ]3 z  S; x7 \! P- U
m=0;
" k% t  F5 L  T# J. O7 h9 ~0 E2 nfor i=1:5
6 }. C6 i2 K4 N" ~m=m+cos(theta(i));" W6 p9 i& F: _" b% q. N+ ?3 o
end
) A( K$ r% l0 o0 A/ v) w* G& L0 a: y%浮标的运动半径6 ?* |4 x  P' P. v4 I: P1 z
disp('输出浮标的运动半径')+ Z; o- i: O0 I! R8 Z$ d# P! X
ans=distance+m
! a' M# y: [3 t3 L- l6 E
$ w9 y8 B9 s; K& \4 o6 f  v: q; Z
# o( A" T0 P. a" p4 u$ j% J+ W5 |4 V2 b6 |7 L  \

( T! M5 Y+ A9 h# D6 Z4 i
% e$ R# _: g' \- O* N6 C2 J5 `6 C$ f! ^
7 Z! Y" N+ j: z/ D

2018全国数学建模总结.docx

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


作者: 571334077    时间: 2019-4-10 19:25
2333333333333333333333
+ j% d3 Q" L( L% e3 P  b




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