使用Julia求解N元方程系统:工资向量求解与算法选择问题
求解通勤均衡模型中的工资向量
输入条件
- N个可同时作为工作地和居住地的地点集合
- 观测得到的各工作地工人数量向量 $L_i$($i \in N$)
- 观测得到的各居住地居民数量向量 $R_n$($n \in N$)
- 居住地与工作地之间的观测距离矩阵
- 形状参数$\epsilon$
具体参数(N=3,$\epsilon=5$)
d = [1 1.5 3 ; 1.5 1 1.5 ; 3 1.5 1] # 距离矩阵 L_i = [13 69 18] # 各工作地工人数量向量 R_n = [27; 63; 10]
待求解方程组
需找到满足以下方程组的N维工资向量$w_i$($i=1,2,...,N$):
对每个工作地i,有:
$$
L_i = \sum_{n=1}^N R_n \cdot \frac{(w_i / d_{ni})\epsilon}{\sum_{l=1}N (w_l / d_{nl})^\epsilon}
$$
其中$l$遍历所有工作地。
疑问
必须通过工人向量与工资向量的迭代算法求解该方程组,还是存在直接求解的方法?
本人尝试的迭代实现代码
w_i = [1 ; 1 ; 1] er = 1 n = 1 while er > 1e-3 # 根据当前工资计算各工作地的预测工人数量 L_i_calc = ((w_i ./ d).^ϵ) ./ sum(((w_i ./ d).^ϵ), dims=1) * R_n # 计算预测值与观测值的最大误差 er = maximum(abs.(L_i .- L_i_calc)) # 更新工资向量 w_i = 0.7.*w_i + 0.3.*w_i.*((L_i .- L_i_calc) ./ L_i_calc) n = n + 1 end
内容的提问来源于stack exchange,提问作者Pol Cosentino
相关产品推荐
相关产品推荐

