IntegralEqnSolver.nb

IntegralEqnSolver[lowlim_, uplim_, stepsize_, var1_, var2_, 
        
kernelfunc_, integrand_, iterno_] := 
      
Module[{     pointno, 
          
simpvals, kernelfunc1, 
          
kernelmat1, singlesig, store}, 
        
     
        pointno = (uplim - lowlim)/stepsize  + 1; 
        
simpvals = 
          N[Join[{1}, 
                
Drop[
                  Flatten[Table[{4, 2}, {(pointno - 1)/2}]], -1], {
                  1}]*stepsize/3]; 
        

kernelfunc1  =  
          Compile[{var1, var2}, kernelfunc[var1, var2]]; 
        
kernelmat1 = 
          Table[kernelfunc1[var2, var1], 
            
{var1, lowlim, uplim, stepsize}, {y, lowlim, 
              uplim, stepsize}]; 
        
kernelmat1 = 
          Map[Times[simpvals, #]&,  kernelmat1]; 
        
singlesig = 
          Table[1.0, {i, lowlim, uplim, stepsize}]; 
        
store = {}; 
        
Do[
          singlesig  = kernelmat1.(integrand[singlesig]); 
          
AppendTo[store, singlesig];    , {
            iterno}]; 
Last[store]
]

(* Kernel (K[x, y]->((2 y )/(((x^2) + (y^2)))))*)

\(TraditionalForm
    \`ϕ(x) = 
      ∫\_a\%b
          \(\( 2\ y\ \ \(ϕ(y)\)\)\/\(\((x\^2 + y\^2)\)\ 
                \((\(ϕ(y)\)\^2 + 1)\)\)\) \[DifferentialD]y\)

IntegralEqnSolver[10, 110, 10, x, y, 
      (2 #1/(#1^2  +  #2^2))&, (#/(1 + #^2))&, 200]