SuanShu, a Java numerical and statistical library

com.numericalmethod.suanshu.analysis.integration.univariate.riemann.substitution

Class PowerLawSingularity

• java.lang.Object
• com.numericalmethod.suanshu.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 and Description
static class  PowerLawSingularity.PowerLawSingularityType
the type of end point divergence
• Constructor Summary

Constructors
Constructor and Description
PowerLawSingularity(PowerLawSingularity.PowerLawSingularityType type, double gamma, double a, double b)
Construct a PowerLawSingularity substitution rule.
• Method Summary

All Methods
Modifier and Type Method and Description
UnivariateRealFunction dx()
the first order derivative of the transformation: x'(t) = dx(t)/dt
double ta()
Get the lower limit of the integral.
double tb()
Get the upper limit of the integral.
UnivariateRealFunction x()
the transformation: x(t)
• Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• Constructor Detail

• PowerLawSingularity

public PowerLawSingularity(PowerLawSingularity.PowerLawSingularityType type,
double gamma,
double a,
double b)
Construct a PowerLawSingularity substitution rule.
Parameters:
type - the type of end point divergence
gamma - the exponential
a - the lower limit
b - the upper limit
• Method Detail

• x

public UnivariateRealFunction x()
Description copied from interface: SubstitutionRule
the transformation: x(t)
Specified by:
x in interface SubstitutionRule
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 interface SubstitutionRule
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 interface SubstitutionRule
Returns:
the lower limit
• tb

public double tb()
Description copied from interface: SubstitutionRule
Get the upper limit of the integral.
Specified by:
tb in interface SubstitutionRule
Returns:
the upper limit