【发布时间】:2020-07-07 15:43:02
【问题描述】:
我想在 SageMath 中绘制以下两个变量的简单函数,但我不是 确定如何在 Sage 中定义两个变量的分段函数。
documentation for piecewise functions 基本上只对一个变量的函数执行此操作。如何定义上述两个变量的分段函数?
【问题讨论】:
我想在 SageMath 中绘制以下两个变量的简单函数,但我不是 确定如何在 Sage 中定义两个变量的分段函数。
documentation for piecewise functions 基本上只对一个变量的函数执行此操作。如何定义上述两个变量的分段函数?
【问题讨论】:
这里有两种绘制所需函数的方法。
首先,一种快速简单的方法:
sage: f = lambda x, y: sqrt((x-2)^2 + (y - 1)^2) if x < 2 else abs(y - 1)
sage: p = plot3d(f, (-3, 5), (-3, 3))
sage: p
Launched html viewer for Graphics3d Object
其次,考虑到简单边界的更精细的方法 此函数的各个部分以及其中一个部分的分段线性性质。
为这两个部分定义两个函数:
sage: g = lambda x, y: sqrt((x-2)^2 + (y - 1)^2)
sage: h = lambda x, y: abs(y - 1)
将它们绘制在适当的域上,使用不同但附近的颜色:
sage: G = plot3d(g, (-1, 2), (-3, 3), color='cadetblue')
sage: H = plot3d(h, (2, 5), (-3, 3), color='steelblue', threejs_flat_shading=True)
请注意我们如何为图形为分段线性的图形使用平面着色。
将碎片的图形相加得到函数的图形:
sage: K = G + H
sage: K
Launched html viewer for Graphics3d Object
【讨论】: