返回列表 回复 发帖
关于Taylor展开式
用sinx上色和用多项式上色一样的
因为sinx=x+x^3/3!+x^5/5!+...
其余类似。。。。
由于每一个分段函数都可以展成Fourier级数,所以用分段函数上色和用三角级数上色基本相当。


用前后项距离的差作为dr输入,就是这样:|sin(πdr/T)|着色,边界就会高亮成灯光效果。

方法不理想,精度不够高。
31#边界高亮的理论依据~是必然还是偶然?~···前差分的应用:

设J集合迭代序列为zn,这个序列相邻两项为z[n],z[n+1],这两项构成的前差分为
Δz[n]=z[n+1]-z[n],这些点都在等势线上。
由于z[n+1]=f(z[n]),z[n]=f(z[n-1])
所以,Δz[n]=z[n+1]-z[n]=f(z[n])-f(z[n-1])
由微分中值定理,得
Δz[n]=z[n+1]-z[n]=f(z[n])-f(z[n-1])≈f'(t)(z[n]-z[n-1])
其中f‘(z)=2z,t=(1-a)*z[n-1]+a*z[n](0≤ a≤ 1 )。
故 Δz[n]=z[n+1]-z[n]=f(z[n])-f(z[n-1])
    ≈f'(t)(z[n]-z[n-1])
    =[(1-a)*z[n-1]+a*z[n] ]*(z[n]-z[n-1])
所以
   |Δz[n] |=|z[n+1]-z[n] |    ≈   | (1-a)*z[n-1]+a*z[n] |*|z[n]-z[n-1]|。
|Δz[n] |这个前差分的绝对值,实际就是势差。由于解析函数在有界闭集上的最大模
总是可以再边界上达到,因此这个势差将在边界上取得最大模。故以它作为
dr  =| (1-a)*z[n-1]+a*z[n] |*|z[n]-z[n-1]| (0≤ a≤ 1 )。
上色,边界必然会高亮。





双点迭代,想法折冲降低内成内存,这还是可以办到的。这些都是解析函数最大模定理作用的结果。
扫描图片我没多少耐心,意思意思就行了,扫描非常快,十来秒钟完成的,扫描了一遍。跌嗲了100次,采样率500.
参数运动速度0.5/sec
高亮(high light~HL)技术绘制等势线(contour line~~CT等势线):
改天我把它写出来基本原理利用微分中值定理,展开势差。
技术是用来分享的,死了带不进棺材,玩几何画板和打麻将没什么差别。我把我的心得写出来供板友玩耍。
------------------------------------------------
我把原理,做法补在37#,供板友玩耍时参考。

高亮技术绘制等势线.gsp (96.51 KB)

34# myzam
这种处理等势线的方法很独特,学习了。
35# xiaongxp
我也是看了你们的等势线画法效果图,我就被逼做的,原理很简单,注意是改造来要让画板能运行,这个我费了点力。
一。原理篇
为了让板友能够更好的理解我的想法,我就从最基本的数学概念说起,本来这是多余的。
1.分段函数有简单函数的概念
  分段函数大家都比较熟悉。
例子:当x>1 时,f(x)=x^2;当x<2时,f(x)=x-1 .这种函数就是分段函数。
  简单函数是实变函数里面广泛使用的一类函数,它是类似于分段函数的一种函数。
例子:设E是一个区域,E1,E2,E3是对区域E的一个划分,这个划分满足条件:E1,E2,E3两两不交,且其并集等于E。定义函数f(x)(这里的自变量x,可以数轴上的点,也可以是平面上的坐标,乃至高维空间中的点的坐标),规定如下:当x∈E1时,f(x)=a1,当x∈E2时,f(x)=a2,当x∈E3时,
f(x)=a3.(a1,a2,a3为常量),这样定义的f(x)就是简单函数,所以简单函数更像我们平时见到的阶梯函数。
2.微分的概念
  设w=f(z)是一复变函数,定义Δz=z-z0叫自变量的增量,类似的定义Δw=f(z)-f(z0)叫函数的增量,函数的增量也可以写成Δw=f(z+Δz)-f(z)。我们把比值Δw/Δz叫做差商。
当Δz→0时,Δw/Δz→α,把这个极限值叫做函数w在点z0处的导数,记成f'(z0).
同时我们要把Δw,Δz在叫做函数的微分,和自变量的微分,习惯记成dw,dz。
3.解析函数的概念
设w=f(z0),如果函数w在z0出有导数,就数函数在z0出可导,如果是实函数,在某点处可导和在某点附近可导是一样的,但是复变函数不是这样的的,一个复变函数在点z0出可导,但是在z0的附近的小小的圆邻域内不一定可导(这只要有复变函数的柯西条件Chauchy就很容易举出反例来,本处勉)。
所以复变函数给出了:在z0附近可导的函数叫解析函数。如果f(z)=z^m+c就是解析函数。复变函数主要就是研究解析函数的性质。
4.微分中值定理
微分中值定理是Taylor展开式的特例。复的函数和实的函数都是一样的结够。其实复变函数研究的展开式主要是罗朗展示,它是正幂级数和负幂级数合在一起的一个种级数,复变函数的极点,留数的计算就要靠罗朗展示,这几句话说远了,还是回到正题来。
微分中值定理:设w=f(z)在点z0出解析(即在z0为中心的圆邻域D上处处可导),则
f(z)-f(z0)=f'(u)(z-z0),其中u是位于z和z0连线上的一个复数。u也常常写成u=z0+t*Δz
(0≤t≤1),或写成u=t*z0+(1-t)*z.
微分中值定理的应用:每一个解析函数w=f(z)都可以在以z0为中心的圆邻域D内展开:f(z)=f(z0)+f'(z0)Δz+o(|Δz|).
记号o(|Δz|)表示比|Δz|高阶的无穷小量,就是当Δz→0时,o(|Δz|)→0.这说明档|Δz|很小时,
可以有f(z)≈f(z0)+f'(z0)Δz。
把微分离散化就是差分,这里从约,因为我发现直接用中值定理就可以导出我想要的结论来。
5。Julia集合中的势的概念
   首先,谈复函数的等势线(ct线~contour line)的概念:如果w=f(z)为一复函数,
令|w|=r,这时点z的轨迹就叫函数w的ct线。其实复变函数的ct线,就是它对应的实函数|f(z)|的ct
线,此时的值r叫做势(势值potential),显然在同一条等式线上势是相等的,这叫等势值(euipotential这点几何法叫做et)。
   其次,谈谈Julia集合的中的等式线的概念:
  设f(z)=z^2+c,c=c1+c2*i,迭代:z0=f^0(z0)(这是为了方便做的一个记号规定),
  z1=f(z0),z2=f(z1)=f(f(z0))=f^2(z0),z3=f(f(z2))=f^3(z0),...,z[n+1]=f^n(z0)
   通过迭代得到一个复序列{zn}.
   显然递推关系是:z[n+1]=f(z[n])=f^(n+1)(z0)
   当点zn位于半径为2的园内时,我们认为初始点z0∈J集合。如果经n次迭代后点zn跑到了半径为2
  外,我们就认为初始点z0∉J集合。我们要做的就是对zn没有跑出半径为2的圆时,对它所对应的初始点z0着色。
  概念:zn=f^n(z0)它是以z0为自变量的一个函数,称实函数|f^n(z0)|的ct线就Julia集合的等势线。相应的势值显然就是zn的模,即|zn|=sqrt(xn^2+yn^2).
  如果绘制J集合就会发现J集合的等式线会划分出许多类似于圆环的图形,在每一个类似圆环的形状内,势|zn|保持不变,但初始点从一个类圆环跨到下一个类圆环上时,势|zn|跳跃成另一个值。
假设绘制J集合时类圆环就3个(其实远远不只这么几个,这里是假设),不妨设这三个类圆环为E1,
E2,E3.则势|zn|就够成了一个如下的简单函数:
当z0∈E1时,|zn|=r1,当z0∈E2时,|zn|=r2,当z0∈E3时,|zn|=r3.
真实的情况是这个简单函数原比这个假如复杂的多,阶数也要多的多。总之势构成了一个函数:
|zn|=φ(z)它不是我们理解的阶梯函数,它是一个数学上是简单函数(数学专用概念)。正是势是一个简单函数,所以直接用势着色,J集合就会出现一个个类似圆环是色块,我们叫它们为等势圈,因为在每一个圈内势不变。那么有什么办法作出等势线呢?
特别注意:数列zn叫函数列,它带有参数z。
6.势差的概念
概念定义:设复函数w=f(z)的等式线为ct1,ct2,它们对应的势分别为r1,r2,称|r1-r2|为势差。
(potential derference).
把这个概念应用到J集合的迭代上:关于J集合的势差的计算有多个角度计算,比如计算前后两项的势差,|z[n]- z[n+1]|就是比较常见的一种(其实是势差的近似算法,下类似)。不过这里要介绍的是另外一种计算J集合势差的办法:首先取两个点z,z‘ 作为迭代的初始点,z出发迭代n次的终点为zn,z‘出发迭代m次的终点为zm’
终点的势差为|zn-zm'|,特别注意这个势差是函数列,或明显的写成:|zn-zm'|=φ(n,m,z,z'),它有4个变量。通常可以取n=m,即两个初始点的迭代次数相同。
那么这个势差函数有什么性质呢?
以下我们假定n=m,并且z和z'充分接近,即认为|z-z'|接近于0.由于f^n(z)为一解析函数,当然是连续函数,又由于我们是在一个闭合的圆盘内讨论,圆盘是一个有界的闭集和,关于闭集上的连续函数有着样一个重要的定理:闭集上的连续和一致连续等价.
什么是一致连续:就是说z和z'是两个动点,当z和z'充分接近时,对应的函数值也充分接近。
连续的概念要弱一点:连续的定义要求z和z‘中必须有一个是固定的点。一致连续是函数的整体性质,连续是局部性质。
正是由于f^n(z)是一致连续的,所以f^n(z)-f^(n)(z')也是一致连续的,从而势差|f^n(z)-f^(n)(z')|
也是一致连续的。一致连续很重要,它保证了|z-z'|→0时,  |fn(z)-f^(n)(z')|→0.
所以当z和z‘ 充分接近时,点zn和zn’  必然位于同一个J集合的等势环内。这时的势差基本就是0.
当z或者z‘有一个点位于两个相邻的等势环的交界线上时,势差就会变成非0的值,由此可以看到,
势差具有跳跃性,只有在相邻的等势圈的交界上它才非0.势差函数构成了一个类似于简单函数的函数。
由势差的性质决定了用势差上色会高亮(high light相邻的等势圈的交界处。而且上色后对交界进行足部放大一定是色彩不完全一样。尽管我没有去放大过。但是理论告诉是这样的。
7.Julia集合中一种势差的估计
计算势差站的角度不同,可以计算出各种各样的势差。这里用计算的是上楼提到的势差:
记Δzn=zn’-zn,并假定z和z‘充分接近。
Δz[n+1]=φ(n,z,z‘)=z[n+1]'-z[n+1]=f(zn‘)-f(zn).
因为f(z)是解析的,所以微分中值定理成立,即有
Δz[n+1]=φ(n,z,z‘)=f'(u)(zn’-zn)=f'(u)Δzn(u是zn和zn’连线上的一点)
所以势差函数为:|Δz[n+1]|=|f'(u)|*|zn’-zn|=|f'(u)|*|Δzn|,
u的处理有三种方式:
方式1:u=zn‘+αΔzn(0≤α≤1)
方式2:u≈zn。
为了应用的方便,我选用了方式2.这样就得到了势差函数的估计式::|Δz[n+1]|≈|f'(zn)|*|Δzn|,
这个估计式适合的不仅仅是Julia集合。对一切解析函数都是对的。
但是对于J集合,由于f(z)=z^b+c,故其导数f’(z)=b*z^(b-1),从而势差的估计式为:
|Δz[n+1]|≈b*|zn^(b-1)|*|Δzn|,通常的J集合合中的b=2.
下一步就是要在画板中通过双点迭代实现势差(potential deference~PD)着色。
返回列表