Subversion Repositories OpenSees

Rev

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)