我正在尝试使用python为多项式z^3-1
绘制Newton的吸引盆。
我正在使用Newton-Raphson Iterative方法绘制图形。
有人可以建议我该怎么做?
更新1
更新2
这是Newton-Raphson循环的代码。代码中是否有任何错误导致操作缓慢?
def newtonraphson(z):
if z == 0:
return False
z1 = 0
z2 = z
tolerance = 1.0e-12
while True:
z1 = z2
z2 = z1 - function(z1)/derivative(z1)
if abs((z2 - z1).a) < tolerance:
break
return z2
答案 0 :(得分:1)
你正在看的情节&#34;关于正确,&#34;除了它缺少更多积分并且均匀分布之外。
你如何选择要绘制的点和哪些点?
一般情况下,您希望将x
和y
的整个范围作为初始条件求解。要选择所有这些初始x
和y
s,您需要一个足够小的步骤,让您的图表看起来很漂亮(但不够小,以至于您浪费时间计算最终的点数成为同一像素的一部分。)
然后,您希望迭代Newton-Raphson方法而不是固定步数,而是直到您的解决方案足够接近z^3-1 == 0
(等效,直到z^3-1
为止足够)。通过这种方式,您确保为每个点获得颜色。
编辑回答你的评论:
当我尝试获取更多积分时,CPU使用率达到100%并且我的计算机开始滞后并且有时会挂起
您需要每隔一段时间将控制权交还给UI线程。这会使你的情节变慢,但它会确保它的响应速度。理想情况下,您将在后台线程中执行所有计算,并且只与UI线程通信,以便绘制每个像素。