ECON 715, Optimization
Unconstrained Optimization
Multiproduct competitive firm
Consider a firm sells 2 different products, taking the market prices as given. The quantities of these products are
and prices
. The revenue is therefore:
The cost function is
. Declaring variables, and defining the revenue, cost and profit functions.
syms Q1 Q2 P1 P2 %Declaring symbolic variables
R = P1*Q1 + P2*Q2; %Revenue
C = 2*Q1^2 + Q1*Q2 + 2*Q2^2; %Cost function
Solving for optimal quantities:
[Q1_opt, Q2_opt] = solve(gradient(Pai,[Q1,Q2])==0, [Q1,Q2]);
display([Q1_opt;Q2_opt])
ans =
![](data:image/png;base64,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)
Substituting market prices:
Supply = subs([Q1_opt, Q2_opt], [P1,P2], [12,18])
Supply = ![](data:image/png;base64,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)
You can change the market prices, and see how quantities change:
Supply = subs([Q1_opt, Q2_opt], [P1,P2], [15,15])
Supply = ![](data:image/png;base64,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)
Multiproduct Monopoly
Consider a monopoly that sells 2 different products to two markets, with demands:
Defining the demand, revenue, cost and profit functions:
P1(Q1,Q2) = 55 - Q1 - Q2; %Demand in market 1
P2(Q1,Q2) = 70 - Q1 - 2*Q2; %Demand in market 2
R = P1*Q1 + P2*Q2; %Revenue
C = Q1^2 + Q1*Q2 + Q2^2; %Cost function
Pai = simplify(R - C); %Profit
Solving for optimal quantiies, equilibrium prices and maximal profit:
[Q1_opt, Q2_opt] = solve(gradient(Pai)==0);
P1_opt = double(P1(Q1_opt, Q2_opt));
P2_opt = double(P2(Q1_opt, Q2_opt));
Pai_opt = double(Pai(Q1_opt, Q2_opt));
Plotting the profit function:
% fsurf(Pai, [0 15 0 20] )
plot3(Q1_opt, Q2_opt, Pai_opt,'.r','MarkerSize',25) %Point of tangency - stationary point
Constrained Optimization
Utility function visualization
Plotting the graph of
, a strictly concave function. syms x y %Declaring symbolic variables
u(x,y) = x^a*y^b; %Cobb-Douglas utility function
fmesh(u, [0 10 0 10], 'ShowContours','on')
Slicing the utility function, to illustrate indifference curves.
view([56.40 23.40]) %Rotate angle
Plotting the graph of
, not concave, but strictly quisiconcave function. syms x y %Declaring symbolic variables
u(x,y) = x^a*y^b; %Cobb-Douglas utility function
fmesh(u, [0 10 0 10], 'ShowContours','on')
Slicing the utility function, to illustrate indifference curves.
view([56.40 23.40]) %Rotate angle
Notice that the level curves (indifference curves) of a strictly quisiconcave utility function have the same shape as the level curves of a strictly concave utility function, and upper contour sets are strictly convex in bot cases. Thus, strict concavity of utility fucntions is not necessary for the "right shape" of indifference curves.
Consumer's demand
Setting up the lagrange:
syms x y p_x p_y I k a %Declaring symbolic variables
u(x,y) = a*log(x) + (1-a)*log(y); %Utility function defined
L(x,y,k) = u(x,y) - k*(p_x*x + p_y*y - I); %Lagrange function defined
% k is the Lagrange multiplier
Solving for consumer demand:
[x,y,k] = solve(gradient(L,[x,y,k])==0, [x,y,k])
Substituting values of
: demand = subs([x,y],[a,p_x,p_y,I],[0.5,3,0.75,100])
demand =
![](data:image/png;base64,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)