SageMath 中的`implicit_plot` 复杂函数
`implicit_plot` complex function in SageMath
我想为复数 z
绘制方程 |z - 1| = 1
描述的圆。我希望以下内容有效:
f(x, y) = abs(x + i * y -1)
implicit_plot(f(x, y) - 1, xrange=(-2, 2), yrange=(-2, 2))
但它失败了:
TypeError: unable to coerce to a real number
这看起来很奇怪,因为 abs
不是 return 复数。以下失败并出现相同的错误:
f(x, y) = abs(x + i * y -1)
implicit_plot((f(x, y) - 1).real_part(), xrange=(-2, 2), yrange=(-2, 2))
绘制此函数的正确方法是什么?
定义f
的命令将其定义为符号函数:
sage: f(x, y) = abs(x + i * y - 1)
sage: f
(x, y) |--> abs(x + I*y - 1)
sage: f(x, y)
abs(x + I*y - 1)
sage: parent(f)
Callable function ring with arguments (x, y)
sage: parent(f(x, y))
Symbolic Ring
如问题中那样绘制 f(x, y) - 1
的绘图命令
触发内部代码转换所需的表达式
进入“快速调用函数”,但失败了。
一种解决方法,适用于 Sage 中的许多绘图问题,
是改用 lambda 函数。
为此,只需在表达式前引入lambda x, y:
在 x
和 y
中绘制:
sage: implicit_plot(lambda x, y: f(x, y) - 1, xrange=(-2, 2), yrange=(-2, 2))
Launched png viewer for Graphics object consisting of 1 graphics primitive
我想为复数 z
绘制方程 |z - 1| = 1
描述的圆。我希望以下内容有效:
f(x, y) = abs(x + i * y -1)
implicit_plot(f(x, y) - 1, xrange=(-2, 2), yrange=(-2, 2))
但它失败了:
TypeError: unable to coerce to a real number
这看起来很奇怪,因为 abs
不是 return 复数。以下失败并出现相同的错误:
f(x, y) = abs(x + i * y -1)
implicit_plot((f(x, y) - 1).real_part(), xrange=(-2, 2), yrange=(-2, 2))
绘制此函数的正确方法是什么?
定义f
的命令将其定义为符号函数:
sage: f(x, y) = abs(x + i * y - 1)
sage: f
(x, y) |--> abs(x + I*y - 1)
sage: f(x, y)
abs(x + I*y - 1)
sage: parent(f)
Callable function ring with arguments (x, y)
sage: parent(f(x, y))
Symbolic Ring
如问题中那样绘制 f(x, y) - 1
的绘图命令
触发内部代码转换所需的表达式
进入“快速调用函数”,但失败了。
一种解决方法,适用于 Sage 中的许多绘图问题, 是改用 lambda 函数。
为此,只需在表达式前引入lambda x, y:
在 x
和 y
中绘制:
sage: implicit_plot(lambda x, y: f(x, y) - 1, xrange=(-2, 2), yrange=(-2, 2))
Launched png viewer for Graphics object consisting of 1 graphics primitive