Class: LiborMarketModel

Simulate term structures for LIBOR Market Model


[ZeroRates,ForwardRates] = simTermStructs(nPeriods)
[ZeroRates,ForwardRates] = simTermStructs(nPeriods,


[ZeroRates,ForwardRates] = simTermStructs(nPeriods) simulates future zero curve paths using a specified LiborMarketModel object.

[ZeroRates,ForwardRates] = simTermStructs(nPeriods,
simulates future zero curve paths using a specified LiborMarketModel object with additional options specified by one or more Name,Value pair arguments.

Input Arguments


Number of simulation periods.

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.


Positive scalar integer number of simulated trials (sample paths) of NPERIODS observations each. If you do not specify a value for this argument, the default is 1, indicating a single path of correlated state variables.

Default: 1


Boolean scalar flag indicating whether antithetic sampling is used to generate the Gaussian random variates that drive the zero-drift, unit-variance rate Brownian vector dW(t). For details, see simBySolution.

Default: false


Direct specification of the dependent random noise process used to generate the zero-drift, unit-variance rate Brownian vector dW(t) that drives the simulation. For details, see simBySolution for the GBM model.

Default: Uses default for simBySolution. If you do not specify a value for Z, simBySolution generates Gaussian variates.


Numeric vector of maturities to compute at each time step.

Default: tenor the number of rates in the LiborMarketModel object as specified by the correlation and volatility functions

Output Arguments


nPeriods+1-by-nTenors-by-nTrials matrix of simulated zero-rate term structures.


nPeriods+1-by-nTenors-by-nTrials matrix of simulated forward-rate term structures.



To learn about attributes of methods, see Method Attributes in the MATLAB® Object-Oriented Programming documentation.


expand all

Simulate Term Structures for a LIBOR Market Model

Create a LMM object.

Settle = datenum('15-Dec-2007');
CurveTimes = [1:5 7 10 20]';
ZeroRates = [.01 .018 .024 .029 .033 .034 .035 .034]';
CurveDates = daysadd(Settle,360*CurveTimes,1);

irdc = IRDataCurve('Zero',Settle,CurveDates,ZeroRates);

LMMVolFunc = @(a,t) (a(1)*t + a(2)).*exp(-a(3)*t) + a(4);
LMMVolParams = [.3 -.02 .7 .14];

numRates = 20;
VolFunc(1:numRates-1) = {@(t) LMMVolFunc(LMMVolParams,t)};

Beta = .08;
CorrFunc = @(i,j,Beta) exp(-Beta*abs(i-j));
Correlation = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),Beta);

LMM = LiborMarketModel(irdc,VolFunc,Correlation,'Period',1)
LMM = 

  LiborMarketModel with properties:

       ZeroCurve: [1x1 IRDataCurve]
    VolFunctions: {1x19 cell}
     Correlation: [19x19 double]
      NumFactors: NaN
          Period: 1

Simulate the term structures for the specified LMM object.

[ZeroRates, ForwardRates] = simTermStructs(LMM, 20,'nTrials',100);

Related Examples

Introduced in R2013a

Was this topic helpful?