Learn R Programming

mistral (version 1.1-0)

FORM: FORM method

Description

Calculate failure probability by FORM method and important sampling.

Usage

FORM(f, u.dep, choice.law, N.calls = 1e4, eps = 1e-7,
     Method = "HLRF", IS = FALSE, q = 0.5, copula = "unif")

Arguments

f
the failure fonction
u.dep
a vector, starting point to the research of the design point
choice.law
a list which contains the name of the densityof each input and their parameters
N.calls
Number of calls to f allowed
eps
stop criterion : distance of two points between two iterations
Method
Choice of the method to the research of the design point: "AR" for Abdo-Rackwitz and "HLRF" for Hasofer-Lindt-Rackwitz-Fiessler
IS
"TRUE" for using importance Sampling method (applied after FORM which gives the importance density). Default ="FALSE".
q
ratio of N.calls for the reserach of the design point by FORM. Default = 0.5. 1-q = the remaining ratio to use importance sampling.
copula
choice of the copula. Default = "unif" (uniform copula)

Value

  • proba.defFailure probability
  • indice.reliabreliability index
  • compt.fNumber of calls of f
  • Design.PointCoordinates of the design point
  • fact.impImportance factors
  • varianceStandard error of the probability estimator (if IS = TRUE)
  • Interval.confConfidence interval of the estimator at 0.95 (if IS = TRUE)
  • DOEList which contains the design of experiments

References

O. Ditlevsen and H.O. Madsen. Structural reliability methods, Wiley, 1996 M. Lemaire, A. Chateauneuf and J. Mitteau. Structural reliability, Wiley Online Library, 2009.

Examples

Run this code
distribution = list()
 distribution[[1]] = list("gamma",c(2,1))
 distribution[[2]] = list("gamma",c(3,1))

 func <- function(X){
    X[1]/sum(X) - qbeta((1e-5),2,3)
 }

 res.list <- FORM(func,
                  u.dep = c(0,0.1),
                  choice.law = distribution,
                  N.calls = 1000,
                  eps = 1e-7,
                  Method = "HLRF",
                  IS = "TRUE",
                  q = 0.1,
                  copula = "unif")

Run the code above in your browser using DataLab