2017-02-24 39 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