无约束重力模型:使用java求解《交通规划》例3-12

 四个java程序在资源管理器中的位置

 

 1.平均系数增长法求迭代OD表:Pjxs.java

package transportation;
public class Pjxs{
	static int m=3;//起点个数,出发地
	static int n=3;//讫点个数,目的地
	static int k=0;
	static Double e=0.01;//收敛标准
	static Double[] c=new Double[m+n];/*发生与吸引交通量增长系数,0~m-1为发生交通量增长系数;m~m+n为吸引交通量增长系数;*/
	static Double[][] a={
			{17.0,7.0,4.0,28.0},
			{7.0,38.0,6.0,51.0},
			{4.0,5.0,17.0,26.0},
			{28.0,50.0,27.0,105.0}
			};//初始化现状OD矩阵
	static Double[][] b={
			{0.0,0.0,0.0,38.6},
			{0.0,0.0,0.0,91.9},
			{0.0,0.0,0.0,36.0},
			{39.3,90.3,36.9,166.5}
			};//初始化将来OD矩阵
	static Double[][] d={
			{0.0,0.0,0.0,0.0},
			{0.0,0.0,0.0,0.0},
			{0.0,0.0,0.0,0.0},
			{0.0,0.0,0.0,0.0}
			};//新矩阵,用来存放迭代后的新OD表

/*根据输入的OD表求其发生与吸引交通量增长系数*/
	public void qxs(Double[][] a) {
		for(int i=0;i<m;i++) {
			c[i]=b[i][n]/a[i][n];
		}
		for(int i=0;i<n;i++) {
			c[i+m]=b[m][i]/a[m][i];
		}
		System.out.print("根据OD表求得发生交通增长系数:\n");
		for(int i=0;i<m+n;i++) {
			System.out.println(c[i]);
		}
	}
/*进行收敛判定*/
	public  void slpd() {
		for(int i=0;i<m+n;i++) {
			if(c[i]>1+e||c[i]<1-e) {
				System.out.println("存在某些项系数误差满足条件!");
				js();
				qxs(d);
			}
		}
		System.out.println("各项系数误差满足条件!");
	}
/*通过平均系数增长法迭代之后的OD表*/
	public void js() {
		for(int i=0;i<=m;i++) {
			for(int j=0;j<=n;j++) {
				if(
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值