Approximate Solution of Urysohn Integral EquationCoding sampleThis is a classic problem of automatic control: to find possible input $x(t)$ provided output $y(t)$ and kernel $U[\cdot,\cdot]$ $$y(t) = \int_{0}^T U[x(ts),s]ds. $$We do it in the most simple way possible by few lines of computer codes. First, we introduce discretization $\Delta t$ for time $t$ and quantization $\Delta x$ for argument $x$. Than the kernel $U[\cdot,\cdot]$ will turn into matrix and the continuous model into discrete$$y_i = \sum_{j=0}^m U[x_{ij},j]. $$The argument $x_{ij}$ takes integer value near corresponding continuous value by applying $round[(x(t)  x_{min}) / \Delta x]$.The best way to explain algorithm is to use elementary numeric example. Let us take matrix $U[\cdot, \cdot]$ of size $3 \cdot 3$. The small size is taken for explanation, real physical systems are at least $30 \cdot 30$. Let us take sequence of discrete and quantized input values $x_1, x_2, x_3, x_4, x_5$ and corresponding output values $y_3, y_4, y_5$. Each $y_i$ is computed by adding 3 elements of the matrix, which positions are determined by values of $x_{i}, x_{i1}, x_{i2}$. The location of the element in the matrix is defined by the values of $x$, that can be any of $0,1,2$ and, for visualization, they are placed in the row number equal to its value.
As we can see the value $x_3$ has only 3 possible positions and, when its position is changed, the values of $y_3, y_4, y_5$ are affected. So, provided any initial approximation, it is possible to select position of any element to provide the best match between several computed outputs and given ones. Technically it is straight forward component descent. When applied multiple times sequentially for entire input, it leads to a solution. The coding sample can be found on the link at the top. We have to add also that this component descent leads to one of many local minimums. It is approximate, but its accuracy might be good enough for many engineering problems. The end result depends on initial approximation. It worth to try multiple random initial approximations and to select the best. 
