文档库 最新最全的文档下载
当前位置:文档库 › 公平的席位分配(MATLAB程序)

公平的席位分配(MATLAB程序)

公平的席位分配(MATLAB程序)
公平的席位分配(MATLAB程序)

席位分配问题的MATLAB程序

说明:

1.本程序用三种方法,分别是惯例法、d’honht分配法和Q值法。

2.可以模拟出任意一种分配情况,即可以推广到N种情形。

3.三种分配方案供你选择,相互比较。

4.请务必阅读注意事项。

注意:

1.以下包含两个程序,下载完后把程序拷贝到matlab的M文件中,

2.第一个程序可以任意命名,只要符合规范就可以(本人以”xiweifenpei”命名,

这样便于查看),第二个程序一定要命名为“xiwei”,因为程序中要用到函数。

3.下载完后先把程序拷贝到txt文件中,再从txt拷贝到M文件中,这样可以避免乱

码。

程序一:

clear all

clc

disp('席位分配:')

P=1000

p=[235 333 432]

N=10

[x,y]=size(p);

zu=x*y;

disp('惯例分配方法:')

for i = 1:zu

n(i) =p(i)*N/P;

end

n;

m=n-fix(n);

for i=1:zu

if n(i)==max(m)+fix(n(i))

n(i)=fix(n(i))+1;

else

n(i)=fix(n(i));

end

end

disp('惯例分配人数:')

n

disp('d’honht方法:')

pp=[];

for i=1:N

pi=p/i;

pp=[pp; pi];

end

pp

m=zeros(1,zu);

for i=1:N

[x,y]=find(pp==max(pp(:)));

pp(x,y)=0;

m(y)=m(y)+1;

end

pp

disp('d’honht分配人数:')

m

disp('Q值法分配方法:')

q=ones(1,zu);

Q=[];

p;

for i=1:zu

Q(i)=p(i)*p(i)/(q(i)*(q(i)+1));

end

Q;

xiwei(p,q,Q,N,zu)

程序二:

再次提醒,以“xiwei”为文件名保存,function xiwei(p,q,Q,N,zu)

if sum(q)==N

disp('Q值法分配人数:')

q

return;

else

for i=1:zu

if Q(i)==max(Q)

q(i)=q(i)+1;

Q(i)=p(i)*p(i)/(q(i)*(q(i)+1));

break;

end

end

end

xiwei(p,q,Q,N,zu)

matlab实验十七__牛顿迭代法(可打印修改)

实验十七牛顿迭代法 【实验目的】 1.了解牛顿迭代法的基本概念。 2.了解牛顿迭代法的收敛性和收敛速度。 3.学习、掌握MATLAB软件的有关命令。 【实验内容】 用牛顿迭代法求方程的近似根,误差不超过。 3210 ++-=3 10- x x x 【实验准备】 1.牛顿迭代法原理 2.牛顿迭代法的几何解析 3.牛顿迭代法的收敛性 4.牛顿迭代法的收敛速度 5.迭代过程的加速 6.迭代的MATLAB命令 MATLAB中主要用for,while等控制流命令实现迭代。 【实验重点】 1.牛顿迭代法的算法实现 2.牛顿迭代法收敛性和收敛速度 【实验难点】 1.牛顿迭代法收敛性和收敛速度 【实验方法与步骤】 练习1用牛顿迭代法求方程在x=0.5附近的近似 3210 ++-= x x x

根,误差不超过。 310-牛顿迭代法的迭代函数为 322()1()()321 f x x x x g x x x f x x x ++-=-=-'++相应的MATLAB 代码为 >>clear; >>x=0.5; >>for i=1:3 >>x=x-(x^3+x^2+x-1)/(3*x^2+2*x+1) >>end 可算的迭代数列的前3项0.5455,0.5437,0.5437。经三次迭代,就大大超过了精度要求。 练习2 用牛顿迭代法求方程的近似正实根,由此建2(0)x a a =>立一种求平方根的计算方法。 由计算可知,迭代格式为,在实验12的练习4中1()()2a g x x x =+已经进行了讨论。 【练习与思考】 1.用牛顿迭代法求方程的近似根。 ln 1x x =2.为求出方程的根,在区间[1,2]内使用迭代函数进行310x x --=迭代,纪录迭代数据,问迭代是否收敛?对迭代进行加速,对比加速前的数据,比较加速效果。 3.使用在不动点的泰勒公式,证明牛顿迭代法收敛原理。*x

公平的席位分配论文

题目:公平的席位分配问题 摘要 数学问题中离不开分配问题,下面我就以公平的席位分配问题进行分析。在以下的分析中,我会先按照比例的分配方法分配,再按照比例家惯例的方法进行分配,表示不公平的席位分配,最后我们利用Q值法对题目进行重新分配,以Q 值的特性使得对其席位的分配更加公平。比例法是我们生活中必不可少的分配方法,但是在有的时候使用Q值法会得到更加的公平分配。 关键词:席位分配比例法比例加惯例 Q值法 一、问题的重述与分析 1.1 问题的重述 某学校有3个系学生共200名,其中甲系100名,乙系60名,丙系40名,若学生代表会议设20个席位,公平而又简单的席位分配办法是按学生人数的比例分配,三个系分别为10,6,4个席位。现因学生转系,三系人数分别为103,63,34名,问20席如何分配。若增加为21席,又如何分配。 1.2 问题的分析 本题讲将有200名学生,甲103、乙63、丙34,现有20个或21个席位,那我们应该怎么来分配呢?看到这个题,首先想到的是用比例加惯例法,得出:20个席位,三系仍分别占有10,6,4个席位;21个席位,三系分别占有11,7,3个席位。显然这个结果对丙不太公平,因为总席位增加1席,而丙系却由4席减为3席,最后通过比较,还是Q值法分配相对公平。 二、符号设定

1、各系的人数:p i(i=1,2,3……) 2、各系分配到的席位数:n i(i=1,2,3……) 3、各系不公平程度的指标:r i(i=1,2,3……) 4、各系Q值:Q i (1,2,3……) 三、模型的建立与求解 3.1 比例加惯例分配 如下表 分配的席位取整数, 20席位时,甲、乙、丙系分到的席位数分别为10,6,4;可 是总席位增加1个席位时,丙系却由4席减为3席,这显然对丙席不公平。所以按照各系人数所占比例大小分配,有的时候是不公平的。 不妨设A、B方人数分别为p 1、p 2 ,席位分别为n1、n2 当p 1 /n1=p2/n2时,分配公平 当p 1 /n1>p2/n2时,对A不公平 p 1 /n1-p2/n2~对A的绝对不公平度 如:p 1 =150,n1=10,p1/n1=15 p1=1050,n1=10,p1/n1=105 p 2 =100,n2=10,p2/n2=10 p2=1000,n2=10,p2/n2=100

MATLAB代码 解线性方程组的迭代法

解线性方程组的迭代法 1.rs里查森迭代法求线性方程组Ax=b的解 function[x,n]=rs(A,b,x0,eps,M) if(nargin==3) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值elseif(nargin==4) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1; %迭代过程 while(tol>eps) x=(I-A)*x0+b; n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x; if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 2.crs里查森参数迭代法求线性方程组Ax=b的解 function[x,n]=crs(A,b,x0,w,eps,M) if(nargin==4) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值 elseif(nargin==5) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1; %迭代过程 while(tol>eps) x=(I-w*A)*x0+w*b; n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x;

if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 3.grs里查森迭代法求线性方程组Ax=b的解 function[x,n]=grs(A,b,x0,W,eps,M) if(nargin==4) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值 elseif(nargin==5) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1;%前后两次迭代结果误差 %迭代过程 while(tol>eps) x=(I-W*A)*x0+W*b;%迭代公式 n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x; if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 4.jacobi雅可比迭代法求线性方程组Ax=b的解 function[x,n]=jacobi(A,b,x0,eps,varargin) if nargin==3 eps=1.0e-6; M=200; elseif nargin<3 error return elseif nargin==5 M=varargin{1}; end D=diag(diag(A));%求A的对角矩阵 L=-tril(A,-1);%求A的下三角阵

公平的席位分配

公平的席位分配 姓名:仇嘉程 班级:数学与应用数学(2)班 学号:0907022010 摘要:席位分配是日常生活中经常遇到的问题,对于企业、公司、、学校政府部 门都能解决实际的问题。席位可以是代表大会、股东会议、公司企业员工大会、 等的具体座位。本文讨论了席位公平分配问题以使席位分配方案达到最公平状 态。我主要根据各系人数因素对席位获得的影响,首先定义了公平的定义及相对 不公平度的定义,采用了最大剩余法模型和Q 值法模型,通过检验2种模型的 相对不公平度来制定比较合理的分配方案。 关键词:不公平度指标、Q 值法、最大剩余法 一、问题的提出: 某学校有3个系共200名学生,其中甲系100名,乙系60名,丙系40名。 问题一:若学生代表会议设20个席位,如何公平席位分配? 问题二:丙系有6名学生转入甲乙两系,其中甲系转入3人,乙系转入3人, 又将如何公平的分配20个学生代表会议席位? 三、模型的建立: 模型1——比例分配法,若使得公平席位分配,最公平简单且常用的席位分配办 法是按学生人数比例分配: 某单位席位分配数 = 某单位总人数比例′总席位 即: (1,2,3...)i i p P i n N N ==,其中1n i i N N ==∑ 1n i i P P ==∑ 但是在实际生活中,若按模型1来计算,由于席位数不同,很难使得到的结果为 整数,因此模型1难以成立,即绝对公平难以成立,我们需要寻求可能相对公平 的分配方案。

模型2——最大剩余法,如果按上述公式参与分配的一些单位席位分配数出现小数,则先按席位分配数的整数分配席位,余下席位按所有参与席位分配单位中小数的大小依次分配之。这种分配方法公平吗?由书上给出的案例,我们可以很清楚的知道该方法是有缺陷的,是不公平的。 某学院按有甲乙丙三个系并设20个学生代表席位。它的最初学生人数及学生代表席位为 系名甲乙丙总数学生数100 60 40 200学生人数比例100/200 60/200 40/200 席位分配10 6 4 20 后来由于一些原因,出现学生转系情况,各系学生人数及学生代表席位变为 系名甲乙丙总数学生数103 63 34 200学生人数比例103/200 63/200 34/200 按比例分配席位10.3 6.3 3.4 20按惯例席位分配10 6 4 20 由于总代表席位为偶数,使得在解决问题的表决中有时出现表决平局现象而达不成一致意见。为改变这一情况,学院决定再增加一个代表席位,总代表席位变为21个。重新按惯例分配席位,有 系名甲乙丙总数 学生数103 63 34 200学生人数比例103/200 63/200 34/200 按比例分配席位10.815 6.615 3.57 21 按惯例席位分配11 7 3 21 这个分配结果出现增加一席后,丙系比增加席位前少一席的情况,这使人觉得席位分配明显不公平。这个结果也说明按惯例分配席位的方法有缺陷,我们需要建立更合理的分配席位方法解决上面代表席位分配中出现的不公平问题。 模型3——Q值法

1.实验11-1-公平的席位分配(参照惯例的席位分配方法)-实验11-2-公平的席位分配(Q值方法).doc

河北大学《数学模型》实验 实验报告 班级专业 15计科2班 姓名 张宇轩 学号 20151101006 实验地点 C1-229 指导老师 司建辉 成绩 实验项目 1. 实验11-1 公平的席位分配(参照惯例的席位分配方法) 2. 实验11-2 公平的席位分配(Q 值方法) 一、实验目的 了解参照惯例的席位分配方法和Q 值方法的区别,明确Q 值的意义,学会使用这两种方法解决问题。掌握在MATLAB 下,席位分配问题的调用,熟悉循环的使用,floor 、sort 等函数的使用,学会使用最佳定点或浮点格式(5位数字)控制命令format short g 。 二、实验要求 1. 公平的席位分配(参照惯例的席位分配方法) 参照惯例的席位分配方法:(参考P278-279) n 为席位总数,p1,p2,…,pm为各单位人数。 步骤: a. 按比例各单位所得席位为n*pi/(p1+p2+,…,pm),i=1,2,…,m(结果可能含有小数)。 b. 对各单位所得席位取整。 c. 若对各单位所得席位取整数之和

lu分解法、列主元高斯法、jacobi迭代法、gaussseidel法的原理及matlab程序

一、实验目的及题目 1.1 实验目的: (1)学会用高斯列主元消去法,LU 分解法,Jacobi 迭代法和Gauss-Seidel 迭代法解线性方程组。 (2)学会用Matlab 编写各种方法求解线性方程组的程序。 1.2 实验题目: 1. 用列主元消去法解方程组: 1241234 123412343421233234x x x x x x x x x x x x x x x ++=??+-+=??--+=-??-++-=? 2. 用LU 分解法解方程组,Ax b =其中 4824012242412120620266216A --?? ?- ?= ? ?-??,4422b ?? ? ?= ?- ?-?? 3. 分别用Jacobi 迭代法和Gauss-Seidel 迭代法求解方程组: 123234 1231234102118311210631125x x x x x x x x x x x x x -+=-??-+=-??-+=??-+-+ =? 二、实验原理、程序框图、程序代码等 2.1实验原理 2.1.1高斯列主元消去法的原理 Gauss 消去法的基本思想是一次用前面的方程消去后面的未知数,从而将方程组化为等价形式: 1111221122222n n n n nn n n b x b x b x g b x b x g b x g +++=??++=????= ? 这个过程就是消元,然后再回代就好了。具体过程如下: 对于1,2, ,1k n =-,若() 0,k kk a ≠依次计算

()() (1)()()(1)()()/,,1, ,k k ik ik kk k k k ij ij ik kj k k k i i ik k m a a a a m a b b m b i j k n ++==-=-=+ 然后将其回代得到: ()() ()()()1/()/,1,2,,1 n n n n nn n k k k k k kj j kk j k x b a x b a x a k n n =+?=??=-=--? ? ∑ 以上是高斯消去。 但是高斯消去法在消元的过程中有可能会出现() 0k kk a =的情况,这时消元就无法进行了,即使主元数() 0,k kk a ≠但是很小时,其做除数,也会导致其他元素数量级的严重增长和舍入误差的扩散。因此,为了减少误差,每次消元选取系数矩阵的某列中绝对值最大的元素作为主元素。然后换行使之变到主元位置上,再进行销元计算。即高斯列主元消去法。 2.1.2直接三角分解法(LU 分解)的原理 先将矩阵A 直接分解为A LU =则求解方程组的问题就等价于求解两个三角形方程组。 直接利用矩阵乘法,得到矩阵的三角分解计算公式为: 1111111 11 1,1,2,,/,2,,,,,1,,,2,3, ()/,1,2, ,i i i i k kj kj km mj m k ik ik im mk kk m u a i n l a u i n u a l u j k k n k n l a l u u i k k n k n -=-===?? ==?? =-=+??=??=-=++≠?? ∑∑且 由上面的式子得到矩阵A 的LU 分解后,求解Ux=y 的计算公式为 11 111,2,3,/()/,1,2, ,1 i i i ij j j n n nn n i i ij j ii j i y b y b l y i n x y u x y u x u i n n -==+=??? =-=?? =??? =-=--?? ∑∑ 以上为LU 分解法。

公平的席位分配问题

公平的席位分配问题 席位分配在社会活动中经常遇到,如:人大代表或职工学生代表的名额分配和其他物质资料的分配等。通常分配结果的公平与否以每个代表席位所代表的人数相等或接近来衡量。目前沿用的惯例分配方法为按比例分配方法,即: 某单位席位分配数= 某单位总人数比例总席位 如果按上述公式参与分配的一些单位席位分配数出现小数,则先按席位分配数的整数分配席位,余下席位按所有参与席位分配单位中小数的大小依次分配之。这种分配方法公平吗下面来看一个学院在分配学生代表席位中遇到的问题: 某学院按有甲乙丙三个系并设20个学生代表席位。它的最初学生人数及学生代表席位为 系名甲乙丙总数 学生数100 60 40 200 学生人数比例100/200 60/200 40/200 席位分配10 6 4 20 " 后来由于一些原因,出现学生转系情况,各系学生人数及学生代表席位变为 系名甲乙丙总数 学生数103 63 34

200 学生人数比例 103/200 63/200 34/200 按比例分配席位 20 按惯例席位分配 10 6 4 20 由于总代表席位为偶数,使得在解决问题的表决中有时出现表决平局现象而达不成一致意见。为改变这一情况,学院决定再增加一个代表席位,总代表席位变为21个。重新按惯例分配席位,有 系名 甲 乙 丙 总数 ( 学生数 103 63 34 200 学生人数比例 103/200 63/200 34/200 按比例分配席位 21 按惯例席位分配 11 7 3 21 这个分配结果出现增加一席后,丙系比增加席位前少一席的情况,这使人觉得席位分配明显不公平。这个结果也说明按惯例分配席位的方法有缺陷,请尝试建立更合理的分配席位方法解决上面代表席位分配中出现的不公平问题。 模型构成 先讨论由两个单位公平分配席位的情况,设 单位 人数 席位数 每席代表人数 单位A p 1 n 1 11n p 单位B p 2 n 2 22n p

MATLAB样例之雅克比迭代法

要求: 下面分别使用雅克比迭代法和高斯-赛德尔迭代法求一个方程组的近似解用的线性方程组是按实验要求给的: 7*x1+x2+2*x3=10 x1+8*x2+2*x3=8 2*x1+2*x2+9*x3=6 雅克比迭代法的matlab代码:(老师写的) A=[7,1,2;1,8,2;2,2,9]; b=[10;8;6]; if(any(diag(A))==0) error('error,pause') end eps=input('误差限eps='); N=input('迭代次数N='); D=diag(diag(A)); B=inv(D)*(D-A); f=inv(D)*b; K=0; x0=zeros(size(b)); while 1 x1=B*x0+f K=K+1; fprintf('第-次迭代的近似解为',K) disp(x1'); if norm(x1-x0,inf)N fprintf('迭代超限') end x0=x1; end 高斯-赛德尔迭代法matlab代码:(自己改的)

A=[7,1,2;1,8,2;2,2,9]; b=[10;8;6]; if(all(diag(A))==0) error('error,pause') end eps=input('误差限eps='); N=input('迭代次数N='); D=diag(diag(A)); B=inv(D)*(D-A); f=inv(D)*b; K=0; x0=zeros(size(b)); x00=x0; while 1 x11=B*x0+f; x00(1,1)=x11(1,1); x12=B*x00+f; x00(2,1)=x12(2,1); x13=B*x00+f; x00(3,1)=x13(3,1); x1=x00 K=K+1; fprintf('第-次迭代的近似解为',K) disp(x1'); if norm(x1-x0,inf)N fprintf('迭代超限') end x0=x1; end

数学建模对公平的席位分配问题的一点补充

对公平的席位分配问题解法的一点补充 222008314011010 刘欢 08数统一班 为叙述简单,仍然采用书中的例子如下 一.提出问题: 某学校有3个系共200名学生,其中甲系100名,乙系60名,丙系40名。若学生代表会议设20个席位,公平而又简单的席位分配办法是按学生人数的比例分配,显然甲、乙、丙三系分别应占有10,6,4个席位。现在丙系有3名学生转入甲系, 3名学生转入乙系,仍按比例分配席位出现了小数,三系同意,在将取得整数的19席位分配完毕后,剩下的1席位参照所谓惯例分给比例中小数最大的丙系,于是三系仍分别占有10,6,4个席位。按比例并参照惯例的席位分配。 由于20个席位的代表会议在表决时可能出现10∶10的局面,会议决定下一届增加1席,按照上述方法重新分配席位,计算结果是甲、乙、丙三系分别应占有11,7,3个席位。显然这个结果对丙系太不公平了,因总席位增加1席,而丙系却由4席减为3席。 请问:如何分配才算是公平? 二.书中模型 用Q 值法求解如下 设A ,B 两方,人数分别为1p 和2p ,占有席位分别是1n 和2n ,当1122=p n p n 时席位的分配公平。但人数为整数,通常1122≠p n p n 。这时席位分配不公平,且 /p n 较大的一方吃亏。 当1122>p n p n 时,定义 1122 1222 -= (,)A p n p n r n n p n (1) 为对A 的相对不公平值。

当1122

p n p n ,即对A 不公平,当再分配一个席位时,有以下三种情况: (1) 当 22 1>+11p p n n 时,说明即使给A 增加1席,仍然对A 不公平,所以这一席显然应给A 方. (2)当 22 1<+11p p n n 时,说明给A 增加1席后,变为对B 不公平,此时对B 的相对不公平值为 211212 11-1 ++= () (,)B p n r n n p n (3) (3)当 221 >+11p p n n 时,这说明给B 增加1席,将对A 不公平,此时对A 的相对不公平值为 121221 11-1 ++= () (,)A p n r n n p n (4) 因为公平分配席位的原则是使相对不公平值尽可能小,所以如果 121211 +<+(,)(,)B A r n n r n n (5) 则这1席给A 方,反之这1席给B 方. 由(3)(4)可知,(5)等价于 2 1222211< 11++() () p p n n n n (6) 不难证明上述的第(1)种情况 22 1>+11p p n n 也与(6)式等价,于是我们的结论是当(6)式成立时,增加的1席应给A 方,反之给B 方。 若记 2, =1,2 1= +() i i i i p Q i n n

二分法、简单迭代法的matlab代码实现

实验一非线性方程的数值解法(一) 信息与计算科学金融崔振威201002034031一、实验目的: 熟悉二分法和简单迭代法的算法实现。 二、实验内容: 教材P40 2.1.5 三、实验要求 1根据实验内容编写二分法和简单迭代法的算法实现 2简单比较分析两种算法的误差 3试构造不同的迭代格式,分析比较其收敛性 (一)、二分法程序: function ef=bisect(fx,xa,xb ,n, delta) % fx是由方程转化的关于x的函数,有fx=0。 % xa解区间上限 % xb解区间下限 % n最多循环步数,防止死循环。 %delta为允许误差 x=xa;fa=eval(fx); x=xb;fb=eval(fx); disp(' [ n xa xb xc fc ]'); for i=1: n xc=(xa+xb)/2;x=xc;fc=eval(fx); X=[i,xa,xb,xc,fc]; disp(X), if fc*fa<0 xb=xc; else xa=xc; end if (xb-xa)

k=0; while abs(x-xO)>eps & k> fplot('[x A5-3*x A3-2*x A2+2]',[-3,3]);grid 得下图: 由上图可得知:方程在[-3,3]区间有根。 (2 )、二分法输出结果 >> f='xA5-3*xA3-2*xA2+2' f = X A5-3*X A3-2*X A2+2 >> bisect(f,-3,3,20,10A(-12)) 2.0000 - 3.0000 0 -1.5000 0.0313

公平席位分配模型

数 学 建 模 论 文单位:湖南信息职业技术学院系别: 信息工程系 班级: 信息0903 作者: 贺际嵘

公平的席位分配问题 [摘要]我们用公平席位分配模型,解决了10人委员会人员组成问题并保证对A.B.C的相对都公平.首先,我们用人们常用的惯例分配席位的方法来分配10个席位得出结果如表1-1;再假定情况1,也用惯例分配席位的方法来分配得出结果如表2-2;由以上两步的结果可以判定此种按照人数比例分配的惯例分配方法在这里应用分配的结果是不公平的,导致总席位数N增加一个,A的席位数反而减少了一个;此后,我们在寻找一个更为公平的分配方案,经过对问题的深入了解,逐步分析并结合各种情况的共同性建立我们日常寻求的更为公平的分配方案—Q值法;最后,我们通过Q值法求的本问题的最佳分配结果,也进一步,把这一以Q值法为为方法的公平席位分配模型推广到我们的日常生活中所遇到的席位分配问题.通过公平席位分配模型对席位的分配,不难检验出惯例分配席位的方法是不公平的,总席位数为N=10 的公平分配结果是: A是n1=2, B是n2=3,C是 n3=5. [关键字]公平分配;Q值法;模型.

1 问题重述 我们日常生活之中经常会面对席位分配的问题,如某学校共1000学生,235人住在A楼,333人住在B楼,432住在C楼. 学生要组织一个10人委员会,我们可以试用惯例分配方法和Q值方法分配各楼的委员数,并比较结果,试得出更为公平的分配方案及结果. 事先我们可以对问题进行假设与符号定义;然后进行我们的问题分析,先用惯例分配分配席位的方法分析:①可以先人们常用的惯例分配席位的方法来分析公平分配10个席位并得出结果;②也可以再假定情况1,也用惯例分配席位的方法来分析并得出结果;两种结果进行分析以初步得出惯例分配席位的方案是不公平的,并思考怎样才能得出更为公平的分配方案;然后,我们把模型建立方面的分析及其模型建立放在模型建立里面再分析. 2 问题的假设与符号定义 1.1问题的假设: 1.席位是以整数计量的,并且为有限个,设为N个; 2.每个单位有有限个人,席位是按各集体的人员多少来分配的;3.每个单位的每个人都具有相同的选举权利; 4.每个单位至少应该分配到一个名额,如果某个单位,一个名额也 不应该分到的话,则应将其剔除在分配之外; 5.在名额分配的过程中,分配是稳定的,不受任何其他因素所干扰.

公平的席位分配论文

公平的席位分配论文 This manuscript was revised on November 28, 2020

题目:公平的席位分配问题 摘要 数学问题中离不开分配问题,下面我就以公平的席位分配问题进行分析。在以下的分析中,我会先按照比例的分配方法分配,再按照比例家惯例的方法进行分配,表示不公平的席位分配,最后我们利用Q值法对题目进行重新分配,以Q值的特性使得对其席位的分配更加公平。比例法是我们生活中必不可少的分配方法,但是在有的时候使用Q值法会得到更加的公平分配。 关键词:席位分配比例法比例加惯例 Q值法 一、问题的重述与分析 问题的重述 某学校有3个系学生共200名,其中甲系100名,乙系60名,丙系40名,若学生代表会议设20个席位,公平而又简单的席位分配办法是按学生人数的比例分配,三个系分别为10,6,4个席位。现因学生转系,三系人数分别为103,63,34名,问20席如何分配。若增加为21席,又如何分配。 问题的分析 本题讲将有200名学生,甲103、乙63、丙34,现有20个或21个席位,那我们应该怎么来分配呢看到这个题,首先想到的是用比例加惯例法,得出:20个席位,三系仍分别占有10,6,4个席位;21个席位,三系分别占有11,7,3个席位。显然这个结果对丙不太公平,因为总席位增加1席,而丙系却由4席减为3席,最后通过比较,还是Q值法分配相对公平。

二、符号设定 1、各系的人数: p i (i=1,2,3……) 2、各系分配到的席位数: n i (i=1,2,3……) 3、各系不公平程度的指标:r i (i=1,2,3……) 4、各系Q 值:Q i (1,2,3……) 三、模型的建立与求解 比例加惯例分配 如下表 分配的席位取整数,20席位时,甲、乙、丙系分到的席位数分别为10,6,4;可是总席位增加1个席位时,丙系却由4席减为3席,这显然对丙席不公平。所以按照各系人数所占比例大小分配,有的时候是不公平的。 不妨设A 、B 方人数分别为 p 1、p 2,席位分别为 n 1、n 2 当p 1/n 1=p 2/n 2时,分配公平 当p 1/n 1>p 2/n 2时,对A 不公平 p 1 /n 1-p 2 /n 2~对A 的绝对不公平度 如:p 1=150,n 1=10,p 1/n 1=15 p 1=1050,n 1=10,p 1/n 1=105 p 2 =100,n 2=10,p 2/n 2=10 p 2=1000,n 2=10,p 2/n 2=100

matlab 迭代法[精品]

matlab 迭代法[精品] 1. 矩阵 122,211,,,,,,,,,A,111A,222, 11,,,,,,,,221,,112,,,, 证明:求解以为系数矩阵线性方程组的Jacobi迭代式收敛的,而A1 Gauss-Seidel方法是发散的;求解以为系数矩阵线性方程组的A2实验名称Gauss-Seidel是收敛的,而Jacobi方法是发散的. 2. 矩阵 1aa,,,,Aaa,1 ,,,,aa1,, (a) 参数取什么值时,矩阵是正定的. a (b) 取什么值时,求以为系数矩阵线性方程组的Jacobi迭代式收aa 敛的. 1、根据迭代收敛性的充分必要条件来判断Jacobi迭代式与Gauss-Seide 迭代式的收敛性,迭代收敛性仅与方程组系数矩阵有关,与右端无关;而且不依赖于初值的选取。实验目的 2、根据矩阵的判断定理求得矩阵元素a的取值,同时根据矩阵线性方程组的Jacobi迭代式收敛的充分条件(严格对角占优)来求a得取值。 1、(1)检验线性方程组的Jacobi迭代式的收敛性: function jacobi(A) D=zeros(3); for i=1:3 D(i,i)=A(i,i); 实验内容end (算法、程B=D^(-1)*(D-A); 序、步骤和k=max(abs(eig(B))) 方法) if k<1

'该线性方程组的Jacobi迭代式是收敛的' else k>=1 '该线性方程组的Jacobi迭代式是发散的' end (2)检验线性方程组的Gauss-Seide迭代式的收敛性: function Gauss(A) D=zeros(3); L=zeros(3); U=zeros(3); for i=1:3 D(i,i)=A(i,i); end L(2:3,1)=A(2:3,1); L(3,2)=A(3,2); U(1,2:3)=A(1,2:3); U(2,3)=A(2,3); B=-(D+L)^(-1)*U; k=max(abs(eig(B))) if k<1 '该线性方程组的Gauss-Seidel迭代式是收敛的' else k>=1 '该线性方程组的Gauss-Seidel迭代式是发散的' end 2、(1)参数取什么值时,矩阵是正定的.(矩阵的特征值全为正) a >> syms a >> A=[1 a a;a 1 a;a a 1]; >> eig(A) ans = 2*a+1 1-a

公平的席位分配

席位公平分配问题 —Q值法的改进 摘要:本文为建立席位分配问题的公平合理方案.对经典Q 值法进行了研究并提出改进,构造了衡量相对不公平程度的新标准量。通过对书本中的经典席位分配问题实例的计算,比较分析了多种席位分配方法的求解结果,并与经典的Q值法进行了公平性的比较。结果表明改进的标准量更为合理,从而验证了该方法的有效性和合理性。 一、问题背景 席位分配问题是人类社会生活中相当普遍的一类资源分配问题,是数学在政治领域中应用的典型实例,其目标是在一个大集体对小集体进行某种资源分配时试图尽可能做到公平合理。席位分配问题最关键之处是它的悖论观,无论选择怎样的分配方案,总会产生这样或那样的矛盾,著名的有以下几种悖论:亚拉巴马悖论、人口悖论和新州悖论。同时,席位公平分配的关键是提出衡量公平度的一个量,即满足下述5条公理: 公理1(人口单调性):一方的人口增加不会导致它失去一个名额。 公理2(无偏性):在整个时间平均,每一方应接受到它自己应分摊的份额。 公理3(名额单调性):总名额的增加不会使某一方的名额减少。

公理4(公平分摊性):任何一方的名额都不会偏离其比例份额数。 公理5(接近份额性):没有从一方到另一方的名额转让会使得这两方都接近于它们应得的份额。 然而,1982年M .L .Balinski 和H .P .Young 证明了一个B —Y 不可能定理,即绝对公平的分配(满足公理1~公理5)方案是不存在的,既然绝对公平的分配方案不存在,人们便致力于席位分配问题的相对公平的研究。著名的Q 值法是1982年由 D .N .Burghes 和I .Hunttey 等人提出的一种相对不公平衡量标准,该方法简单易行,且克服了其他方法的一些矛盾,被广泛的应用于资源公平分配问题中。但不足之处是未考虑名额分配后的整体状况,而首先给每一方分配一个名额也是没有道理的。基于此考虑,这里提出了一种新的衡量相对不公平的标准,不需要事先给每一方分配一个名额,其计算量与Q 值法相当,但比Q 值法更趋于公平。通过实例比较了该方法与Q 值法及其它方法的求解结果,从而验证该方法的合理性和有效性。 二公平标准的构造 1.1席位分配问题描述 席位分配问题是指:假设有m 方参加N 个可供分配的席位, 其中第i 方的人数为i p (i=1,2,…,m),m 方的总人数为1m i i p p ==∑, 第i 方所分配的席位为n i ,(i=1,2,…,m),如何寻找一组整数

公平席位的分配

公平席位的分配 数学(2)班学号 0907022029 郭子龙 摘要:讨论公平席位分配的模型已有很多。本文首先用比例加惯例法、Q值法、D’hondt法对问题中名额进行了分配,再对D’hondt法的合理性进行了分析,并在Q值法对绝对尾数(绝对不公平度)的处理方式基础上,提出了相对尾数模型,并讨论了其满足Young公理的1,3,4条 关键词:分配相对尾数 Balinsky & Young不可能定理 正文 1 问题复述 公平的席位分配问题是一个非常有趣而重要的问题,它在政治学、管理学和对策论等领域具有广泛的应用价值。处理这个问题的最早的方法是Hamilton法,即比例加惯例法;后来出现了Q值法;1974年M.L.Balinski和H.P.Young引入了席位分配问题的公理体系研究方法,并于1982年证明了同时满足五个公理的席位分配方法是不存在的;因此,我们只能根据实际建立在一定公平准则下成立并尽量多的满足Young公理的算法。这里,我们需要理解并运用比例加惯例法、Q 值法、D’hondt法对宿舍委员会名额进行分配,继而提出更优的公平分配席位的方法。 2 模型假设 2.1 合理假设 1.比例加惯例法、Q值法等分配模型均为已知; 2.各个宿舍相互独立互不影响,人数保持不变; 3.委员分配以各宿舍人数为唯一权重。 2.2 符号约定

3 模型的建立与求解 3.1按比例加惯例模型分配 根据比例加惯例分配模型的原理表 3.2按Q 值法模型分配 首先用比例分配法对名额进行初步分配,再根据表达式 )1(2 += i i i i m m n Q C B A i ,,=对剩下的名额进行分配 3.3 D ’hondt 模型 3.3.1 模型建立 设n ,m 分别表示宿舍总人数和总分配席位数,i n (1,2,3i =)表示各宿舍人数,

公平的席位分配问题建模作业

公平的席位分配问题 ——数学建模报告 20094865,陈天送 20094862,陈铁忠 20094854,朱海

公平的席位分配问题 席位分配在社会活动中经常遇到,如:人大代表或职工学生代表的名额分配和其他物质资料的分配等。通常分配结果的公平与否以每个代表席位所代表的人数相等或接近来衡量。 符号设定: N :总席位数 i n :分配给第i 系席位数 (1,2,3i =分别为甲,乙,丙系) P :总人数 i P :第i 系数 (1,2,3i =分别为甲,乙,丙系) i Q :第i 系Q 值 (1,2,3i =分别为甲,乙,丙系) Z :目标函数 方法一,比例分配法:即: 某单位席位分配数 = 某单位总人数比例?总席位 如果按上述公式参与分配的一些单位席位分配数出现小数,则先按席位分配数的整数分配席位,余下席位按所有参与席位分配单位中小数的大小依次分配之。这种分配方法公平吗?由书上给出的案例,我们可以很清楚的知道该方法是有缺陷的,是不公平的。 方法二,Q 值法: 采用相对标准,定义席位分配的相对不公平标准公式:若 2211n p n p > 则称 1122122221 1-=-n p n p n p n p n p 为对A 的相对不公平值, 记为 ),(21n n r A ,若 2211n p n p < 则称 121121 1 11 22-=-n p n p n p n p n p 为对B 的相对不公平值 ,记为 ),(21n n r B 由定义有对某方的不公平值越小,某方在席位分配中越有利,因此可以用使不公平值尽量小的分配方案来减少分配中的不公平。 确定分配方案: 使用不公平值的大小来确定分配方案,不妨设1 1 n p > 2 2n p ,即对单位A 不公平,再分配一个席 位时,关于11n p ,22n p 的关系可能有 1. 111+n p >22 n p ,说明此一席给A 后,对A 还不公平; 2. 111+n p <22n p ,说明此一席给A 后,对B 还不公平,不公平值为 1)1(11),1(21211111 222 1-?+=++-=+n p p n n p n p n p n n r B 3. 1 1 n p > 1 22+n p ,说明此一席给B 后,对A 不公平,不公平值为

matlab迭代法代码

matlab 迭代法代码 1、%用不动点迭代法求方程x-e A x+4=0的正根与负根,误差限是 10A-6% disp(' 不动点迭代法 '); n0=100; p0=-5; for i=1:n0 p=exp(p0)-4; if abs(p-p0)<=10(6) if p<0 disp('|p-p0|=') disp(abs(p-p0)) disp(' 不动点迭代法求得方程的负根为 :') disp(p); break; else disp(' 不动点迭代法无法求出方程的负根 .') end else p0=p; end end

if i==n0 disp(n0) disp(' 次不动点迭代后无法求出方程的负根') end p1=1.7; for i=1:n0 pp=exp(p1)-4; if abs(pp-p1)<=10(6) if pp>0 disp('|p-p1|=') disp(abs(pp-p1)) disp(' 用不动点迭代法求得方程的正根为 ') disp(pp); else disp(' 用不动点迭代法无法求出方程的正根 '); end break; else p1=pp; end end if i==n0

disp(n0) disp(' 次不动点迭代后无法求出方程的正根 ') end 2、%用牛顿法求方程x-e A x+4=0的正根与负根,误差限是disp(' 牛顿法') n0=80; p0=1; for i=1:n0 p=p0-(p0-exp(p0)+4)/(1-exp(p0)); if abs(p-p0)<=10(6) disp('|p-p0|=') disp(abs(p-p0)) disp(' 用牛顿法求得方程的正根为 ') disp(p); break; else p0=p; end end if i==n0 disp(n0) disp(' 次牛顿迭代后无法求出方程的解 p1=-3; for i=1:n0 p=p1-(p1-exp(p1)+4)/(1-exp(p1)); 10A-6 ') end

公平的席位分配(MATLAB程序)

席位分配问题的MATLAB程序 说明: 1.本程序用三种方法,分别是惯例法、d’honht分配法和Q值法。 2.可以模拟出任意一种分配情况,即可以推广到N种情形。 3.三种分配方案供你选择,相互比较。 4.请务必阅读注意事项。 注意: 1.以下包含两个程序,下载完后把程序拷贝到matlab的M文件中, 2.第一个程序可以任意命名,只要符合规范就可以(本人以”xiweifenpei”命名, 这样便于查看),第二个程序一定要命名为“xiwei”,因为程序中要用到函数。 3.下载完后先把程序拷贝到txt文件中,再从txt拷贝到M文件中,这样可以避免乱 码。

程序一: clear all clc disp('席位分配:') P=1000 p=[235 333 432] N=10 [x,y]=size(p); zu=x*y; disp('惯例分配方法:') for i = 1:zu n(i) =p(i)*N/P; end n; m=n-fix(n); for i=1:zu if n(i)==max(m)+fix(n(i)) n(i)=fix(n(i))+1; else n(i)=fix(n(i)); end end disp('惯例分配人数:') n disp('d’honht方法:') pp=[]; for i=1:N pi=p/i; pp=[pp; pi]; end pp m=zeros(1,zu); for i=1:N [x,y]=find(pp==max(pp(:))); pp(x,y)=0; m(y)=m(y)+1; end pp disp('d’honht分配人数:') m disp('Q值法分配方法:')

相关文档
相关文档 最新文档