# Solve Volterra and Fredholm integral equations

![plot generated by package](https://raw.githubusercontent.com/mwt/inteq/main/assets/volterra-example.svg)

This package estimates Volterra and Fredholm integral equations.

## Volterra

This package provides the function `SolveVolterra` which approximates the solution, g(x), to the Volterra Integral Equation of the first kind:

![f(s) = \int_0^s K(s,y) g(y) dy](https://raw.githubusercontent.com/mwt/inteq/main/assets/volterra-equation.svg)

using the method in [Betto and Thomas (2021)](https://mattwthomas.com/papers/asymmetric-all-pay-contests-with-spillovers/).

### Parameters

```
k : function
    The kernel function that takes two arguments.
f : function
    The left hand side (free) function that takes one argument.
b : float
    Upper bound of the estimate, defaults to 1.
num : int
    Number of estimation points between zero and `b`.
```

### Returns

```
grid : 2-D array
    Input values are in the first row and output values are in the second row.
```

## Fredholm

This package provides the function `SolveFredholm` which approximates the solution, g(x), to the Fredholm Integral Equation of the first kind:

![f(s) = \int_0^b K(s,y) g(y) dy](https://raw.githubusercontent.com/mwt/inteq/main/assets/fredholm-equation.svg)

using the method described in [Twomey (1963)](https://doi.org/10.1145/321150.321157). It will return a smooth curve that is an approximate solution. However, it may not be a good approximate to the true solution.

### Parameters

```
k : function
    The kernel function that takes two arguments.
f : function 
    The left hand side (free) function that takes one argument.
a : float
    Lower bound of the of the Fredholm definite integral, defaults to -1.
b : float
    Upper bound of the of the Fredholm definite integral, defaults to 1.
num : int
    Number of estimation points between zero and `b`.
```

### Returns

```
grid : 2-D array
    Input values are in the first row and output values are in the second row.
```
