Class PowerLawSingularity
- java.lang.Object
-
- dev.nm.analysis.integration.univariate.riemann.substitution.PowerLawSingularity
-
- All Implemented Interfaces:
SubstitutionRule
public class PowerLawSingularity extends Object implements SubstitutionRule
This transformation is good for an integral which diverges at one of the end points. For singularity at the lower limit, we have \((x-a)^{-\gamma}\) diverging near \(x = a\), \(0 \leq \gamma < 1\). The substitution rule is \[ \int_{a}^{b}f(x)dx = \int_{0}^{(b-a)^{1-\gamma}}\frac{t^{\frac{\gamma}{1-\gamma}}f(t^\frac{1}{1-\gamma}+a)}{1-\gamma}dt, b > a \] For singularity at the upper limit, we have \((x-b)^{-\gamma}\) diverging near \(x = b\), \(0 \leq \gamma < 1\). \[ \int_{a}^{b}f(x)dx = \int_{0}^{(b-a)^{1-\gamma}}\frac{t^{\frac{\gamma}{1-\gamma}}f(b-t^\frac{1}{1-\gamma})}{1-\gamma}dt, b > a \] A common case is when \(\gamma = 0.5\).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PowerLawSingularity.PowerLawSingularityType
the type of end point divergence
-
Constructor Summary
Constructors Constructor Description PowerLawSingularity(PowerLawSingularity.PowerLawSingularityType type, double gamma, double a, double b)
Construct aPowerLawSingularity
substitution rule.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description UnivariateRealFunction
dx()
the first order derivative of the transformation: x'(t) = dx(t)/dtdouble
ta()
Get the lower limit of the integral.double
tb()
Get the upper limit of the integral.UnivariateRealFunction
x()
the transformation: x(t)
-
-
-
Constructor Detail
-
PowerLawSingularity
public PowerLawSingularity(PowerLawSingularity.PowerLawSingularityType type, double gamma, double a, double b)
Construct aPowerLawSingularity
substitution rule.- Parameters:
type
- the type of end point divergencegamma
- the exponentiala
- the lower limitb
- the upper limit
-
-
Method Detail
-
x
public UnivariateRealFunction x()
Description copied from interface:SubstitutionRule
the transformation: x(t)- Specified by:
x
in interfaceSubstitutionRule
- Returns:
- x(t)
-
dx
public UnivariateRealFunction dx()
Description copied from interface:SubstitutionRule
the first order derivative of the transformation: x'(t) = dx(t)/dt- Specified by:
dx
in interfaceSubstitutionRule
- Returns:
- x'(t) = dx(t)/dt
-
ta
public double ta()
Description copied from interface:SubstitutionRule
Get the lower limit of the integral.- Specified by:
ta
in interfaceSubstitutionRule
- Returns:
- the lower limit
-
tb
public double tb()
Description copied from interface:SubstitutionRule
Get the upper limit of the integral.- Specified by:
tb
in interfaceSubstitutionRule
- Returns:
- the upper limit
-
-