- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 81
- 收听数
- 1
- 能力
- 120 分
- 体力
- 540977 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 167671
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5324
- 主题
- 5250
- 精华
- 18
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
7 H& C7 y5 J% ]# p8 ^
【数学建模】数据处理问题5 {; |# x$ U: Z1 e8 x
一、插值与拟合 w' \7 q2 G& b; Z& i' @7 U
+ M2 t6 X9 L8 G; ~* ^1 I1 W5 M% [
常用于数据的补全以及趋势分析7 N2 @+ w' x# `" ]2 h
; a. P3 G4 Y; ~6 }5 R( X$ h1、插值
+ Y: A1 J! E+ H/ n$ F; {+ W5 g4 P9 j2 F* W) [' \1 x9 m
总的思想,就是利用函数f (x)若干已知点的函数值,求出适当的特定函数g(x)。这样f(x)其他未知点上的值,就可以用g(x)在这一点的值来近似。这种通过已知求未知的方法称为-----插值。
2 ^# o( M v" S% ?: M. V. g, x$ t$ |( U) g
插值方法有很多,个人感觉样条插值spline最常用吧。。。其他感觉要么复杂要么不靠谱。
2 S1 V" f. z$ ^' k8 u. u) Y! |" ^5 v; ?! p) @/ u3 T
对了,二维散乱插值有个方法叫v4,效果不错,拿来用就是了。。。
& y4 F* F- I! N- K, z7 w, K3 _- ~# B: \+ C8 t' l/ E& h
基本内容:
8 [5 P1 _4 n$ P( z" C+ @) G% o# d$ c1 A7 B
一维插值
; L) |: G! q$ {' h二维有序插值% f5 P# ]$ v; D P
二维散乱插值
! \ [. a# o. l基本语法:y = interp1(x0,y0,x,'spline'); %一维插值; y9 T) C; R: m7 a' X
%x0必须单调;x要落在x0区间范围内;x指的是待求的值$ b9 h) L3 U% p0 ]: Z5 m3 E2 ~/ S
2 h' E# L7 P. V L, }/ |
%示例
% e( K, ^. M; x+ V/ `hours=1:12;
; {# ]3 H5 z' o1 ~temps=[5 8 9 15 25 29 31 30 22 25 27 24];( f* R+ X8 C9 v/ l. p9 \
h=1:0.1:12;
/ a- d1 R9 }) a9 x. p, s/ tt=interp1(hours,temps,h,'spline');
5 u# W! | Z0 ]" T2 B% ?$ ^/ B4 Q( \) \+ F; T: G5 g
+ Q+ E$ O! ?$ s9 u' ~
y = interp2(x0,y0,z0,x,y,'spline'); %二维插值--规则点
/ T5 X' H( B; ^2 G$ h* L%x0,y0必须单调;x,y是一个是行向量一个是列向量;x,y要落在x0,y0区间范围内;(x,y)指的是待求的坐标
/ H8 k; b' j; v6 \' |
* e* T# X) I4 W%示例7 j/ P5 c; E- [. O9 E
x=1:5;
8 N6 F; m2 {# z7 H+ Py=1:3;
2 t0 C5 n" d. i# |( t0 T. [+ V: Y2 D& xtemps=[82 81 80 82 84;79 63 61 65 81;84 84 82 85 86];
% H$ N9 F: R0 Q8 ]7 m# l( vxi=1:0.2:5;; J! p. A; W& E$ p+ |* F
yi=1:0.2:3;
4 A$ }" @& q& N6 b b# l6 gzi=interp2(x,y,temps,xi',yi,'spline');
! Q: ]7 ^8 ^3 d. K
# J1 G" J, q- E9 I% _: r | Q9 N% |9 l9 l. O- c7 p' h4 q
7 a# ]3 c7 h0 d# `, s" o7 w
y = interp2(x0,y0,z0,x,y,'v4'); %二维插值--散乱点
& S9 P; S) B+ A& @
* [2 B2 B, m0 R/ e ]$ ^%示例( P: a0 f6 j( O0 |$ Q) V+ T. S
x=[129.0 140.0 103.5 88.0 185.5 195.0 105.5 157.5 107.5 77.0 81.0 162.0 162.0 117.5 ];
2 r3 h3 T! F! @0 y! a2 ~$ Ay=[ 7.5 141.5 23.0 147.0 22.5 137.5 85.5 -6.5 -81 3.0 56.5 -66.5 84.0 -33.5 ];; l% K- X# X. @# F: c& o
z=[ 4 8 6 8 6 8 8 9 9 8 8 9 4 9 ];: t/ G% q8 h) h& x5 S+ p
x1=75:1:200;; e; T5 _" K, K* g
y1=-50:1:150;
6 U! E, w0 H5 B4 g[x1,y1]=meshgrid(x1,y1);
, O7 s- U* X0 wz1=griddata(x,y,z,x1,y1,'v4');
: m4 q% x, G+ b7 K$ Q/ G+ t' f% }( }' x( W
, s8 g% S4 q8 [* v
2、拟合:1 v* B4 x" P) B
3 n; {) t0 @8 b
总的的说,已知一组已知数据,寻求一个函数y = f (x),使 f (x)在某种准则下与所有数据点最为接近,即曲线拟合得最好。
& W! j0 s1 z8 {: E& @ w$ y按照函数的不同,可以将拟合问题进行分类。% W7 R2 _& b8 D. E6 e
感觉多项式拟合比线性最小二乘法实用多了,就合并了吧233335 U6 A/ w0 }9 b5 O& H
4 ~3 D+ d- o3 K4 q/ l6 b5 r) W基本内容:
( T4 q8 @* z& L( e9 S% @a=polyfit(x0,y0,m) %多项式拟合,线性最小二乘法就是使m=1" s5 g$ g8 ?6 H2 x& d
%m是最高次项系数,a返回m+1维向量(还有一个常数项系数)1 L) W- Z7 c9 v% p! Z
: w& e' d- ^$ b7 d* E%示例:& h4 R7 I9 m x; P
x=[1 2 3 4 5 6 7 8 9];( Q& U {5 q+ P! w, G& k* d8 o
y=[9 7 6 3 -1 2 5 7 20];( [' v o: a/ L3 V
P=polyfit(x,y,3)
7 c p: T8 i( m9 X2 X! d1 t& D$ G8 Y2 O
5 T7 ?5 O* q7 {' y8 l%指定函数拟合---看着头晕,贴一段代码要用直接调参就行, s6 ]; H8 P* T! m. B, g/ h
syms t;' j# h3 D: f9 _) A: d4 |
x=[0 0.4 1.2 2 2.8 3.6 4.4 5.2 6 7.2 8 9.2 10.4 11.6 12.4 13.6 14.4 15];7 M& q" N% C( O7 K: N. w
y=[1 0.85 0.29 -0.27 -0.53 -0.4 -0.12 0.17 0.28 0.15 -0.03 -0.15 -0.071 0.059 0.08 0.032 -0.015 -0.02];1 o) w8 ~- Z6 ^2 T1 j! S5 F- Z
f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'}); %输入要拟合的函数,以及参数,自变量等,自定义拟合函数
# D% N) j" d! Y% S- L# v; ` [6 ]3 rcfun=fit(x',y',f) %显示拟合后的结果
2 X6 l, z9 e- G4 G0 _+ ixi=0:.1:20;
$ ]2 I! H: X3 ~% j$ D' Fyi=cfun(xi);
% z' l! C; C/ D' K- M$ a; eplot(x',y','r*',xi,yi,'b--');
1 T" v' [7 w+ M0 \; v" ]; P' Z9 p7 L/ l. |3 N( h! Q9 C- S" o- L! U
' p. _, C" n0 p区别:+ L, ^/ Z) i% t/ Y9 z+ f [
插值一般经过所有数据点,拟合不一定经过所有数据点& h. [ A) I9 x( s. m* m8 @
插值不一定得到近似函数的表达形式,仅找到未知点对应值。拟合要求得到一个具体的近似函数表达式。# G( c+ [" b8 I, \2 j, ^
通常建议:数据比较准确,用插值;数据误差较大,用拟合$ b2 N; h: k- U% f. {- C% `
参考资料:
+ e8 z" U- O' N0 R k
2 f: I v+ ]6 P8 a数学建模之拟合插值方法/ c4 q% v! }( F$ B$ q/ E1 @
数学建模-插值与拟合模型. d8 l+ I. p+ C
数学建模常规算法:插值和拟合8 x; s' M8 @1 ~& Y& F7 r8 g
K! ~6 J {$ e& A& f" ^
二、K-means聚类与高斯混合聚类
$ Q- {8 F$ v6 s& F: ^
9 R$ f; G, D) _3 q3 o' j常用于数据异常值诊断与剔除。$ g8 R) O, u5 ^( T
通过聚类检测离群点,进而进行删除) q7 r7 i9 D! f6 j0 I( l
( n+ E: z; r" _
1、 K-means聚类$ T6 o5 ?% f8 ]" ]
& a0 g7 W- r2 {/ v: j5 k) ~) O2、高斯混合聚类, C+ o8 h P; W! o r& _
2 j" i! A# D* Q$ h8 ~涉及到聚类的知识,怪复杂的,等学到聚类再写吧。。。
: ?7 Q% M" o# X3 S& k* e三、主成分分析% [! Y8 o8 j9 Q
7 t& s+ {# K- V& Z4 m
常用于多维数据的降维,减少数据的冗余1 n" K2 O" ]/ `5 E* i# R# ~( \: ?4 P$ F
6 `6 n( R% w' y
主成分分析(PCA), 用于将多个变量通过线性变换以选出较少个数重要变量。0 Q( x( S: d' m- J& m7 p9 v
9 W3 S2 L' F8 j3 v( p, F& D% {
主成分与原始变量之间的关系:3 \: L- }% U9 w' w1 r
" ?5 \* `, f6 ]6 ?. `/ X (1)主成分保留了原始变量绝大多数信息。
4 L! K9 i# @& i/ o* Y; _8 W
& F8 ^ H0 z( K/ J% k! Y (2)主成分的个数大大少于原始变量的数目。
8 l( E4 \& y/ K4 L7 |! I
/ X7 A) N) {" N; B7 c (3)每个主成分都是原始变量的线性组合。
2 I8 E3 K2 v# T, q' @+ r& D! ^- L" v" c- `% v% O: f
(4)每个主成分的贡献率不同。; j( @! L P% a T
! ^" o+ i1 k, k (5)各个主成分之间互不相关。
1 P% V6 N; G0 [; ^' o+ g% x/ b7 q" f- z
处理步骤:
1 m7 B" T+ I6 `) u" H; m v) Z7 G7 Y# b; G
数据标准化: Y4 y) B" O" o) g- B2 ^3 j1 a8 U; s
计算相关系数矩阵
# J3 i* q* N& m ]( Z计算特征值与特征向量
' I; `( B% k0 {7 x" o5 Z3 Q求出贡献率与累计贡献率(一般累计贡献率达到85%即可). o9 U: |6 p7 x+ {, \0 N) K
计算主成分载荷(即线性系数)与主成分得分, |' x" b! ~5 K9 _( U" d: B
代码:6 y/ y9 }# p% h& F1 A/ N
%示例:%示例:
; ~; h" e: d( S5 sda=xlsread('data.xlsx');' f% f4 N- m5 U5 X$ I3 f( R# B
%%标准化矩阵 4 Y$ M, {) {# j9 X% V9 T! B
da=zscore(da);
9 u9 p$ ]. \/ W9 F' s# f q% f7 C7 F; Ifprintf('相关系数矩阵:\n')
: \+ H% Z. S* ?' r/ R- M8 y9 [9 Zstd=corrcoef(da) %计算相关系数矩阵 - h) S; d; ^; x- ~
[vec,val]=eig(std); %求特征值(val)及特征向量(vec)
. O; V7 @. V% J# E% W) E0 ^newval=diag(val) ; ' Q% {0 N2 g! x* X$ R4 J
[y,i]=sort(newval) ; %对特征根进行排序,y 为排序结果,i 为索引 ! z$ C/ e2 V0 X7 H- f( o
fprintf('特征根排序:\n')
4 f& T6 u* ?" x7 o7 C" sfor z=1:length(y) 7 E8 y' W1 d5 W
newy(z)=y(length(y)+1-z); # \" a2 { F& d; t4 O: \( {& @
end
/ V9 J4 E% a/ T7 C$ Sfprintf('%g\n',newy) %%显示特征根
/ I G3 j. G: L! |- Y/ Rrate=y/sum(y);
' O; [5 {% [# X& kfprintf('贡献率:\n')
6 w$ r$ o5 w. p. Y+ U& D$ f+ inewrate=newy/sum(newy) # I6 R: d1 Q4 X4 v5 {9 _
sumrate=0; ) }; p$ {( d H+ v! U8 `& X$ t
newi=[];
( T, Y' D+ W% X3 o' e. y# xfor k=length(y):-1:1
5 _, J8 e Y4 X7 l! o, ~ sumrate=sumrate+rate(k);
! F) `/ y8 S( ?" t- m, g newi(length(y)+1-k)=i(k); 1 z' w4 G+ ]( T, R! v1 ?4 X
if sumrate>0.85 %记下累积贡献率大于85%的特征值的序号放入 newi 中
4 m6 _7 e7 h2 R' R; n break;
( |' v+ g+ q/ E8 v. h8 g end: F1 }* o0 U" Q; @, S4 H
end
0 y9 u1 d! W6 U) cfprintf('主成分数:%g\n\n',length(newi));
, ?3 {" x% X8 G6 O7 yfor p=1:length(newi) ) {* z! C2 A' V% \4 B& Y. T
for q=1:length(y)
6 U3 z _; X. I- _: l, b vector2(q,p)=sqrt(newval(newi(p)))*vec(q,newi(p));%%%主成分载荷
8 D0 l0 Y; Q2 p' M$ ^0 M4 R end$ ?4 n( b! |) k0 C% e7 {7 c
end
8 i! |2 d) J) Z4 G- t' jfprintf('显示载荷:\n'); ( ]8 W) E8 y1 t
disp(vector2); %显示载荷 %%%求各主成分得分
6 J: z7 A. A. [& A Wsco=da*vector2; 1 i5 W$ y4 Z( ^+ O+ o
csum=sum(sco,2);
& ?1 i7 d+ [# R2 u& @8 a[newcsum,i]=sort(-1*csum);
% i9 D1 Y2 X8 u3 l[newi,j]=sort(i);
5 R b$ b% g7 T5 u( E, S3 Lfprintf('计算得分:\n') %得分矩阵:sco 为各主成分得分;csum 为综合得分;j 为排序结果
* o3 V0 z6 p. W% tscore=[sco,csum,j]
; ~" ]/ U* T4 d0 _7 H0 e- L4 w) z- g) J
参考资料:2 Q7 Q n5 m+ c8 z8 H3 D1 Y. {- x
关于主成分分析matlab代码实现的总结
& _& U: \- L) ^% B r Q数学建模算法笔记(2)——主成分分析
' V$ a/ f b5 G% g! ~0 \8 c数学建模之主成分分析matlab
" M& H2 C5 w) d7 |数学建模之主成分分析法/ Y5 o# I5 @ D$ ?6 |5 u
: c, q) i) _$ q四、方差分析与协方差分析
5 ?, |1 A$ c; y+ Q+ H, A7 L4 @0 K3 F2 U+ t" B, S; Y W
常用于数据截取与特征选择。通俗的来说,就是判断某个特征对结果对影响是否显著。
% w( I* d2 K$ @( Z) a8 l3 }" p; q8 b
1、方差分析
0 P6 [6 w$ g8 ]& t: ^" _, f9 S* I, M O% b3 m
(1)单因素方差分析. i* g* j, x/ \+ m8 J
8 ~' L2 s5 @3 z$ J: K维持其他因素保持不变,仅仅对一个因素进行考虑并计算方差,这称为单因素方差分析。; `& F" Y5 }5 P# `
3 g/ W2 E6 Q# b8 L" D! ]" c数据集分为均衡数据(各组数据个数相等)与非均衡数据(各组数据个数不等)。
9 I8 L, W* }7 m%均衡数据
+ N0 H3 c9 N" Y, J0 Mp=anova1(x) %p是一个概率;x每一行代表不同样本,每一列代表特征中的不同序号 e0 J9 ~0 A- W& P. c
; \: u' K2 D3 _3 ~%示例
" f+ u4 P9 t& \2 F0 ]x=[162 158 146 150& `1 B0 q+ o6 V6 l
167 160 154 155, g- _ S$ O- _* V
170 164 162 161" y) N3 q* j7 w d8 u2 f% m
175 172 168 180];
$ x' z9 v1 K$ [7 Z
! n/ ^) B4 N3 ~' v4 Sp=anova1(x)3 G: `' u) j) V: A
- E. J3 ]( [3 v% Z1 Z& [- I. M! E7 O4 n- d2 z
7 e) n) W& z) k; o" i; R" U
求得 p=0.1109>0.05,所以几种工艺制成的灯泡寿命没有显著差异
; M' T/ G+ v" [+ P0 ^: a) N( i& M) _, x+ u1 u2 R! a7 C, R
%非均衡数据. W# N% m& A2 S! Y! V# q
p=anova1(x,group) %x为向量,从第1组到第r组数据依次排列;roup为与x同长度的向量,标志x中数据的组别(在于x第i组数据相对应的位置出输入整数i)8 q- Q/ H* S: G, h& j1 w
" W _: j( f8 Y4 Y* A%示例
( M' k) _6 G/ y: fx=[1620 1580 1460 1500
5 O. a3 ?; o9 |; K& [1670 1600 1540 1550
9 Z5 @5 f1 [4 k$ W- w1700 1640 1620 1610
( c4 ]6 I0 N# y/ B1750 1720 1680 1800];
! w1 K; s' w7 qx=[x(1:4),x(16),x(5:8),x(9:11),x(12:15)];5 E3 T2 \# B3 q
g=[ones(1,5),2*ones(1,4),3*ones(1,3),4*ones(1,4)];3 a8 i0 J1 @/ x, K
p=anova1(x,g)2 ?% h/ f# P1 O+ K8 U8 M: U
3 T$ o) i6 ~9 \. D Q# E% s
5 P& i5 `9 V/ n0 d# @2 f3 b q0 O- ~求得 0.01<p=0.0331<0.05,所以几种工艺制成的灯泡寿命有显著差异 单因素方差分析结果对应一般如下(单因素显著性水平取0.05):
" x) _5 ^8 p' l# y) s) G6 b) ]# ~1 d# h
p值结果
8 ]- `/ P4 [9 hp<0.01非常显著
9 V. ]4 U9 Y! o% H6 D3 D& {0.01<p<0.05显著, z* Z0 G5 w! @* Z$ l# G
p>0.05不显著2 B; E' X9 G4 T4 X. I
(2)双因素方差分析
. ]" h* {+ B A9 x: q1 \9 `$ M7 _: S( ]7 K6 b$ i) S
与单因素方差分析类似,这次我们探究两个因素。对两个因素的实验可能进行一次,或者很多次。. k/ f _% }2 E% O) ?
1 W# Z* j# p0 B# o3 W6 v* l% h5 }单一观测值:# H: ]5 x( K0 {4 |+ \
p=anova2(x) %x不同列的数据表示单一因素的变化情况,不同行中的数据表示另一因素的变化情况, W9 b, X2 F Y' r+ o0 n% g
: d/ z" r/ [- j: Q6 z
%示例+ `$ }/ J- B' N: S, u' [. j
x=[58.2 56.2 65.3
. e4 |6 E+ [2 C, E" Z4 E+ S* ~8 B49.1 54.1 51.6
# g, c. z+ B4 J& h% M" D8 p60.1 70.9 39.23 U4 A9 ]( W; m9 a' a1 l% {6 }
75.8 58.2 48.7];
- a% q: C$ k8 N: N N, S[p,t,st]=anova2(x)
7 @( K) t u7 ^6 k; [6 W9 o- J0 m
- ~' x# [- w0 p% E0 J0 o. |
求得p=0.4491 0.7387,均>0.10,表明两个特征不同数据之间的差异对于结果无显著影响。
1 M8 c0 B# ]3 o
6 S( L! V( w8 ]3 E" `3 u- z多观测值:+ ]; x+ Q% P% F* L2 ?# N
p=anova2(x,reps) %如果每一“单元”有不止一个观测值,则用参数reps来表明每个“单元”多个观测值的不同标号,即reps给出重复试验的次数t
' }, J. T% t, d0 k- A6 k
6 k" y4 i* N5 Z4 P9 w. D% ?5 w%示例
( p; S$ C# o9 c& n0 W- ^x0=[58.2 52.6 56.2 41.2 65.3 60.8
$ ^& z7 i" f* n( V! Y/ W0 x& ]) h49.1 42.8 54.1 50.5 51.6 48.4( K/ n% _9 ?5 E) p# j' E1 [
60.1 58.3 70.9 73.2 39.2 40.7 M* s* @: J( u4 s) D p! |( J: p
75.8 71.5 58.2 51.0 48.7 41.4];
& Q( E7 n4 ^" ?x=x0';, k1 \. Q4 W) t9 @; h# c
[p,t,st]=anova2(x,2)
0 Y* P2 q" j4 ~! |8 h% M1 v9 p8 [
z3 |# v d. b- P( X8 h
求得p = 0.0035 0.0260 0.0001,其中第三个参数表明两个特征联合作用下对结果的影响。结果表明,这两个特征的影响均是显著的。
' T! t( g5 M, H! z$ j- F: }% K
! h ^9 I% ?8 U6 w8 [' R值得注意的是,上式使用转置,保证x的形式如下图所示(需要注意行列分别代表的含义):
+ t2 C1 _; O; u* `3 y$ I' q9 n
7 p! ?( V+ E' C% r c/ A p其中,一二维代表特征维,第三维代表样本维。
/ X4 b1 ^1 l- q0 m) x# M. o/ [. x. |1 |8 v2 A- ?& E
(3)多因素方差分析1 W2 L3 b6 V" E z. B* g
* N- G0 g# D5 \' E- z( e* h这里用到了正交表的处理方法,我们直接使用anovan函数:
$ t5 b" L' ?7 D6 Z2 e! a5 s
6 V. b( E$ c! P4 f6 S* ]
; A5 ]' E8 b) T+ m其中,特征样本不同的取值用特征水平1,2,3…来替代。% Q1 s+ W! V" D: }2 c
- m9 G- e, M' f: d$ c最后,双因素与多因素方差分析结果对应一般如下(双因素与多因素显著性水平取0.10):
+ l$ a$ h% b# p$ O, Ap值结果
- F" k5 o$ n) N& \- k6 J w/ }p<0.01非常显著
# v; U/ U4 }3 ^9 U0.01<p<0.10显著
1 v6 y$ k8 y0 x' R" gp>0.10不显著
" A W- a6 s! K0 t/ D( q0 A, \8 S- B7 _! y4 T+ `
2、协方差分析
B+ J: S$ f: Q, A: @6 J$ c4 y; H: X
对于特定的特征,为了寻找那些样本之间差异较大,运用协方差分析。
2 w1 h' r4 ?0 A* _
+ l' S0 L6 d( \7 w5 Y0 F+ B: i N在进行完方差分析的基础上,进行协方差分析。
7 Z: f; s5 R0 a%分析列( T" g7 H# |* ^4 i7 I
COMPARISON = multcompare(st,'alpha',0.05, 'estimate','column')" ~9 |8 o) c, k- }$ G) W
%分析行
7 i4 m5 {' p( P$ DCOMPARISON = multcompare(st,'alpha',0.05, 'estimate','row')
1 K) G2 ~: s6 g% P: J- i+ w1 X8 {& p* x) M4 j
! \9 g5 C& H w1 I' o J# d& H参考资料:& I" G/ p7 B0 s5 V. d [1 c2 z
数学建模常用模型19 :方差分析0 X Z9 x* J1 o. [7 S3 G3 }: v: C
数学建模之方差分析8 c. T9 R; b9 }5 `
————————————————
9 x4 f/ E9 p( ~, U原文链接:https://blog.csdn.net/soviet1941/article/details/104120359, w. O! V+ D; Z0 j
# v$ t( f i* u
; I3 }( o/ O! T4 h5 T( A0 B |
zan
|