哥们在敲数学建模,它明明可以得出结果的,为什么显示错误啊😭,不是哥们这到底哪里错了啊
21条回答 默认 最新
- 专家-皆知 2024-05-02 11:31关注
获得0.15元问题酬金 参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。
从你提供的信息来看,你遇到的是一个与
scipy.optimize.linprog
函数调用相关的错误。错误提示为:“Invalid Input for Linprog: A must have exactly two dimensions, and the number of columns in A must equal the size of c”。这意味着你的输入矩阵A
的维度或结构不符合linprog
函数的要求。具体来说,错误指出A
应该恰好有两维,并且它的列数必须与向量c
的长度相匹配。根据你的代码片段,这里有几个可能的问题点以及如何解决它们:
1. 确保矩阵
A
的维度正确错误直接指出了
A
矩阵的问题,确保A
是一个二维数组,并且其列数等于c
的长度。你的代码中创建A
的部分看起来是这样的:A.eq = np.zeros((N+1,K**2+N))
确保这个
A
矩阵的列数与你的目标系数向量c
匹配。如果你的c
向量是基于某些决策变量的线性组合,那么A
的列数必须与这些变量的数量一致。2. 正确构建约束矩阵和向量
你的约束矩阵
A_eq
构建部分似乎有误,特别是这一行:A.eq[N,:M].1
这里
.1
看起来像是一个笔误,应该是赋值操作的一部分,但具体怎么修正取决于你想要设置的具体约束条件。此外,A.eq[1,1].1
和A.eq[1,N+10%:N+(1*1)*8]=..S
也存在类似的不明确或错误的语法。你需要根据实际问题的约束条件清晰地定义每一行和列的值。3. 检查
c
和边界条件(bounds
)的定义确保你的目标函数系数向量
c
是根据实际问题正确构造的,并且其长度与A
的列数匹配。同时,边界条件的设定也需要仔细检查,确保它们对于每个决策变量都是正确的。你的bounds
设定看起来是这样的:bounds = [(c, None) for c in range(N)] # 固定费用的边界条件 bounds *= [(-CC, D) for c in range(N**2)] # 距离的边界条件
这里似乎有一个混淆,
bounds
列表的构造方式可能不是你想要的。你应该分别定义两个不同的边界列表,然后合并它们,而不是简单地乘法操作。解决方案示例
为了帮助你更好地理解如何修正代码,我提供一个简化版的修复思路,但请注意,具体的修复还需要基于你的实际模型细节进行调整:
# 假设N和K是你问题中的变量 N = 20 K = 10 # 假设K的值 M = ... # 这里需要根据实际情况定义M的值 # 构建目标函数系数向量c,确保长度与A的列数匹配 c = ... # 根据实际问题定义 # 正确构建约束矩阵A A_eq = np.zeros((N+1, K**2+N)) for i in range(N): # 假设这里是在设置特定的约束条件,你需要根据实际情况填写 # 注意:下面的示例仅示意性地设置了一些位置为1,实际应根据约束条件来 A_eq[i, i] = 1 # 示例:对角线元素置1,表示资源分配等式约束 # 构建等式约束右侧的向量b_eq b_eq = np.array([...]) # 根据实际约束条件填写 # 定义决策变量的边界条件 bounds = [(None, None) if condition else (lower_bound, upper_bound) for condition, lower_bound, upper_bound in zip( # 这里根据条件判断每个变量的边界,例如: [True]*N + [False]*(K**2+N), # 示例:前N个变量无界,其余有界 [-CC]*N + [...], # 具体的下界 [D]*N + [...] # 具体的上界 )] # 最后调用linprog,注意参数的正确传递 from scipy.optimize import linprog res = linprog(c, A_ub=None, b_ub=None, A_eq=A_eq, b_eq=b_eq, bounds=bounds) print(res)
请根据你的实际问题调整上述模板中的占位符(如
...
)和逻辑表达,以确保它们符合你的数学模型需求。希望这能帮助你解决问题。解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 抖音咸鱼付款链接转码支付宝
- ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
- ¥15 求螺旋焊缝的图像处理
- ¥15 blast算法(相关搜索:数据库)
- ¥15 请问有人会紧聚焦相关的matlab知识嘛?
- ¥15 网络通信安全解决方案
- ¥50 yalmip+Gurobi
- ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
- ¥15 itunes恢复数据最后一步发生错误
- ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了