CylindricalDecompositionFunction[data][x1,x2,…]
表示用 x1,x2,… 表示的柱状代数方程.
CylindricalDecompositionFunction
CylindricalDecompositionFunction[data][x1,x2,…]
表示用 x1,x2,… 表示的柱状代数方程.
更多信息
- CylindricalDecompositionFunction[…][x1,x2,…] 由 CylindricalDecomposition[expr, {x1,x2,…},"Function"] 生成.
- CylindricalDecompositionFunction 对象提供了半代数集合的显式紧凑表示,可有效用于后续计算中.
- CylindricalDecompositionFunction 通常用于有半代数集合的重复计算中,包括计算集合的布尔组合,限制有额外条件的组合,消去一些变量或最优化组合等.
- x1,…,xn 中的柱面代数方程形式为
,其中
. 每个
的格式要么为
,要么为
,其中
和
是在
的解集上定义且连续的代数函数.
中
的解集
成为一个胞体. 胞体
和
在
上的投影,于任何
而言,或者分离、或者相同. - CylindricalDecompositionFunction 为柱面代数方程提供了一个封装表示,在 CylindricalDecompositionFunction 或 CylindricalDecomposition 的输入中,或向诸如 Reduce、Resolve、FindInstance、Solve 或 Minimize 的求解器中使用,都会更加便捷.
- Normal 将 CylindricalDecompositionFunction 对象转换为方程式和不等式的显式布尔组合.
范例
打开所有单元 关闭所有单元基本范例 (2)
CylindricalDecomposition[x ^ 2 + y ^ 2 + z ^ 2 < 1, {x, y, z}, "Function"]Normal[%]f = CylindricalDecomposition[Exists[z, x ^ 2 + y ^ 2 + z ^ 2 ≤ 3 && z ^ 3 - 2 x y z == 2], {x, y}, "Function"]CylindricalDecomposition[f, {x, y}, "BoundaryFunction"]CylindricalDecomposition[f && x ^ 3 + y ^ 3 == x y, {x, y}, "Function"]范围 (23)
基本用法 (7)
CylindricalDecomposition[x ^ 2 + y ^ 2 ≤ x y z && z ^ 2 - x y == 3, {x, y, z}, "Function"]CylindricalDecomposition[Sqrt[2]x ^ 2 + Root[# ^ 5 - 2# - 11&, 1]y ^ 2 < 1, {x, y}, "Function"]CylindricalDecomposition[E ^ Pi x ^ 2 + Pi ^ E y ^ 2 ≤ 77 && Log[2]x + Log[3]y == 2, {x, y}, "Function"]CylindricalDecomposition[Exists[z, x ^ 2 + y ^ 2 ≤ x y z && z ^ 2 - x y == 3], {x, y}, "Function"]有常值真值的 CylindricalDecompositionFunction 简化为 True 或 False:
CylindricalDecomposition[ForAll[z, x ^ 2 + y ^ 2 ≤ x y z && z ^ 2 - x y == 3], {x, y}, "Function"]有实数数字初始参数的 CylindricalDecompositionFunction 自动化简:
CylindricalDecomposition[x ^ 4 + y ^ 4 ≤ z && z ^ 3 - x y == 1, {x, y, z}, "Function"]% /. x -> 1 / 2% /. y -> -2 / 3Normal[%]在后续计算中使用 CylindricalDecompositionFunction 对象:
f = CylindricalDecomposition[x ^ 2 + y ^ 2 ≤ 3 && x ^ 3 - y ^ 2 ≥ 1, {x, y}, "Function"]用代数映射构成 CylindricalDecompositionFunction:
g = CylindricalDecomposition[Head[f][x ^ 2, Sqrt[y]], {x, y}, "Function"]使用 CylindricalDecompositionFunction 对象和多项式不等式的布尔组合:
CylindricalDecomposition[!g || f && x y ≤ 1, {x, y}, "Function"]布尔运算 (2)
计算量化方程组的 CylindricalDecompositionFunction 解
:
f = CylindricalDecomposition[Exists[z, x ^ 2 + 2 x y - 3y ^ 3 + z ^ 3 <= 1 && 1 + x + x y - x ^ 2 z ≥ z ^ 2], {x, y}, "Function"]g = CylindricalDecomposition[!f, {x, y}, "Function"]CylindricalDecomposition[f || g, {x, y}]计算两个不同量化方程组的 CylindricalDecompositionFunction 解:
f = CylindricalDecomposition[Exists[t, x y z ≤ t ^ 2 x + 1 && t ^ 3 ≤ x ^ 2 + y z], {x, y, z}, "Function"]g = CylindricalDecomposition[ForAll[t, x y z ≤ t ^ 2 && t ^ 3 ≤ t x ^ 2 + y z + t ^ 4], {x, y, z}, "Function"]CylindricalDecomposition[Xor[f, g], {x, y, z}, "Function"]求解方程式和不等式 (2)
计算量化方程组的 CylindricalDecompositionFunction 解
:
f = CylindricalDecomposition[Exists[t, x ^ 2 - t y z ≤ 1 && t ^ 3 ≤ x ^ 2 + y z], {x, y, z}, "Function"]CylindricalDecomposition[f && x y z == x ^ 2 - y ^ 2, {x, y, z}, "Function"]求解 CylindricalDecompositionFunction 对象、方程式和不等式的布尔组合:
f = CylindricalDecomposition[ForAll[t, x y z ≤ t ^ 2 && t ^ 3 ≤ t x ^ 2 + 2 x y - z t ^ 4], {x, y, z}, "Function"]g = CylindricalDecomposition[x ^ 2 ≤ y z + z ^ 3, {x, y, z}, "Function"]CylindricalDecomposition[f && x y z ≥ 1 || g && x ^ 2 + y ^ 2 == z ^ 2, {x, y, z}, "Function"]量词消去 (3)
从量化 CylindricalDecompositionFunction 对象中消去量词:
f = CylindricalDecomposition[x y t ≤ t ^ 3 + 1 && z ≤ t z ^ 2 + 2 x t - y z, {x, y, z, t}, "Function"]CylindricalDecomposition[ForAll[z, Exists[t, f]], {x, y}, "Function"]CylindricalDecomposition[Exists[z, ForAll[t, f]], {x, y}, "Function"]CylindricalDecomposition[Exists[{z, t}, f], {x, y}, "Function"]从包含 CylindricalDecompositionFunction 对象的方程组中消去量词:
f = CylindricalDecomposition[ForAll[t, x y z ≤ t ^ 2 && t ^ 3 ≤ x ^ 2 + 2 x y - z t ^ 4], {x, y, z}, "Function"]g = CylindricalDecomposition[x ^ 2 ≤ y z - z ^ 3, {x, y, z}, "Function"]CylindricalDecomposition[Exists[z, f && x y z == 1 || g && x ^ 2 + y ^ 2 > z ^ 2], {x, y}, "Function"]ineqs = x y z ≤ z ^ 4 - 1 && x > z ^ 2 - y z;f = CylindricalDecomposition[ineqs, {x, y, z}, "Function"]g = CylindricalDecomposition[ineqs, {x, z, y}, "Function"](ez1 = CylindricalDecomposition[Exists[z, f], {x, y}, "Function"])//Timing(ey1 = CylindricalDecomposition[Exists[y, g], {x, z}, "Function"])//Timing(ez2 = CylindricalDecomposition[Exists[z, g], {x, y}, "Function"])//Timing(ey2 = CylindricalDecomposition[Exists[y, f], {x, z}, "Function"])//TimingCylindricalDecomposition[Equivalent[ez1, ez2], {x, y}]CylindricalDecomposition[Equivalent[ey1, ey2], {x, z}]拓扑运算 (5)
求解解域及其边界的 CylindricalDecompositionFunction 表示:
CylindricalDecomposition[x^4 ≥ x^2 + y^2, {x, y}, "Function"]CylindricalDecomposition[x^4 ≥ x^2 + y^2, {x, y}, "BoundaryFunction"]求解解域和其闭包的 CylindricalDecompositionFunction 表示:
CylindricalDecomposition[x^4 > x^2 + y^2, {x, y}, "Function"]CylindricalDecomposition[x^4 > x^2 + y^2, {x, y}, "ClosureFunction"]求解解域及其内部的 CylindricalDecompositionFunction 表示:
CylindricalDecomposition[x^4 ≥ x^2 + y^2, {x, y}, "Function"]CylindricalDecomposition[x^4 ≥ x^2 + y^2, {x, y}, "InteriorFunction"]求解解域和其外部的 CylindricalDecompositionFunction 表示:
CylindricalDecomposition[x^4 ≥ x^2 + y^2, {x, y}, "Function"]CylindricalDecomposition[x^4 ≥ x^2 + y^2, {x, y}, "ExteriorFunction"]求解解域及其连通分量的 CylindricalDecompositionFunction 表示:
CylindricalDecomposition[x^4 ≥ x^2 + y^2, {x, y}, "Function"]CylindricalDecomposition[x^4 ≥ x^2 + y^2, {x, y}, "ComponentsFunction"]CylindricalDecompositionFunction 作为求解器的输入 (4)
使用 CylindricalDecompositionFunction 指定最优化的限制条件:
f = CylindricalDecomposition[Subscript[∀, z]Subscript[∃, w]3 z^2 w + (x + y) z^4 - 1 == (x^3 - x y + y^2 - 1) w^2, {x, y}, "Function"]MinValue[{(x + 1) ^ 2 + (y + 7) ^ 2, f}, {x, y}]求解包括方程式、不等式和 CylindricalDecompositionFunction 限制条件的方程组:
f = CylindricalDecomposition[Subscript[∃, z](x^2 + 2 x y - 5 y^3 + z^3 - x^2 z == 0 && y^2 - 3 x y - x^3 - z x^2 == 0), {x, y}, "Function"]Solve[x ^ 2 + y ^ 2 == 1 && f, {x, y}, Reals]使用 FindInstance 求解包含 CylindricalDecompositionFunction 的方程组的解实例:
f = CylindricalDecomposition[Subscript[∃, z](x^2 + z^3 == 1 - x y && 1 + x^2 y - y z^4 == 7), {x, y}, "Function"]FindInstance[f && x ^ 3 - x y + y ^ 2 == 1, {x, y}]在 CylindricalDecompositionFunction 的每个解集的连通分量中找到至少一个点:
f = CylindricalDecomposition[Subscript[∃, z](x^2 + 2 x y - 3 y^3 + z^3 ≤ 1 && 1 + x y - x^2 z^4 ≥ 7), {x, y}, "Function"]SemialgebraicComponentInstances[f, {x, y}]应用 (4)
p1 = CylindricalDecomposition[Exists[z, -2 x^2 + x^4 + y^2 + 2 x^2 y^2 - 2 y^4 + y^6 + 3 z^2 - 6 y^2 z^2 + 3 y^4 z^2 - 3 z^4 + 3 y^2 z^4 + z^6 == 0], {x, y}, "Function"]p2 = CylindricalDecomposition[Exists[z, x^2 - x^4 + y^2 - 2 x^2 y^2 - y^4 + 2 y^2 z - 2 z^2 + x^2 z^2 - y^2 z^2 + 2 z^3 - z^4 == 0], {x, y}, "Function"]CylindricalDecomposition[p1 && p2, {x, y}, "Function"]proj = CylindricalDecomposition[Subscript[∃, z](x^6 - 4 x^2 y^2 + 3 x^4 y^2 + 3 x^2 y^4 + y^6 - 4 x^2 y^2 z^2 ≤ 0 && x^2 + y^2 + z^2 ≤ 1), {x, y}, "Function"]{max, pt} = Maximize[{x^5 + y^5, proj}, {x, y}]RegionPlot[{proj, x^5 + y^5 ≤ max}, {x, -1, 1}, {y, -1, 1}, PlotPoints -> 30, Epilog -> {PointSize[Large], Red, Point[{x, y} /. N[pt]]}]//QuietCylindricalDecomposition[y^2 == x (-1 + x^4), {x, y}, "Function"]CylindricalDecomposition[y^2 == x (-1 + x^4), {x, y}, "ComponentsFunction"]CylindricalDecomposition[(x^2 + y^2) (x (2 + x) + y^2) < 8 x y^2, {x, y}, "Function"]CylindricalDecomposition[(x^2 + y^2) (x (2 + x) + y^2) < 8 x y^2, {x, y}, "ComponentsFunction"]属性和关系 (5)
CylindricalDecomposition[x ^ 2 + y ^ 2 + z ^ 2 ≤ 1, {x, y, z}, "Function"]默认情况下,CylindricalDecomposition 给出以显式方程式和不等式的形式写出的结果:
CylindricalDecomposition[x ^ 2 + y ^ 2 + z ^ 2 ≤ 1, {x, y, z}]CylindricalDecompositionFunction 对象的 Normal 等价于,且通常情况恒等于,直接计算的方程:
Normal[%%] === %qf = Subscript[∃, u]x^2 + y^2 + z^2 + x y z u + u^4 == 1;
qg = Subscript[∃, v]x + 3 y z v^2 + v^4 < 3;{f1, g1} = {CylindricalDecomposition[qf, {x, y, z}, "Function"], CylindricalDecomposition[qg, {x, y, z}, "Function"]};{f2, g2} = {CylindricalDecomposition[qf, {x, y, z}], CylindricalDecomposition[qg, {x, y, z}]};CylindricalDecompositionFunction 对象上的运算更加快速:
Timing[CylindricalDecomposition[f1 && g1, {x, y, z}, "Function"]]TimeConstrained[CylindricalDecomposition[f2 && g2, {x, y, z}], 300]使用 FindInstance 找到满足 CylindricalDecompositionFunction 对象的点:
CylindricalDecomposition[x ^ 3 + y ^ 3 ≥ x y + 1, {x, y}, "Function"]FindInstance[%, {x, y}]SemialgebraicComponentInstances 在半代数集合的每个连通分量中都给出至少一个点:
SemialgebraicComponentInstances[x ^ 2 - y ^ 2 > 1, {x, y}]CylindricalDecompositionFunction 合并数个胞体,以获取更紧凑的表示:
CylindricalDecomposition[x ^ 2 - y ^ 2 > 1, {x, y}, "Function"]SemialgebraicComponentInstances 现在知道更少的点也可以满足:
SemialgebraicComponentInstances[%, {x, y}]GenericCylindricalDecomposition 计算在更低维度部分构建的半代数集合的表示:
CylindricalDecomposition[x ^ 2 + y ^ 2 ≤ 1 || x == 1, {x, y}]GenericCylindricalDecomposition[x ^ 2 + y ^ 2 ≤ 1 || x == 1, {x, y}]使用 Method{"CylindricalDecompositionFunctionOutput"True} 可以得到 CylindricalDecompositionFunction 的结果:
GenericCylindricalDecomposition[x ^ 2 + y ^ 2 ≤ 1 || x == 1, {x, y}, Method -> {"CylindricalDecompositionFunctionOutput" -> True}]可能存在的问题 (1)
如果被给出不精确的参数,则 CylindricalDecompositionFunction 会使用不精确的参数值作为比较,但依然生成精确的结果:
CylindricalDecomposition[6x ^ 2 + 16y ^ 2 < 5, {x, y}, "Function"]% /. x -> 0.5Normal[%]巧妙范例 (1)
disk[{x0_, y0_}, r_] := (x - x0) ^ 2 + (y - y0) ^ 2 < r ^ 2f = CylindricalDecomposition[disk[{-7 / 4, 9 / 4}, 1 / 3] || disk[{9 / 4, 9 / 4}, 1 / 3] || (disk[{0, 0}, 5] && !disk[{2, 2}, 1] && !disk[{-2, 2}, 1] && (!disk[{0, -1}, Sqrt[5]] || disk[{0, 1}, 3])), {x, y}, "Function"]RegionPlot[f, {x, -5, 5}, {y, -5, 5}]文本
Wolfram Research (2020),CylindricalDecompositionFunction,Wolfram 语言函数,https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html.
CMS
Wolfram 语言. 2020. "CylindricalDecompositionFunction." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html.
APA
Wolfram 语言. (2020). CylindricalDecompositionFunction. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html 年
BibTeX
@misc{reference.wolfram_2026_cylindricaldecompositionfunction, author="Wolfram Research", title="{CylindricalDecompositionFunction}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html}", note=[Accessed: 15-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_cylindricaldecompositionfunction, organization={Wolfram Research}, title={CylindricalDecompositionFunction}, year={2020}, url={https://reference.wolfram.com/language/ref/CylindricalDecompositionFunction.html}, note=[Accessed: 15-September-2026]}