The problem is basic utility maximization subject to a budget constraint with $$u(x,y) = min\{x+y,4\sqrt{x},4\sqrt{y}\}$$ $$p_x = 1, p_y = 1, M = 4$$

I will have to first plot the Indifference Curves.

I am able to figure out the following:

If $x < y: u(x,y) = min\{x+y, 4\sqrt x\}$,
else $u(x,y) = min\{x+y, 4\sqrt y\}$.

But I get stuck here. For ex: if I am in the region where $x<y$, I can't find the sub-region where $x+y < 4 \sqrt x$ or $x+y > 4 \sqrt x$.


  • $\begingroup$ Why can't you find the subregion? Seems like the straightforward solution of a second degree polinomial to me. $$x^2 + x(2y -16) +y^2<0$$. $\endgroup$
    – Giskard
    Mar 11, 2019 at 10:24
  • $\begingroup$ Giskard, thanks. But you see, I can't plot that on an x-y plane. Or can't solve for x,y either. $\endgroup$
    – Vizag
    Mar 11, 2019 at 10:59
  • 1
    $\begingroup$ How come you cannot solve it? Keeping $y$ constant it is a second degree polinomial. Could you solve $$x^2 + x(constant_1) + constant _2$$? $\endgroup$
    – Giskard
    Mar 11, 2019 at 11:06

1 Answer 1


enter image description here Above is a plot of the indifference curves for $U=1,2,...,8$ and also for $U=8.5$ that I made in MATLAB. For $P_x=P_y=1$ and $m=4$, the budget constraint is simply the the line $y=4-x$ (not pictured here, but easy to visualize).

Notice this budget constraint overlaps the $U=4$ indifference curve (fourth contour from the origin) on the line segment connecting $(1,3)$ and $(3,1)$. Any other point on the budget line would yield $U<4$, hence consuming on the line segment connecting $(1,3)$ and $(3,1)$ is optimal. But since all of these bundles correspond to $U=4$, the optimal bundle is not unique, but could be any bundle on this line segment.

Here is the MATLAB code that generated the plot:

for i=1:60;
    for j=1:60
        u(i,j)=min([(i+j)/10 4*sqrt(i/10) 4*sqrt(j/10)]);
contour(u,[1 2 3 4 5 6 7 8 8.5]);
ylabel('Good Y')
xlabel('Good X')
grid on
grid minor
xt = get(gca, 'XTick');                                 % 'XTick' Values
set(gca, 'XTick', xt, 'XTickLabel', xt/10) 
yt = get(gca, 'YTick');                                 % 'XTick' Values
set(gca, 'YTick', yt, 'YTickLabel', yt/10) 

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.