- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
交通分配之用户均衡分配模型二(matlab源码)
例
总流量为100,走行函数为:
模型求解的Matlab 源码:
syms lambda ;
tt =[0 0 0 ];
xx = [0 0 0 0 0] ;
t1 = 4 + (0.6/40)*xx(1,1);
t2 =6 + (0.9/40) *xx(1,2);
t3 = 2 + (0.3/60) *xx(1,3);
t4 = 5 + (0.75/40) *xx(1,4) ;
t5 = 3 + (0.45/40) *xx(1,5) ;
Q = 100;
N=8 ; % 迭代次数 ,本例只设置最大迭代次数。也可另外设置收敛条件
tt(1,1)= t1 +t4 ;
tt(1,2) = t2 + t5 ;
tt(1,3) =t1+ t3 +t5 ;
y = [0 0 0]; %置初值
Min = 50000;
for j = 1 : 3
if tt(1 ,j) Min %计算最小走行时间的路段 ,用全有全无法分配流量
Min = tt(1,j);
index = j;
end
end
% y(1,index) = Q;
if index ==1
xx(1,1)= Q;
xx(1,4)=Q;
elseif index ==2
xx(1,2)= Q;
xx(1,5)=Q;
else
xx(1,1)= Q;
xx(1,3)=Q;
xx(1,5)=Q;
end
for i =1 :N
y = [0 0 0 0 0 ];
t1 = 4 + (0.6/40)*xx(1,1);
t2 =6 + (0.9/40) *xx(1,2);
t3 = 2 + (0.3/60) *xx(1,3);
t4 = 5 + (0.75/40) *xx(1,4) ;
t5 = 3 + (0.45/40) *xx(1,5) ;
tt(1,1)= t1 +t4 ;
tt(1,2) = t2 + t5 ;
tt(1,3) =t1+ t3 +t5 ;
fprintf(第 %d 次迭代的 路径时间值: , i);
tt
Min = 50000;
for j = 1 : 3
if tt(1 ,j) Min %计算最小走行时间的路段 ,用全有全无法分配流量
Min = tt(1,j);
index = j;
end
end
if index ==1
y(1,1)= Q;
y(1,4)=Q;
elseif index ==2
y(1,2)= Q;
y(1,5)=Q;
else
y(1,1)= Q;
y(1,3)=Q;
y(1,5)=Q;
end % 分配流量给辅助流
fprintf(第 %d 次迭代的 辅助流量值是: , i);
y
zz = xx + lambda * (y-xx); % 按方向(y-xx)进行一维搜索,步长为lamda
t1 = 4 + (0.6/40)*zz(1,1);
t2 =6 + (0.9/40) *zz(1,2);
t3 = 2 + (0.3/60) *zz(1,3);
t4 = 5 + (0.75/40) *zz(1,4) ;
t5 = 3 + (0.45/40) *zz(1,5) ;
f =( y(1,1) -xx(1,1)) * t1 + (y(1,2) -xx(1,2))* t2 +(y(1,3) -xx(1,3))* t3 +(y(1,4) -xx(1,4))* t4 +(y(1,5) -xx(1,5))* t5 ;
lambda1 =double( solve(f)) ; %求解方程,确定步长。
k = length(lambda1); % 如步长lambda1的解不唯一,取实数,且大于0 小于1;
if k == 1
lamb
文档评论(0)