功能:二维分形之斯蒂芬森迭代

格式:
[k,x,y]=FractalSteffensen(f,x0,x1,y0,y1,m,n,Sum,Error)
[k,x,y]=FractalSteffensen(f,x0,x1,y0,y1,m,n,Sum)
[k,x,y]=FractalSteffensen(f,x0,x1,y0,y1,m,n)
[k,x,y]=FractalSteffensen(f,x0,x1,y0,y1,m)
[k,x,y]=FractalSteffensen(f,x0,x1,y0)
[k,x,y]=FractalSteffensen(f,x0,x1)
[k,x,y]=FractalSteffensen(f,x0)
[k,x,y]=FractalSteffensen(f)

f:字符串储存的函数表达式,其中里面的变量为x
x0:横坐标起始值,默认为0
x1:横坐标结束值,默认为10
y0:纵坐标起始值,默认与x0一致
y1:纵坐标结束值,默认与x1一致
m:横坐标均分数,默认400
n:纵坐标均分数,默认与m一致
Sum:斯蒂芬森迭代最大次数,默认为100
Error:斯蒂芬森迭代误差控制参数,默认1E-8

k:返回m*n的矩阵变量,表示最终迭代次数
x:返回m*n的矩阵变量,表示最终复平面横向值
y:返回m*n的矩阵变量,表示最终复平面纵向值

原理:

1、本函数采用斯蒂芬森迭代法进行分形值求解

2、斯蒂芬森迭代过程如下,对于一个表达式 f(x) 在每个复平面求其根,对每个给定的点(x,y)进行如下迭代
    z.real = x
    z.imag = y
    k = 1
    不满足条件时进行如下迭代
    {
       z1=f(z)
       z2=f(z1)
       z=z-(z1-z)^2/(z2-2*z1+z)
       k = k+1
    }
    x = z.real
    y = z.imag

例子:

f="x^3-5";
[a,x0,y0]=FractalSteffensen(f,-40,40,-40,40,400,400,100,1e-8);
x=MeshGrid2(1,400,400,400);
y=x';
Cloud(x,y,a);

//依次执行上面5条命令可得到如下的分形图像

{<>}