2017-02-24 45 views
1

我正在使用mathematica中的牛顿迭代法寻找初始收敛点。牛顿函数现在的作品现在我想显示网格中的哪些初始点会产生收敛到-1的牛顿迭代,对于收敛到(1 +(3)^ 1/2)/ 2i的点也是如此:迭代法

F(X)= X^3 + 1

newton[x0_] := (
    x = x0; 
    a1 = {}; 
    b1 = {}; 
    c1 = {}; 
    counter = 0; 
    error = Abs[f[x]]; 
    While[counter < 20 && error > 0.0001, 
    If[f'[x] != 0, x = x - N[f[x]/f'[x]]]; 
    counter = counter + 1; 
    error = Abs[f[x]]]; 
    x) 

我创建了一个网格,以显示其中+双向的初始点收敛到根。

grid = Table[a + b I, {a, -2, 2, 0.01}, {b, -2, 2, 0.01}]; 

然后我创建了一个分形,但每当我绘制它给我一个空白图形的轴。 enter image description here 有一种方法可以让我从网格中识别出汇聚点,但到目前为止我还没有成功。我尝试使用Which []方法,但在比较其值时返回false。 任何帮助将不胜感激

+0

显示您尝试过的绘图命令不起作用 – agentp

+0

我刚刚做过,仍然没有运气 – itms

+0

您尝试绘制真实部分吗? – agentp

回答

2

你的代码是不是最佳的,说得客气一点,但给你一个良好的开端,你为什么不开始是这样的:

f[x_] := x^3 + 1; 

newton[x0_] := (x = x0; 
    a1 = {}; 
    b1 = {}; 
    c1 = {}; 
    counter = 0; 
    error = Abs[f[x]]; 
    While[counter < 20 && error > 0.0001, 
    If[f'[x] != 0, x = x - N[f[x]/f'[x]]]; 
    counter = counter + 1; 
    error = Abs[f[x]]]; 
    {x, counter}) 

Table[[email protected][a + b I], {a, -2, 2, 0.01}, {b, -2, 2, 0.01}] // Image 

Mathematica graphics