This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Class: LiborMarketModel

Simulate term structures for LIBOR Market Model


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


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

[ZeroRates,ForwardRates] = simTermStructs(nPeriods,Name,Value) 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.

Tenor enables you to choose a different set of rates to output than the underlying rates. For example, the you may want to simulate quarterly data but only report annual rates; this can be done by specifying the optional input Tenor.

Default: tenor is the number of rates in the LiborMarketModel object as specified by the Correlation and VolFunc input arguments for the LiborMarketModel object.

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 (MATLAB).


expand all

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: [1×1 IRDataCurve]
    VolFunctions: {1×19 cell}
     Correlation: [19×19 double]
      NumFactors: NaN
          Period: 1

Simulate the term structures for the specified LMM object.

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

Introduced in R2013a

Was this topic helpful?