function [m, y, coal] = openrule(n,delta) % Purpose: Gives the equilibrium outcome for the open rule as % described in Baron and Ferejohn (1989), APSR, where % n (odd) is the number of players and delta is the % discount factor. % returns: m = number of member in the coalition (excluding the proposer) % y = the share to the proposer % coal = the share to the other coalition members % written by: % Guillaume R. Frechette % Ohio State University % Department of Economics % frechette.6@osu.edu if n/2==round(n/2), error('n should be odd'); end if delta<=0, error('delta should be greater than 0'); end if delta>1, error('delta should be less than or equal to 1'); end min = ( n - 1 ) / 2; max = n-1; argmax = min; maxV = 0; for m = min:max; B = 1 - ( ( 2*m - n + 2 ) / m )*( 1 - ( m / ( n - 1 ) ) )*... delta - ( ( n - m - 2 ) / m )*( 1 - ( ( m + 1 )/( n - 1 ) ) )*... ( 1 - ( m / ( n - 1 ) ) )*delta^2; gamma = ( delta / B )*( ( m / ( n - 1 ) ) +... delta*( 1 - m / ( n - 1 ) )*( ( n - m - 2 ) / m )*( 1 / ( n - 1 ) ) ); V = ( m / ( n - 1 ) ) / ( 1 + delta*( m^2 / ( n - 1 ) ) -... ( delta^2 )*( 1 - m / ( n - 1 ) )*( ( 1 / ( n - 1 ) ) +... ( 1 - ( m + 1 )/( n - 1 ) )*gamma ) ); if V > maxV argmax = m; maxV = V; end end m = argmax; y = 1 - m*delta*maxV; coal = delta*maxV;