数学建模社区-数学中国

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

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

5 X0 s; D1 v2 w
" Y& `% \  `+ {# L; E0 M+ W1 v6 m- v9 ]
clear all;) N! t' U+ B# W
close all;
* S. Q0 s0 q. R/ D/ Zclc
& c+ ?: j  c+ X% o. _' x" Cformat long) j' h/ t0 B( ]1 y
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;
) ]6 p  j, c' f& d9 }F=[];
: U- I& A7 N$ atheta=[];
3 K3 Q5 ]  j8 ]+ }8 G/ zv=24; %风速$ m* ~4 S  j# h. A& K/ ~
l=105*10^(-3); %锚链每节链环的长度5 B  j$ u; f! O4 w9 x% R# ?
L=22.05; %锚链的总长度
3 M  k4 k8 n0 G4 t7 ^num=0; %通过更改不在海床上的链节数得到一个最优解
# l0 s2 w! d5 v4 t; ]& ?7 ]num1=round(L/l);
1 A6 z- r, w9 I; E! ]num2=0;
7 K3 i2 U. k# {$ llin=0/180*pi; %第一个链节与水平方向的夹角
  a+ N; _7 N' t' ilin1=90/180*pi;
$ i3 C; M2 c! q: Flin2=0;
2 Z# m3 o1 N' zm2=1200; %重物球质量- I3 W: ?1 @- _+ F& F
pg=7.7*10^3; %重物球的密度(单位:kg/m^3)
4 }9 V1 N3 o0 h, P3 T2 cdepth=20; %水深
; B9 _, ^8 W; c$ opl=7; %锚链单位长度的质量
( V2 q4 z4 O1 X, Svh=0; %海水流速
' Y  J4 t5 J: h* ^& Rg=9.8; %可通过改变此语句来修改重力加速度,单位为m/s^2
, R  p. T" n7 X7 k+ Ip=1.025*10^3; %海水密度
' w7 K9 f5 Z( }5 WM=1000; %浮标质量
; c5 u' s0 ?' sm=10; %钢管质量
8 T& S2 j0 z3 r" C% n8 D, @3 bm1=100; %设备和钢桶总质量
; I% ^0 [7 b& W4 R: G6 t! ky=0;
# g% {  P# J% C; m& P& X. ^, vd=1;9 l  M9 X  |# t' ^0 O- y/ N+ {8 q4 [4 f
j1=0;
5 I( G4 K+ \$ B$ d6 ]6 qj2=0;
: l" j' h7 b4 K* Bwhile(abs(y-d)>0.005)%在这里选择所需要的精度,$ c7 _' f* a9 X
if (y>d)&&(num<round(L/l))
6 ~' [+ G) }3 c% s' ?2 A* F4 d# Mnum1=num;
/ U1 n& u* G( }; Snum=round((num1+num2)/2);
* K  o" D7 c" }6 Yelseif (y<d)&&(num<round(L/l));' l  X; g' e% x- D6 s. k& _
num2=num;- {: L" e, E  a9 O7 x
num=round((num1+num2)/2);/ }& @/ g$ K- \( |* k) L
elseif (y<d)&&(num==round(L/l))
( C1 H2 ?9 o4 |$ f. `lin2=lin;- y+ s2 `% W7 w1 v8 ?
lin=(lin1+lin2)/2;
  `* \& q5 n; l# L: N5 c( Felseif(y>d)&&(num==round(L/l))
* _- a+ e( X) K9 k+ L/ g0 \lin1=lin;
) m* D9 a4 w& g1 ~( {# vlin=(lin1+lin2)/2;
0 w% {$ |' t" b: A: B% Oend, W' h6 a* k/ j4 `+ {
%钢桶受到的浮力
( }8 D! }( e( Q* x, d6 D! k4 ?Ff1=p*g*pi*(0.3/2)^2;& x" }4 r- x2 c/ M+ K
%钢管收到的浮力: k1 W7 ^6 Y: N( E- {! F
Ff2=p*g*pi*(0.05/2)^2;
  d8 z; Q$ U: a, I) Z%重物球所受浮力6 W  O% g1 |- d. B1 L
Ffg=p*g*m2/pg;5 f! K6 F/ t# {6 b* J2 _+ Z2 `, T
%重物球所受海水水流力
- m& Y( {2 m, r" o- ZFhg=374*pi*((m2/pg/3/4)^(1/3))^2*vh^2;
* c( r: t2 [+ a%风对浮标受力面的投影面积4 j* o# y* b. B1 _0 x* J: b
S=2*(2-h);: J' C. ]+ i" H+ C5 [3 t6 q9 M$ M
%风对浮标产生的力
2 Z2 B1 H# z% mFw=0.625*S*v^2;
1 T3 o4 z, B7 f; U; e  }%浮标在水中的体积9 K3 E! J1 ]: M$ B
V=pi*(2/2)^2*h;. q$ K: d% c5 ]% z$ Q. P
%浮标所受到的浮力
) z1 w- a4 X) [' a0 LFf=p*g*V;& J: i& z  d6 O6 j5 g. T: ~8 F" V
%浮标受到海水的近似水流力
% i- [6 }& G( O) i. `Fb=374*2*h*vh^2;: d/ m+ c# P7 e6 {
%钢桶受到海水的近似水流力
$ y5 d8 I/ J0 W2 {/ j2 w6 fFs1=374*0.3*vh^2;9 r# M" y; Y+ q. g
%钢管受到海水的水流力的近似值
  ~" Z  H% A, mFs=374*0.05*vh^2;4 A5 Z+ F) a! ?
%浮标浸没水中的高度! C+ g! z" x+ q% F7 y( L! _! h7 [
if num==round(L/l)
1 d! \2 O9 j" U3 rh=(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));" G% C# L4 l, t; Y
else 3 J( H+ {4 Z% W3 p3 C
h=(m2*g+M*g+4*m*g+m1*g-Ff1-4*Ff2-Ffg+num*pl*l*g)/(p*g*pi);
4 h, W% S5 s3 i0 h$ y/ |( Yend  P# n, V# z% t2 G) f" v
a=Fw+Fb;
! y: d6 G6 j3 W( z: s7 d, {b=-M*g+Ff+(Fw+Fb)*tan(lin);9 Z1 a  t$ }8 d- c" L
if j1==0
$ \& l( q. k2 |0 `a=eval(a);
: V6 T' T* i0 p3 |9 s7 ~b=eval(b);4 x; O7 B5 ~+ M, e6 p9 _7 e2 o8 ^
else8 T! H* z; F$ @$ E( `
end- J, ]3 z! N' ~( \3 K2 E7 s
F(1)=sqrt(a^2+b^2);" ]' v+ a, }! F% F& ^) d
theta(1)=atan(b/a);
& x+ P1 Q' V3 _& d' Q6 ~* ?7 |$ L: [n=0;0 Q1 D2 b9 q! w) Q4 b; k
for i=1:4
5 ^) {& j+ [# _7 a8 X# x5 d# T$ D%钢管受到海水的水流力
8 J8 @% w! m; i2 ?0 D- zFh(i)=374*0.05*sin(theta(i));+ U8 q& S: _1 D2 U, G# v
n=n+Fh(i);( t' k, S3 ~; I4 v: v1 C
a=Fw+Fb+n;# t* H# @1 c* d% M- |
if j1==0; `4 S" X+ P& B
a=eval(a);
; a# D; }7 o6 {) Gelse; v; n4 h2 o( P- v
end
' v) H; |& l# u% Ib=F(i)*sin(theta(i))+p*g*pi*(50*10^(-3)/2)^2-m*g;& ~5 _0 r; H4 g# ~- f% @( V
F(i+1)=sqrt(a^2+b^2);
& X; j. q8 R( Z& T2 `, E1 r( utheta(i+1)=atan(b/a);, ~3 b6 }2 W6 M/ v
end
6 P0 d+ y+ s9 }, ^7 c3 Nc=0;4 k$ F5 X* p- a0 A
for i=1:5
8 B; M1 n" ?5 `/ u5 N& N: Z  c' ic=c+sin(theta(i));
2 z9 h# j! p4 _1 h/ f# l! h2 aend9 n, Q4 K$ I0 b- V: T# D
d=depth-c-h;
- c' N% ~& n; i$ jy1=lin;" f$ {" @1 c' A! }6 [
distance=0;( l2 a5 d  s( n2 Z
if num==round(L/l)
! c: @2 m- P! S" [- }& Gy=l*sin(y1);
# q7 {4 q& c- Q6 x" J, d! j7 D- Ex1=Fw/sqrt(1-(sin(y1))^2);0 d( S% t) {- T5 o1 x, C7 o$ [' `) u. ?
for i=1:num-1, J6 Z, U  i  o; p0 o$ D# l6 P
m=(x1*sin(y1)+i*pl*l*g)/sqrt((x1*sin(y1)+i*pl*l*g)^2+Fw^2);9 u% p& k" k& P# j: Y; o
m=m*l;
9 h) p% c5 U7 Ly=y+m;7 n2 j. D  X( N. I5 N+ A6 p
n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
6 Q3 Y. [5 W* o& ~if j1==0# F; K. ]2 k8 ]- x
n=eval(n);3 i: [, X9 {' @8 s
else$ X% i2 A5 l6 g& E3 V9 |. b" |
end5 k- S8 _1 ?) p2 i# R4 l
distance=distance+n;
5 h3 N+ ^  p, g8 oif j1==0
* i8 g6 J/ d$ Y$ Ky=eval(y);! k7 h2 g/ o6 \# ^; J
else
  U7 w% ^' ]/ j# Z4 L: iend
( f( Q, o1 ~" {! N5 wend
  K) @% I3 @* Q" E* }/ f: B5 |$ Gelse
! b5 n6 z# ^1 c: I: zy=y1*l;
# q# W' F8 t0 \" Ndistance=(round(L/l)-num)*l;
6 C7 J' ]/ K$ u# o' ffor i=1:num
) y* j1 O- O  p5 xx1=Fw/sqrt(1-(sin(y1))^2);8 h- d5 U& H8 X
m=(x1*y1+i*pl*l*g)/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
( \* F: o* c- d, N5 Z* gy=y+m;
: w) w! B+ M! Z* Q) _n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
- r( T5 @( ], E2 w/ R, mif j1==0
5 t( _+ g0 }2 z9 w/ _- k5 y* ]y=eval(y);
9 J0 ]& E. B5 x- R' \; ]6 j) Xn=eval(n);
: O% s3 x4 `4 C+ A' [( T9 {. K8 xelse
  E( k- J' t& A  h& Q. W; wend3 X3 L8 w" \' o+ d* x9 R
distance=distance+n;8 X( e  i2 w7 c/ @. ?7 O8 u' ~
end
" Y- s+ s0 I; F! wend
: t! U$ G8 N6 `4 Q# i% E; u5 Dm=0;2 o( t3 F0 x7 O
j1=1;, {' ^3 x0 q# Z2 i6 R: e% f) m. M
j2=j2+1;6 T. |2 r$ B9 ^, a: c
end
6 h% U6 l6 c3 {' B9 u" G' y%钢桶受到的浮力
3 S$ d: O) V; b/ ^) @6 DFf1=p*g*pi*(0.3/2)^2;
  I6 B2 k9 H0 V1 j+ p2 W( o%钢管收到的浮力/ u! f+ P. H( r3 z, b! Q$ b- \
Ff2=p*g*pi*(0.05/2)^2;
7 F% w1 w8 s/ ]# q  Q%重物球所受浮力
! B5 q, A" _$ s5 J& s1 @Ffg=p*g*m2/pg;$ K' e: D- u9 Q" a* N" A# x
%重物球所受海水水流力
, B; N4 X% ]2 z* z+ p! C: VFhg=374*pi*((m2/pg/3/4)^(1/3))^2*vh^2;
1 b( d: G6 m1 g1 Q* F%风对浮标受力面的投影面积8 T1 K3 S( l. v$ j3 O+ C8 Q
S=2*(2-h);
5 y7 e$ Z5 I1 _1 \8 M: _%风对浮标产生的力
+ }+ T8 B. [* IFw=0.625*S*v^2;' H: J$ s, H2 b2 T4 s: k5 t
%浮标在水中的体积
' u& f# k8 K- Y3 o" Y0 R, j  H( ^V=pi*(2/2)^2*h;0 O/ @' ~4 O2 [! D9 S  V
%浮标所受到的浮力- g* [- h2 u+ S. T% k( A
Ff=p*g*V;  |, P& y( e, b, B; A& H
%浮标受到海水的近似水流力" p' A7 @4 z3 a; o  n0 z# e
Fb=374*2*h*vh^2;
, R0 W0 B' R5 }  K, T: _%钢桶受到海水的近似水流力
( e# W4 `8 b8 Z* c3 t- JFs1=374*0.3*vh^2;
, t9 q8 Q( W4 G  X%钢管受到海水的水流力的近似值
3 Z' E4 ?5 \/ X; ~/ m5 b4 R7 `% ~# UFs=374*0.05*vh^2;
. A5 Y: A: k/ l1 {%浮标浸没水中的高度+ L  c0 [7 e, ^2 T9 e) r% J- A
if num==round(L/l); G' y& c. F8 ~* B
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));) ~$ O% E  g) A  @) c. v
else
1 d( U  }  X1 r$ @* H% e6 W! F- vh=(m2*g+M*g+4*m*g+m1*g-Ff1-4*Ff2-Ffg+num*pl*l*g)/(p*g*pi);
) W: X! f& _8 u, P, t6 B% Rend6 P% Y' |  @: g1 R( m4 X
a=Fw+Fb;
& H+ e) B' g4 Z4 q9 xb=-M*g+Ff+(Fw+Fb)*tan(lin);3 N- p4 U) I& C
F(1)=sqrt(a^2+b^2);
# q% e4 g9 o1 K( p! h, x- Ntheta(1)=atan(b/a);  U3 f/ x$ a4 U8 h3 o/ |
n=0;) Q, a( w4 y9 ~) J7 t5 _# j& Q% Q7 e
for i=1:4# H; a7 T1 _2 ~5 A& A
%钢管受到海水的水流力9 G" X! s, S# U1 `' g; R
Fh(i)=374*0.05*sin(theta(i));
. G0 m2 ]& @) P+ `/ Z6 b" Z, cn=n+Fh(i);5 W2 Y5 x, A' b) m6 w2 v! E
a=Fw+Fb+n;" H+ R8 B' T5 O$ m& |
b=F(i)*sin(theta(i))+p*g*pi*(50*10^(-3)/2)^2-m*g;7 J& h# r8 I6 b! m6 J8 b
F(i+1)=sqrt(a^2+b^2);7 n' k" A+ S, J+ \0 n
theta(i+1)=atan(b/a);6 O+ o' K9 o* n: ^0 Q/ j8 v
end
: A0 V6 D& y" s/ p' {% |disp('输出钢管和钢桶的倾斜角度(角度制)')
$ m5 R: `4 w  ]9 Bth=90-theta*180/pi& W% H( E$ X9 u5 @- y& L. i# ]
m=85*pi/180;) s0 U% y5 A( `) f. V% {$ j, y) h
if theta(5)>m
1 p8 V$ G: v. _$ @7 o/ N( zdisp('钢桶的倾斜角足够小,测量准确'), o9 W4 Q  n9 K% o/ ]# ?. }  k) h2 G
else
5 P4 @" {+ t, g3 edisp('钢桶的倾斜角过大')  Z3 ?: K0 S- V- ?
end
, ?' ^; w0 o) J& i, W5 P8 fc=0;
) h9 K: c4 u- _* Xfor i=1:5
3 d. K5 }) X. Q$ Pc=c+sin(theta(i));
( [# N0 ?1 j# y' ]5 ]end
3 f$ a; S, O. I+ Ad=depth-c-h;4 q) k3 P: ]3 b8 _6 E' }* L6 T3 t
y1=lin;
. z" b: w9 P) kdistance=0;' t; \4 j! R0 g/ d. h: K
if num==round(L/l)
; ]; D( k: z" ^y=l*sin(y1);6 |# z9 b  u7 E. ]; K$ @
x1=Fw/sqrt(1-(sin(y1))^2);
" E8 {& t. P0 kfor i=1:num-1" C* y- B& y  r; |% M# g+ X
m=(x1*sin(y1)+i*pl*l*g)/sqrt((x1*sin(y1)+i*pl*l*g)^2+Fw^2);2 j0 w; v% o- X! \' N& _* T* M9 V
m=m*l;
9 d4 _1 ~+ A+ M" ?; @3 P( q( X: hy=y+m;
( B! h. b8 s. G3 Hn=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
& B8 d! j8 }& _" n0 S9 ?distance=distance+n;$ o! o) d; Q& L+ W
plot(distance,y,'o')+ y4 f& j2 ?' W' h; K
hold on
  a- B# f* L. b# send# S8 b; B  Y- M$ z4 e7 _- v& w
else
6 r9 [# D1 F9 z' `5 s5 }y=y1*l;5 y" a4 \; s3 Z3 j/ L# k
for i=1:round(L/l)-num
; D5 L- E" E: W! m& q6 G3 x$ z$ |distance=i*l;+ H3 \- i/ G9 U8 y+ ]- L
y=0;
/ d0 L9 d8 s% ^" e+ {  d! V" splot(distance,y,'o')
3 Z9 y/ K' s& n. ^1 P# whold on
+ |% Z/ O. w+ p7 F5 U7 l9 cgrid on% q  X) n. n# _/ C$ a5 B  ?# A% v
end
. W+ B7 W3 w3 ]. E% B! Ffor i=1:num' j3 _; `% `  Y+ ~9 K3 t
x1=Fw/sqrt(1-(sin(y1))^2);
+ N* _% f4 w3 \9 e7 @" zm=(x1*y1+i*pl*l*g)/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;& ~5 [) _7 j4 o  Q9 `; ?* w3 |. j
y=y+m; " p# W1 v9 F# h9 l, Z0 ]$ \) @% T
n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;2 G) Z7 f# p9 P/ |8 |/ @) Q
if j1==0$ K9 c. B, E1 [- ^5 a* `+ m) H
y=eval(y);
( ]4 @  {* c. zn=eval(n);
) F& m3 h% N- N3 P( }4 {0 yelse2 Z: ~. w* w$ ~% [
end
; r7 q% r4 o8 M+ e* F) X2 k; v# rdistance=distance+n;
& D9 n7 q9 ~0 t. ?0 ?plot(distance,y,'o')
9 _. X4 s3 e' B8 uhold on) [7 D3 @8 ~$ F, K% P! h! N
end6 e! N1 R8 g+ j- K2 w3 S! M( m* j
end7 u- x' Q, @$ i* C- w8 Q( M
m=0;% [/ _# x, u  m. l3 F  T
for i=1:5
5 r6 f0 l- K; K7 u  D4 L( xm=m+cos(theta(i));5 `+ d3 ^% T. ?9 `
end$ d$ ]+ J  J$ Q$ n' w3 Z
%浮标的运动半径% u) o1 G' y  Q+ n3 A$ F1 k) T
disp('输出浮标的运动半径')
* X( s' l, ?  n0 Z  v5 |- y4 u* rans=distance+m2 ?* n1 p; y! }+ w' P4 }+ W

) X+ e8 J( s, Y" F/ ], H( j
3 S* [  I0 W9 m* G2 ^; ~% o
. ?1 y% i/ [$ I! K0 a& c
4 G6 u4 R& V0 b7 d! _6 r2 H* I5 _- w- Z: G6 h6 [9 a7 `& j
4 k/ L& I( m! f/ ]" h
2 Q) d: r0 u3 J* B& J+ A2 |  G/ x

2018全国数学建模总结.docx

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


作者: 571334077    时间: 2019-4-10 19:25
2333333333333333333333+ J# M7 e) u/ j4 B3 c" x3 N- l# \





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