You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含自由变量cj的线性不等式解的符号质心求解方法问询

问题描述

给定包含n+m个变量{v₁,…,vₙ,c₁,…,cₘ}的m个线性方程,要求解由vᵢ≥0与这些方程定义的n维超空间有限区域的质心(CoM),且质心表达式需保留自由变量cⱼ。

当前痛点:若固定cⱼ的值,可通过迭代求解不等式、枚举多面体组合计算质心,但自由变量cⱼ会使目标子空间拓扑产生大量分支,手动处理过于繁琐,怀疑存在可用的高阶工具。

简单示例

from sympy import symbols, linsolve, solve

v = symbols("v:2")
c = symbols("c:1")
eqs = [v[0] + v[1] - c[0]] # constrain the sum

subs, = linsolve(eqs, v)
ineqs = [b >= 0 for b in subs] # all v nonnegative
solve(ineqs, v[1]) #.as_set() not implemented for multivariate
# Essentially, v1 is in [0, c0].
# Using subs, v0 is in [0, c0] as well; so CoM = (c0/2, c0/2).

复杂示例

from sympy import symbols, linsolve, solve

v = symbols("v:3")
c = symbols("c:2")
eqs = [v[0] + v[1] + v[2] - c[0], v[1] + 2 * v[2] - c[1]]

subs, = linsolve(eqs, v)
ineqs = [b >= 0 for b in subs] # all v nonnegative
print(ineqs)
solve(ineqs, v[2])
# Essentially, v2 is in [max(0, c1 - c0), c1/2].
# Using subs, v1 is in [0, c1 - 2 * max(0, c1 - c0)]
# v0 is quite complicated, as is CoM.

潜在高阶解法思路

若能对线性不等式解区域积分线性表达式,则质心各坐标可表示为:
integrate(s[i], solve(ineqs, v)) / integrate(1, solve(ineqs, v))
其中s[i]是通过方程导出的v[i]替换式。

内容的提问来源于stack exchange,提问作者Andris Birkmanis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 10:15:04