|
89 | 89 | [s, dsdx(k)] = sigm(aTheta(k, 2), sig);
|
90 | 90 | aTheta(k, 2) = s + sigma_offset;
|
91 | 91 | aTheta(k, 3) = exp(aTheta(k, 3));
|
92 |
| - end; |
| 92 | + end |
93 | 93 | if any(isinf(aTheta(:, 3)))
|
94 | 94 | aTheta(isinf(aTheta(:, 3)), 3) = 1e200; % an arbitrary value way below realmax
|
95 |
| - end; |
| 95 | + end |
96 | 96 | clear sig m s
|
97 | 97 | else
|
98 | 98 | aTheta = [];
|
99 | 99 | aSCR_s = 5;
|
100 |
| -end; |
| 100 | +end |
101 | 101 |
|
102 | 102 | % - event-related responses
|
103 | 103 | if ut(3) > 0
|
|
109 | 109 | eTheta(:, 3) = exp(Theta((Theta_n + 3 * ut(2)) + (1:ut(3))));
|
110 | 110 | if any(isinf(eTheta(:, 3)))
|
111 | 111 | eTheta(isinf(eTheta(:, 3)), 3) = 1e200;
|
112 |
| - end; |
| 112 | + end |
113 | 113 | else
|
114 | 114 | eTheta = [];
|
115 | 115 | eSCR_o = aSCR_s(end);
|
116 |
| -end; |
| 116 | +end |
117 | 117 |
|
118 | 118 | % - spontaneous fluctuations
|
119 | 119 | if ut(4) > 0
|
|
125 | 125 | sig.G0 = ut(SF_ub(k)) - ut(SF_lb(k));
|
126 | 126 | [t, dtdx(k)] = sigm(Theta(Theta_n + 3 * ut(2) + ut(3) + (k - 1) * 2 + 1), sig);
|
127 | 127 | sfTheta(k, 1) = ut(SF_lb(k)) + t; % lower bound plus parameter vaue
|
128 |
| - end; |
| 128 | + end |
129 | 129 | sfTheta(:, 2) = sigma;
|
130 | 130 | sfTheta(:, 3) = exp(Theta((Theta_n + 3 * ut(2) + ut(3)) + (2:2:(2 * ut(4)))));
|
131 | 131 | else
|
132 | 132 | sfTheta = [];
|
133 | 133 | SF_ub = eSCR_o;
|
134 |
| -end; |
| 134 | +end |
135 | 135 |
|
136 | 136 | % - SCL changes
|
137 | 137 | if ut(5) > 0
|
|
143 | 143 | sig.G0 = ut(SCL_ub(k)) - ut(SCL_lb(k));
|
144 | 144 | [t, dtscldx(k)] = sigm(Theta(Theta_n + 3 * ut(2) + ut(3) + 2 * ut(4) + (k - 1) * 2 + 1), sig);
|
145 | 145 | SCLtheta(k, 1) = ut(SCL_lb(k)) + t; % lower bound plus parameter vaue
|
146 |
| - end; |
| 146 | + end |
147 | 147 | SCLtheta(:, 2) = sigma_SCL;
|
148 | 148 | SCLtheta(:, 3) = Theta((Theta_n + 3 * ut(2) + ut(3)) + 2 * ut(4) + (2:2:(2 * ut(5))));
|
149 | 149 | else
|
150 | 150 | SCLtheta = [];
|
151 |
| -end; |
| 151 | +end |
152 | 152 |
|
153 | 153 | % ODE
|
154 | 154 | % ------------------------------------------------------------------------
|
|
190 | 190 | Jp(3, 7 + (1:3:(3 * ut(2)))) = gu(ut(1), aTheta, 0) .* (ut(1) - aTheta(:, 1)) .* (aTheta(:, 2)).^-2 .* dmdx;
|
191 | 191 | Jp(3, 7 + (2:3:(3 * ut(2)))) = gu(ut(1), aTheta, 0) .* (ut(1) - aTheta(:, 1)).^2 .* (aTheta(:, 2)).^-3 .* dsdx;
|
192 | 192 | Jp(3, 7 + (3:3:(3 * ut(2)))) = gu(ut(1), aTheta, 0);
|
193 |
| - end; |
| 193 | + end |
194 | 194 |
|
195 | 195 | if ~isempty(eTheta)
|
196 | 196 | Jp(3, (7 + 3 * ut(2)) + (1:ut(3))) = gu(ut(1), eTheta, 0);
|
197 |
| -end; |
| 197 | +end |
198 | 198 |
|
199 | 199 | if ~(isempty(eTheta) && isempty(aTheta))
|
200 | 200 | allTheta = [eTheta; aTheta];
|
201 | 201 | Jp(3, 4) = sum(gu(ut(1), allTheta, 0) .* 1./(allTheta(:, 2).^2) .* (ut(1) - allTheta(:, 1)) .* exp(Theta(4)));
|
202 |
| -end; |
| 202 | +end |
203 | 203 |
|
204 | 204 | if ~isempty(sfTheta)
|
205 | 205 | Jp(6, (7 + 3 * ut(2) + ut(3)) + (1:2:(2 * ut(4)))) = gu(ut(1), sfTheta, 0) .* (ut(1) - sfTheta(:, 1)) .* sfTheta(:, 2).^-2 .* dtdx;
|
206 | 206 | Jp(6, (7 + 3 * ut(2) + ut(3)) + (2:2:(2 * ut(4)))) = gu(ut(1), sfTheta, 0);
|
207 |
| -end; |
| 207 | +end |
208 | 208 |
|
209 | 209 | if ~isempty(SCLtheta)
|
210 | 210 | Jp(7, (7 + 3 * ut(2) + ut(3)) + 2 * ut(4) + (1:2:(2 * ut(5)))) = gu(ut(1), SCLtheta, 0) .* 1./(sigma_SCL.^2) .* (ut(1) - SCLtheta(:, 1)) .* dtscldx;
|
211 | 211 | SCLtheta(:, 3) = 1; % we don't take the exp(amp) here, so dSCLdamp = gu for unit amplitude
|
212 | 212 | Jp(7, (7 + 3 * ut(2) + ut(3)) + 2 * ut(4) + (2:2:(2 * ut(5)))) = gu(ut(1), SCLtheta, 0);
|
213 |
| -end; |
| 213 | +end |
214 | 214 |
|
215 | 215 | dfdP = dt .* Jp';
|
216 | 216 |
|
217 |
| -if any(isweird(fx(:))), error('Weird values in f_SCR'); end; |
218 |
| -if any(isweird(dfdx(:))), error('Weird values in f_SCR'); end; |
219 |
| -if any(isweird(dfdP(:))), error('Weird values in f_SCR'); end; |
| 217 | +if any(isweird(fx(:))), error('Weird values in f_SCR'); end |
| 218 | +if any(isweird(dfdx(:))), error('Weird values in f_SCR'); end |
| 219 | +if any(isweird(dfdP(:))), error('Weird values in f_SCR'); end |
220 | 220 |
|
221 | 221 |
|
222 | 222 | return;
|
|
237 | 237 | gu = a .* exp(-(ut - mu).^2 ./ (2 .* sigma.^2));
|
238 | 238 | if f
|
239 | 239 | gu = sum(gu);
|
240 |
| - end; |
| 240 | + end |
241 | 241 | else
|
242 | 242 | gu = 0;
|
243 |
| -end; |
| 243 | +end |
244 | 244 | return;
|
245 | 245 |
|
246 | 246 | % =========================================================================
|
|
0 commit comments