Rev 4770 | Rev 4885 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4770 | Rev 4879 | ||
|---|---|---|---|
| Line 131... | Line 131... | ||
| 131 | 131 | ||
| 132 | double
|
132 | double
|
| 133 | GumbelRV::getInverseCDFvalue(double probValue) |
133 | GumbelRV::getInverseCDFvalue(double probValue) |
| 134 | {
|
134 | {
|
| 135 | return (alpha*u - log(-log(probValue))) / alpha; |
135 | return (alpha*u - log(-log(probValue))) / alpha; |
| - | 136 | }
|
|
| - | 137 | ||
| - | 138 | ||
| - | 139 | double
|
|
| - | 140 | GumbelRV::getCDFMeanSensitivity(void) |
|
| - | 141 | {
|
|
| - | 142 | // returns dF/dmu
|
|
| - | 143 | Vector dFdP(2); |
|
| - | 144 | Vector dPdmu(2); |
|
| - | 145 | getCDFparameterSensitivity(dFdP); |
|
| - | 146 | getParameterMeanSensitivity(dPdmu); |
|
| - | 147 | ||
| - | 148 | return dFdP^dPdmu; |
|
| - | 149 | }
|
|
| - | 150 | ||
| - | 151 | ||
| - | 152 | double
|
|
| - | 153 | GumbelRV::getCDFStdvSensitivity(void) |
|
| - | 154 | {
|
|
| - | 155 | // returns dF/dsigma
|
|
| - | 156 | Vector dFdP(2); |
|
| - | 157 | Vector dPdsig(2); |
|
| - | 158 | getCDFparameterSensitivity(dFdP); |
|
| - | 159 | getParameterStdvSensitivity(dPdsig); |
|
| - | 160 | ||
| - | 161 | return dFdP^dPdsig; |
|
| - | 162 | }
|
|
| - | 163 | ||
| - | 164 | ||
| - | 165 | int
|
|
| - | 166 | GumbelRV::getCDFparameterSensitivity(Vector &dFdP) |
|
| - | 167 | {
|
|
| - | 168 | // returns gradient of F(x) with respect to distribution parameters
|
|
| - | 169 | double rvValue = this->getCurrentValue(); |
|
| - | 170 | ||
| - | 171 | // dFdu
|
|
| - | 172 | dFdP(0) = -1 * getPDFvalue(rvValue); |
|
| - | 173 | ||
| - | 174 | // dFdalpha
|
|
| - | 175 | dFdP(1) = -(u-rvValue)/alpha * getPDFvalue(rvValue); |
|
| - | 176 | ||
| - | 177 | return 0; |
|
| - | 178 | }
|
|
| - | 179 | ||
| - | 180 | ||
| - | 181 | int
|
|
| - | 182 | GumbelRV::getParameterMeanSensitivity(Vector &dPdmu) |
|
| - | 183 | {
|
|
| - | 184 | // returns gradient of distribution parameters with respect to the mean
|
|
| - | 185 | ||
| - | 186 | // dudmu
|
|
| - | 187 | dPdmu(0) = 1; |
|
| - | 188 | ||
| - | 189 | // dalphadmu
|
|
| - | 190 | dPdmu(1) = 0; |
|
| - | 191 | ||
| - | 192 | return 0; |
|
| - | 193 | }
|
|
| - | 194 | ||
| - | 195 | ||
| - | 196 | int
|
|
| - | 197 | GumbelRV::getParameterStdvSensitivity(Vector &dPdstdv) |
|
| - | 198 | {
|
|
| - | 199 | // returns gradient of distribution parameters with respect to the stdv
|
|
| - | 200 | double sig = getStdv(); |
|
| - | 201 | ||
| - | 202 | // dudsig
|
|
| - | 203 | dPdstdv(0) = -sqrt(6)/pi*euler; |
|
| - | 204 | ||
| - | 205 | // dalphadsig
|
|
| - | 206 | dPdstdv(1) = -pi/sqrt(6)/sig/sig; |
|
| - | 207 | ||
| - | 208 | return 0; |
|
| 136 | }
|
209 | }
|
| 137 | 210 | ||
| 138 | 211 | ||
| 139 | void
|
212 | void
|
| 140 | GumbelRV::Print(OPS_Stream &s, int flag) |
213 | GumbelRV::Print(OPS_Stream &s, int flag) |