-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMixturePreID.m
More file actions
178 lines (178 loc) · 9.7 KB
/
MixturePreID.m
File metadata and controls
178 lines (178 loc) · 9.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
Optns = cell(14,3);
for n = 1:14
%% Gaussian Start Points
if n==1
Optns{n,1}.low = [0 0 0 0.2 0.2 0.2 0 0 0];
Optns{n,1}.x0 = [0.0306 0.043 0.01 0.35 0.43 0.5 0.27692298496089 0.795199901137063 0.186872604554379];
Optns{n,1}.up = [0.1 0.1 0.1 0.5 0.5 1 1 1 1];
elseif n==2
Optns{n,1}.low = [0 0 0 0.2 0.2 0.2 0 0 0];
Optns{n,1}.x0 = [0.0593 0.06472 0.0136 0.3593 0.4375 0.507 0.254282178971531 0.814284826068816 0.243524968724989];
Optns{n,1}.up = [0.2 0.2 0.2 0.5 0.5 1 1 1 1];
elseif n==3
Optns{n,1}.low = [0 0 0 0.2 0.2 0.2 0 0 0];
Optns{n,1}.x0 = [0.08 0.11 0.3 0.35 0.43 0.5 0.02 0.02 0.2];
Optns{n,1}.up = [0.15 0.15 0.15 0.45 0.45 1 1 1 1];
elseif n==4
Optns{n,1}.low = [0 0 0 0.2 0.2 0.2 0 0 0];
Optns{n,1}.x0 = [0.08 0.7 0.25 0.25 0.29 0.45 0.005 0.02 0.3];
Optns{n,1}.up = [0.1 0.1 0.1 0.32 0.32 0.55 1 1 1];
elseif n==5
Optns{n,1}.low = [0 0 0 0.2 0.2 0.2 0 0 0];
Optns{n,1}.x0 = [0.0862 0.0664 0.0292 0.26 0.31 0.5 0.0377 0.02 0.0867];
Optns{n,1}.up = [0.12 0.12 0.12 0.28 0.35 1 1 1 1];
elseif n==6
Optns{n,1}.low = [0 0 0 0.2 0.3 0.2 0 0 0];
Optns{n,1}.x0 = [0.14 0.14 0.02 0.25 0.31 0.5 0.005 0.005 0.2];
Optns{n,1}.up = [0.18 0.18 0.18 0.28 0.325 0.65 0.1 0.1 1];
elseif n==7
Optns{n,1}.low = [0.03 0.03 0 0.22 0.22 0.2 0 0 0];
Optns{n,1}.x0 = [0.04294 0.049 0.0244 0.2502 0.27 0.45 0.01 0.01 0.2579];
Optns{n,1}.up = [0.1 0.1 0.1 0.315 0.315 1 1 1 1];
elseif n==8
Optns{n,1}.low = [0 0 0 0.2 0.2 0.2 0 0 0];
Optns{n,1}.x0 = [0.04 0.0651 0.0241 0.26 0.28 0.45 0.0116 0.0242 0.371];
Optns{n,1}.up = [0.12 0.12 0.12 0.35 0.35 1 1 1 1];
elseif n==9
Optns{n,1}.low = [0 0 0 0.2 0.2 0.2 0 0 0];
Optns{n,1}.x0 = [0.08545 0.76 0.04 0.26 0.28 0.45 0.0267 0.03367 0.2624];
Optns{n,1}.up = [0.2 0.2 0.2 0.32 0.32 1 1 1 1];
elseif n==10
Optns{n,1}.low = [0 0 0 0.2 0.2 0.2 0 0 0];
Optns{n,1}.x0 = [0.0442 0.073 0.025 0.26 0.315 0.45 0.02101 0.0102 0.2064];
Optns{n,1}.up = [0.1 0.1 0.1 0.35 0.35 0.5 1 1 1];
elseif n==11
Optns{n,1}.low = [0 0 0 0.2 0.2 0.2 0 0 0];
Optns{n,1}.x0 = [0.0488 0.1 0.0409 0.26 0.32 0.45 0.011 0.01378 0.367];
Optns{n,1}.up = [0.15 0.15 0.15 0.35 0.35 0.5 1 1 1];
elseif n==12
Optns{n,1}.low = [0 0 0 0.25 0.31 0.2 0 0 0];
Optns{n,1}.x0 = [0.07 0.12 0.05 0.26 0.34 0.45 0.01 0.005 0.2];
Optns{n,1}.up = [0.2 0.2 0.2 0.28 0.34 0.5 0.1 0.1 1];
elseif n==13
Optns{n,1}.low = [0 0 0 0.2 0.2 0.2 0 0 0];
Optns{n,1}.x0 = [0.06 0.08 0.015 0.32 0.38 0.4 0.021 0.0148 0.2];
Optns{n,1}.up = [0.1 0.1 0.1 0.4 0.4 0.4 1 1 1];
else
Optns{n,1}.low = [0 0 0 0.2 0.2 0.2 0 0 0];
Optns{n,1}.x0 = [0.05 0.08 0.02 0.32 0.41 0.45 0.02594 0.019 0.228687584020221];
Optns{n,1}.up = [0.1 0.1 0.1 0.44 0.44 1 1 1 1];
end
%% Skew Gaussian Start Points
if n==1
Optns{n,2}.low = [0 0 0 0.2 0.2 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.531333906565674 0.32514568182056 0.105629203329022 0.351 0.4188 0.423452918962738 0.0908232857874395 0.266471490779072 0.153656717591307 0.08002804688888 0.0489764395788231 0.0445586200710899];
Optns{n,2}.up = [0.1 0.1 0.1 0.45 0.45 1 1 1 1 5 5 5];
elseif n==2
Optns{n,2}.low = [0 0 0 0.2 0.2 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.0593 0.06472 0.0136 0.3593 0.4375 0.507 0.254282178971531 0.814284826068816 0.243524968724989 0.08002804688888 0.0489764395788231 0.0445586200710899];
Optns{n,2}.up = [0.2 0.2 0.2 0.5 0.5 1 1 1 1 5 5 5];
elseif n==3
Optns{n,2}.low = [0 0 0 0.2 0.2 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.08 0.11 0.03 0.35 0.43 0.5 0.02 0.02 0.2 0.728261847822834 0.17581172827553 0.360370977042454];
Optns{n,2}.up = [0.15 0.15 0.15 0.45 0.45 1 1 1 1 5 5 5];
elseif n==4
Optns{n,2}.low = [0 0 0 0.2 0.2 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.08 0.07 0.025 0.25 0.29 0.45 0.0034 0.0207 0.3 0.189179670994735 0.142484054820971 0.268075999123376];
Optns{n,2}.up = [0.1 0.1 0.1 0.32 0.32 0.55 1 1 1 5 5 5];
elseif n==5
Optns{n,2}.low = [0 0 0 0.2 0.2 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.0819 0.0657 0.02183 0.2618 0.31 0.5019 0.0145 0.01518 0.1819 0.01006 0.02941 0.02374];
Optns{n,2}.up = [0.12 0.12 0.12 0.28 0.35 1 1 1 1];
elseif n==6
Optns{n,2}.low = [0 0 0 0.2 0.3 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.08 0.1 0.002 0.25 0.31 0.5 0.005 0.005 0.2 0.1361 0.869292207640089 0.57970458736557];
Optns{n,2}.up = [0.15 0.15 0.15 0.28 0.325 0.65 0.1 0.1 1 5 5 5];
elseif n==7
Optns{n,2}.low = [0.03 0.03 0 0.22 0.22 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.06421 0.0419 0.02508 0.261 0.2874 0.45 0.01 0.01 0.2056 0.6357 0.9509 0.44396415501881];
Optns{n,2}.up = [0.1 0.1 0.1 0.315 0.315 1 1 1 1 5 5 5];
elseif n==8
Optns{n,2}.low = [0 0 0 0.2 0.2 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.06606 0.0839 0.033 0.026 0.28 0.45 0.07 0.08131 0.3833 0.617279232316449 0.575494859702814 0.530051704765016];
Optns{n,2}.up = [0.12 0.12 0.12 0.35 0.35 1 1 1 1 5 5 5];
elseif n==9
Optns{n,2}.low = [0 0 0 0.2 0.2 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.07196 0.09962 0.03545 0.26 0.28 0.5 0.04547 0.04134 0.2177 0.125654587362626 0.308914593566815 0.726104431664832];
Optns{n,2}.up = [0.2 0.2 0.2 0.32 0.32 1 1 1 1 5 5 5];
elseif n==10
Optns{n,2}.low = [0 0 0 0.2 0.2 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.074 0.0918 0.0236 0.283 0.31 0.45 0.01248 0.0306 0.2465 0.833151985669295 0.398282228218775 0.749822209360636];
Optns{n,2}.up = [0.1 0.1 0.1 0.35 0.35 0.5 1 1 1 5 5 5];
elseif n==11
Optns{n,2}.low = [0 0 0 0.2 0.2 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.052 0.12 0.04 0.26 0.32 0.45 0.0112 0.0193 0.239 0.9748 0.651349532415353 0.231237816164352];
Optns{n,2}.up = [0.15 0.15 0.15 0.35 0.35 0.5 1 1 1 5 5 5];
elseif n==12
Optns{n,2}.low = [0 0 0 0.2 0.2 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.07 0.12 0.05 0.26 0.32 0.45 0.02 0.02 0.2 0.779167230102011 0.934010684229183 0.12990620847373];
Optns{n,2}.up = [0.2 0.2 0.2 0.28 0.35 0.5 1 1 1 5 5 5];
elseif n==13
Optns{n,2}.low = [0 0 0 0.2 0.2 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.0646 0.082 0.015 0.32 0.38 0.4 0.02 0.011 0.2 0.2586 0.897865684840299 0.593361860386109];
Optns{n,2}.up = [0.1 0.1 0.1 0.4 0.4 1 1 1 1 5 5 5];
else
Optns{n,2}.low = [0 0 0 0.2 0.2 0.2 0 0 0 -5 -5 -5];
Optns{n,2}.x0 = [0.05 0.08 0.02 0.33 0.41 0.45 0.0201 0.018 0.2977 0.908052203186769 0.108016694136759 0.516996758096945];
Optns{n,2}.up = [0.1 0.1 0.1 0.44 0.44 1 1 1 1 5 5 5];
end
%% Weibull fits Start Points
if n==1
Optns{n,3}.low = [0 0 0 1 1 1 0.2 0.2 0.2];
Optns{n,3}.x0 = [0.0542 0.04771 0.0128 1.1 1.1 1.1 0.34 0.41 0.5069];
Optns{n,3}.up = [0.1 0.1 0.1 50 50 50 0.45 0.45 1];
elseif n==2
Optns{n,3}.low = [0 0 0 1 1 1 0.2 0.2 0.2];
Optns{n,3}.x0 = [0.0567 0.05219 0.02358 1.1 1.1 1.1 0.3754 0.4185 0.5121];
Optns{n,3}.up = [0.15 0.15 0.15 50 50 50 0.5 0.5 1];
elseif n==3
Optns{n,3}.low = [0.002 0.002 0 1 1 1 0.2 0.2 0.2];
Optns{n,3}.x0 = [0.07 0.08 0.03 11 11 2 0.35 0.42 0.5];
Optns{n,3}.up = [0.15 0.15 0.15 50 50 50 0.47 0.47 1];
elseif n==4
Optns{n,3}.low = [0 0 0 1 1 1 0.2 0.2 0.2];
Optns{n,3}.x0 = [0.07 0.06 0.02 11 11 2 0.25 0.29 0.45];
Optns{n,3}.up = [0.1 0.1 0.1 50 50 50 0.32 0.32 0.5];
elseif n==5
Optns{n,3}.low = [0 0 0 1 1 1 0.2 0.2 0.2];
Optns{n,3}.x0 = [0.0885274596747204 0.07984 0.0243 11 11 1.1 0.26 0.31 0.51];
Optns{n,3}.up = [0.2 0.2 0.2 50 50 50 0.28 0.35 1];
elseif n==6
Optns{n,3}.low = [0 0 0 1 1 1 0.2 0.3 0.2];
Optns{n,3}.x0 = [0.01233 0.01839 0.024 15 15 2 0.25 0.31 0.489252638400019];
Optns{n,3}.up = [1 1 1 50 50 50 0.27 0.325 0.65];
elseif n==7
Optns{n,3}.low = [0.002 0.002 0 1 1 1 0.22 0.22 0.35];
Optns{n,3}.x0 = [0.003 0.00421 0.00561 11 11 2 0.24 0.26 0.45];
Optns{n,3}.up = [0.1 0.1 0.1 50 50 50 0.3 0.3 0.5];
elseif n==8
Optns{n,3}.low = [0 0 0 1 1 1 0.2 0.2 0.2];
Optns{n,3}.x0 = [0.08021 0.09891 0.0369 11 11 2 0.26 0.28 0.45];
Optns{n,3}.up = [0.12 0.12 0.12 50 50 50 0.35 0.35 1];
elseif n==9
Optns{n,3}.low = [0 0 0 1 1 1 0.2 0.2 0.2];
Optns{n,3}.x0 = [0.07295 0.063 0.02691 2 2 1.1 0.23644493264091 0.177123754498317 0.829643385697585];
Optns{n,3}.up = [0.2 0.2 0.2 50 50 50 0.32 0.32 1];
elseif n==10
Optns{n,3}.low = [0 0 0 1 1 1 0.2 0.2 0.2];
Optns{n,3}.x0 = [0.08139 0.04923 0.037 11 11 1.1 0.28 0.32 0.47];
Optns{n,3}.up = [0.1 0.1 0.1 50 50 50 0.35 0.35 0.5];
elseif n==11
Optns{n,3}.low = [0 0 0 1 1 1 0.2 0.2 0.2];
Optns{n,3}.x0 = [0.043 0.093 0.04 11 11 2 0.26 0.32 0.45];
Optns{n,3}.up = [0.15 0.15 0.15 50 50 50 1 1 0.5];
elseif n==12
Optns{n,3}.low = [0 0 0 1 1 1 0.2 0.2 0.2];
Optns{n,3}.x0 = [0.06991 0.08909 0.009593 11 20 2 0.27 0.32 0.45];
Optns{n,3}.up = [0.2 0.2 0.2 50 50 50 0.28 0.35 0.5];
elseif n==13
Optns{n,3}.low = [0 0 0 1 1 1 0.28 0.35 0.2];
Optns{n,3}.x0 = [0.188955015032545 0.686775433365315 0.18351115573727 11 11 2 0.32 0.38 0.45];
Optns{n,3}.up = [Inf Inf Inf 50 50 50 0.35 0.4 1];
else
Optns{n,3}.low = [0 0 0 1 1 1 0.2 0.2 0.2];
Optns{n,3}.x0 = [0.05 0.08 0.0256 11 11 2 0.32 0.41 0.45];
Optns{n,3}.up = [0.1 0.1 0.1 50 50 50 0.44 0.44 1];
end
end
clear n