数学建模社区-数学中国
标题:
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 P
F=[];
- d6 a( |+ U1 ]* \ W6 ]. F
theta=[];
7 E- y* M; F; e* \$ t) k& n$ Y
v=24; %风速
/ l# X+ \6 ^# c1 w3 u% ~ [
l=105*10^(-3); %锚链每节链环的长度
" W& g' y: Z* q% |4 V, Y
L=22.05; %锚链的总长度
, j- u, ^% J; D! l7 h5 Q" y/ R
num=0; %通过更改不在海床上的链节数得到一个最优解
& `6 _" m$ Z8 [9 R/ Z: W
num1=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 b
m2=1200; %重物球质量
/ B9 c* e) y% t* N$ I$ k! ~: e, X& t
pg=7.7*10^3; %重物球的密度(单位:kg/m^3)
. M/ J* A1 r' {* P9 X( p
depth=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 n
g=9.8; %可通过改变此语句来修改重力加速度,单位为m/s^2
2 ~# ~! e, {; E5 T9 M. M- _5 p
p=1.025*10^3; %海水密度
) l; j8 c, }2 s4 X4 w
M=1000; %浮标质量
5 Z0 B t# r# \. k* T% M3 J
m=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: X
j2=0;
. x; q) O }; X$ W
while(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) a
num=round((num1+num2)/2);
5 D2 f, s& h2 g# S5 `
elseif (y<d)&&(num<round(L/l));
+ S% \ j3 ^+ g( s
num2=num;
3 A6 u7 N1 B5 Y V: a; @ A1 v
num=round((num1+num2)/2);
. t7 r3 ?' q) r# H, O4 C9 T
elseif (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 V
elseif(y>d)&&(num==round(L/l))
4 @: ^ o$ c' d" `& d/ L: w
lin1=lin;
; q* f( ?& |( c. e
lin=(lin1+lin2)/2;
, O( p5 v5 J( x" n& w; T
end
) 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" ^+ C
Fhg=374*pi*((m2/pg/3/4)^(1/3))^2*vh^2;
. M- m0 D" r+ x+ a8 `& h9 K
%风对浮标受力面的投影面积
`0 ~. ^3 u" t* m
S=2*(2-h);
) D9 r5 V: w: u' v" I
%风对浮标产生的力
v+ F7 L" r4 c6 s
Fw=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 t
Fs1=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& Y
else
- 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 y
a=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 d
a=eval(a);
/ e7 q# a4 z; X" d# {: G) @
b=eval(b);
7 J3 i5 f3 z% _* Z1 J0 E( x9 m r4 B
else
; c7 c p9 M' Y" e! N
end
) T0 `8 r" b. S: e
F(1)=sqrt(a^2+b^2);
/ h0 z5 P; {/ W- }- ~! y
theta(1)=atan(b/a);
$ b3 ?5 o( x; i! o, J
n=0;
3 @' B( G, ?( Q, ]4 i* ]5 Z. N
for i=1:4
7 x4 p2 P% c e# m# Q. I) |
%钢管受到海水的水流力
; u# A* W) s, H3 j5 o0 M. v
Fh(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 ^& W
a=eval(a);
2 y, u' O" x \- u4 g1 b
else
# `% n& o4 {3 O/ c# x v( O) U
end
* z0 [: Z/ ~" ?. _
b=F(i)*sin(theta(i))+p*g*pi*(50*10^(-3)/2)^2-m*g;
! L3 P, r& }. k9 A. j+ p
F(i+1)=sqrt(a^2+b^2);
+ F: D3 V! {- Y# U& t4 a
theta(i+1)=atan(b/a);
6 i5 p; j' Z8 d5 T3 { N
end
5 y( X' I* H& U# R% h" N
c=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+ e
end
' 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 K
distance=0;
9 w7 `# m* l: h7 [
if num==round(L/l)
2 [5 w- j: }) A2 {) Y/ N
y=l*sin(y1);
6 c9 q* T% W) T8 J( v9 I
x1=Fw/sqrt(1-(sin(y1))^2);
) ]3 @& ~! l" h, y
for i=1:num-1
8 E$ E4 V" C8 `4 d C0 D
m=(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 z
y=y+m;
/ m2 f( [5 h$ V4 N' N$ B( b
n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
9 J/ U* @8 C( u1 | M$ e% X
if j1==0
: F+ u9 R/ p; k8 S# C
n=eval(n);
! i2 w# @0 x& b/ @( d9 A9 ~; ]
else
1 q( Q9 B; U4 g2 [* F0 t
end
% v1 G o9 |; }7 t3 V( Z5 [
distance=distance+n;
* \6 k) x- F/ p- y
if j1==0
0 O; |+ q: H/ o0 l8 i: { }
y=eval(y);
! a7 R) @7 ]" L) S
else
9 E2 i, i- M6 y# m4 S x( t- Y
end
/ z0 I: f: H& w, G
end
/ y( _+ p) k Q |* V j
else
" [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 H
for 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' C
m=(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( N
n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
1 f' z$ I8 l, |, U+ L
if 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 M
else
1 E9 E, J1 c& M6 p' |& ~
end
; Q, ], Y* r- o' j
distance=distance+n;
& b! Y: }' s# n/ `
end
7 g: Y3 |/ B; U7 ?# C$ R$ f7 d
end
# Y4 ~) ]0 }$ F
m=0;
. { C9 p- D5 x3 `! G$ X
j1=1;
2 D( @& Q% V0 v _1 _: Q
j2=j2+1;
+ a. m9 ^; e" T" Y i& K
end
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' V
S=2*(2-h);
. b) E+ o( K7 `- C. |9 S
%风对浮标产生的力
; \! ]" u) q* Z6 @: x9 g# G: r1 M
Fw=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. q
Fs1=374*0.3*vh^2;
0 V* A2 R7 r& H* e1 U" u1 F
%钢管受到海水的水流力的近似值
5 E: E0 ` o0 j1 n
Fs=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 C
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));
; 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
end
6 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- Z
F(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) u
for 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 q
n=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 m
F(i+1)=sqrt(a^2+b^2);
( d: T6 `; }, m: n9 O0 t
theta(i+1)=atan(b/a);
" X9 J; @) J9 u
end
- o; p% m5 Y) F! K. J1 C
disp('输出钢管和钢桶的倾斜角度(角度制)')
6 B& g/ v7 g* ]+ [5 o
th=90-theta*180/pi
C! Z% N7 s1 J+ ?+ n( t
m=85*pi/180;
$ [0 A2 A7 X& e6 P* z5 p- F
if 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$ o
end
& _. H- k' ]3 w% I6 y2 y( G
c=0;
6 P4 ?' g) ]8 [) S c X! Z
for i=1:5
. L6 ~5 \1 Z4 }$ c4 `) q; i4 d
c=c+sin(theta(i));
/ m1 J# ^8 a. f; E
end
+ U3 ^8 m% r4 ~6 ~
d=depth-c-h;
6 j k, \) @4 v8 F
y1=lin;
; i, B8 }" u+ _" _
distance=0;
9 t: e3 q2 g: n. C
if num==round(L/l)
/ t6 {; T* J7 s5 i3 T: z
y=l*sin(y1);
: L& E6 f! ^- r ?1 u
x1=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# {" Y
m=(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 V
m=m*l;
3 ?" O& i* W1 t# ~: h! r/ b& \, ^
y=y+m;
2 q/ ?( Q: ?' z5 x6 d
n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
% o. {( C+ ^' J
distance=distance+n;
1 X( J3 H3 t. B2 f7 t* y3 v
plot(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' q
else
5 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 on
8 h5 q/ M0 T. u+ q: U6 G2 X5 a
end
2 c' n$ a5 ^# I( s; |$ Y7 D! o- [
for i=1:num
2 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 R
y=y+m;
4 B* N, M- _+ k1 W
n=Fw/sqrt((x1*y1+i*pl*l*g)^2+Fw^2)*l;
, O, c5 g: A$ z; W
if j1==0
e: ?% Z8 f. r2 n- W
y=eval(y);
- k( C' ~5 P5 \
n=eval(n);
" F4 e5 ^8 E9 t3 m; P
else
+ I* y) z$ Y) n+ K7 V; d
end
8 k6 \3 i8 g8 I$ z& `! }7 X
distance=distance+n;
& R1 m2 _7 I+ w. y9 }- Y
plot(distance,y,'o')
, P. R+ L2 ], E0 m: D5 o
hold on
. I0 f$ B7 z3 `% Q% R
end
, O6 s2 E) O8 d
end
* 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 k
m=m+cos(theta(i));
8 v0 V$ D+ V& @7 b3 W; v
end
5 @5 R' J8 r! o- Y- H+ B/ g
%浮标的运动半径
0 x7 { ?! W/ q& V
disp('输出浮标的运动半径')
) 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
2019-4-10 11:37 上传
点击文件名下载附件
下载积分: 体力 -2 点
17.26 KB, 下载次数: 0, 下载积分: 体力 -2 点
作者:
571334077
时间:
2019-4-10 19:25
2333333333333333333333
2 _, O6 d7 J1 J& f% o L+ q9 Q: M
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5