I have to solve the following equation for $x(i), 0 \leq i \leq 1$:

$$ y(i) = x(i)^{-a} \int_0^1 y(j)x(j) dj \left(\int_0^1 \mathcal A(j) x(j)^{1-a} dj\right)^{-1} \int_i^1 \left( \int_0^x x(j)^{1-a} dj \right)^\frac{a+b}{a-1} A_i^{b - 1} dx $$

where $A_i$ and $y(i)$ are known and I use the short cut

$$ \mathcal A(j) = \int_j^1 A_z^{1 - b} dz$$.

I guess there is no point in trying to solve it symbolically with Sympy. How would I go on solving this numerically using Python? Do I discretize $x(i)$ into 100 or 1000 points and hope to brute force find a solution to the system of equations? Or is there a more clever approach?

  • $\begingroup$ Where is this integral equation from? $\endgroup$ – Raziman T V Jan 18 '17 at 13:26
  • $\begingroup$ @RazimanT.V. Economics. $\endgroup$ – FooBar Jan 18 '17 at 13:27
  • $\begingroup$ My first idea would be to brute force the equation and use a numerical integration method (like simpson rule or something) and then solve using a fixed point or a secant method. $\endgroup$ – BlaB Jan 18 '17 at 13:30
  • $\begingroup$ @BlaisB Could you evaluate a bit on that? Does that mean you would not explicitely create a vector $X$, but approximate $x(i)$ using some sort of polynomial? $\endgroup$ – FooBar Jan 18 '17 at 13:37
  • $\begingroup$ What I mean is that I would discretize the interval [0 1] and [i 1] into a given amount of point (say 100, 1000, not hard). Then you could carry out all the integrations numerically instead of trying to carry out any analytical procedure. I am not sure what exactly you are trying to solve, do you want to calcul y(i) or find x(i) corresponding to a value of y(i)? $\endgroup$ – BlaB Jan 18 '17 at 14:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.