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 classPowerLawSingularity.PowerLawSingularityTypethe type of end point divergence
-
Constructor Summary
Constructors Constructor Description PowerLawSingularity(PowerLawSingularity.PowerLawSingularityType type, double gamma, double a, double b)Construct aPowerLawSingularitysubstitution rule.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description UnivariateRealFunctiondx()the first order derivative of the transformation: x'(t) = dx(t)/dtdoubleta()Get the lower limit of the integral.doubletb()Get the upper limit of the integral.UnivariateRealFunctionx()the transformation: x(t)
-
-
-
Constructor Detail
-
PowerLawSingularity
public PowerLawSingularity(PowerLawSingularity.PowerLawSingularityType type, double gamma, double a, double b)
Construct aPowerLawSingularitysubstitution 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:SubstitutionRulethe transformation: x(t)- Specified by:
xin interfaceSubstitutionRule- Returns:
- x(t)
-
dx
public UnivariateRealFunction dx()
Description copied from interface:SubstitutionRulethe first order derivative of the transformation: x'(t) = dx(t)/dt- Specified by:
dxin interfaceSubstitutionRule- Returns:
- x'(t) = dx(t)/dt
-
ta
public double ta()
Description copied from interface:SubstitutionRuleGet the lower limit of the integral.- Specified by:
tain interfaceSubstitutionRule- Returns:
- the lower limit
-
tb
public double tb()
Description copied from interface:SubstitutionRuleGet the upper limit of the integral.- Specified by:
tbin interfaceSubstitutionRule- Returns:
- the upper limit
-
-