当前位置: 首页 > 知识库问答 >
问题:

牛顿法吸引分形盆颜色梯度的求取

白学
2023-03-14

我用MATLAB在复平面上通过一个NxN网格,x是实部,y是虚部。对于这个网格上的每个点,我都将其作为牛顿方法的起点。根据它收敛到的根,它被分配一个数字。此数字与pcolor一起用于绘制分形。

它绘制得很好,但是,我还想根据收敛到根所需的时间绘制颜色暗度。我在使用pcolor时遇到问题。我能够得到3个根的3种颜色,但我不太确定如何添加更多的颜色,使其更具描述性。

下面是在我有
xp-x点的数组
yp-y点的数组
col-NxN矩阵,该矩阵具有1,2,3(对应于哪个根)之后获取图的代码

% thresholds for color
caxis([1 3]); 

% sets colors Red, Green, Blue
mycolors = [1 0 0; 0 1 0; 0 0 1];
colormap(mycolors);

% real component on x and imaginary component on y
h=pcolor(xp, yp, col');
set(h, 'LineStyle', 'none' );

所以,我怎样才能在pcolor中得到一个梯度,似乎pcolor只是算出了所有的颜色本身。caxis只允许2种颜色的边界。

如果你想看这个程序的完整代码,请告诉我。非常感谢。

共有1个答案

岑驰
2023-03-14

将达到收敛所需的迭代次数添加为颜色。定义HSV中的颜色,并使迭代次数映射到HSV的值S。这将给你一个很好的和有意义的颜色梯度,而不是真正改变颜色。

伪代码是:

为此,请按您的操作生成3种颜色mycolor。将其颜色空间更改为mycolorshssv=rgb2hsv(mycolors)

您现在想要的是为每种颜色生成一组(您选择的)颜色。

mycolorshsv=repelem(mycolorshsv,N,1);

现在让我们为每种颜色生成N个渐变。

mycolorshsv(    1:  N,2)=linspace(0,1,N);
mycolorshsv(  N+1:2*N,2)=linspace(0,1,N);
mycolorshsv(2*N+1:3*N,2)=linspace(0,1,N);

例如,您希望获得的最长迭代maxiter最亮。我们现在需要将您的col矩阵从[1,2,3]转换为当前范围。那就

col=(col-1)*N+1; % make 1=>1, 2=>N, 3=>2*N;
col=col+iteration_matrix; %max(iteration_matrix) must be maxiter. You may want to normalize so min(iteration_matrix) is 0

现在只需设置colormap(mycolors) ,我会使用imagesc而不是pcolor,但它不那么重要。

玩范围,和限制的colro值更好的地图。通常还使用非线性映射,其中函数f应用于迭代值,例如sigmoid。

这是一种用于牛顿分形的技术,你可以在维基百科上找到,例如:

 类似资料:
  • 我试图在MatLab中实现一个函数,该函数使用牛顿法计算最佳线性回归。然而,我陷入了一个问题。我不知道如何求二阶导数。所以我不能实施它。这是我的密码。 谢谢你的帮助。 编辑:: 我用一些纸和笔解决了这个问题。你所需要的只是一些微积分和矩阵运算。我找到了二阶导数,它现在正在工作。我正在为感兴趣的人分享我的工作代码。

  • 我试图画出复杂方程z^5 1=0的吸引盆。我已经设法制作了一个大矩阵(1000000个元素),只有6个不同的值,如果等值点收敛,则有5个根,如果发散,则有其他的根。但我无法将每种不同类型的值映射到不同的颜色。到目前为止,我的代码是 PColor似乎不适用于复杂的参数,如果我把abs(A)作为参数,所有不同的根转换为相同的数字,我最终得到一个只有一种颜色的图形,这很奇怪,因为有些点分歧,所以我应该有

  • $$f(x_0+\delta x) = f(x_0) + f{'}(x_0)\delta_x + \frac {f{''}(x_0)} {2}\delta_x2 + o(\delta2_x)= g(\delta_x) +o(\delta_x^2)$$ 关于$$\delta_x$$的二次函数$$g(\delta_x)$$的极值点为$$-\frac {f{'}(x_0)} {f{''}(x_0)}$$

  • 本文向大家介绍拟牛顿法的原理相关面试题,主要包含被问及拟牛顿法的原理时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 牛顿法的收敛速度快,迭代次数少,但是Hessian矩阵很稠密时,每次迭代的计算量很大,随着数据规模增大,Hessian矩阵也会变大,需要更多的存储空间以及计算量。拟牛顿法就是在牛顿法的基础上引入了Hessian矩阵的近似矩阵,避免了每次都计算Hessian矩阵的逆,在拟牛顿法

  •   设f(x)是二次可微实函数,又设$x^{(k)}$是f(x)一个极小点的估计,我们把f(x)在$x^{(k)}$处展开成Taylor级数, 并取二阶近似。   上式中最后一项的中间部分表示f(x)在$x^{(k)}$处的Hesse矩阵。对上式求导并令其等于0,可以的到下式:   设Hesse矩阵可逆,由上式可以得到牛顿法的迭代公式如下 (1.1)   值得注意 , 当初始点远离极小点时,牛顿法

  • 网站是否具有吸引力对于访客的回头率具有非常重要的促进作用,从吸引力分析中了解访客喜好,增加网站吸引力从而提升用户粘性。