Math 版 (精华区)

发信人: zjliu (Robusting), 信区: Math
标  题: 第六章 复平面上的迭代
发信站: 哈工大紫丁香 (Thu Jan  2 16:46:03 2003) , 转信

…20 世纪20年代,这一领域在数学家法图和朱丽亚的指导下曾经极度繁荣,……但在7
0年代的新繁荣时期以前有一段休眠期。后来,主要由芒德勃罗的美丽动人的计算机作图
和道阿弟、哈伯德和沙利文(D.Sullivan)等人引人入胜的数学工作,又一次把人们的注
意力引向复平面丰富多彩的初等映射的动力学行为。”
对于本书作者和读者而言,“解析函数”、“复变函数”等概念都可暂且不管,知道在
复平面上对简单的多项式进行迭代能够生成美妙的分形图形,就足够了。在计算机十分
普及以前,要做这种练习几乎是不可能的。当年朱丽亚和法图是靠抽象的数学思维,艰
难地研究复迭代的。进入80年代,计算机产业大发展,正巧分形几何学又到来了,一切
条件都已成熟。芒德勃罗在干柴上点了一把火,复迭代复兴了,这把火一直烧到现在,
而且火势仍不减当年。
复数迭代比实迭代(见第八章)稍稍麻烦一些,进行复迭代需要知道复数的四则运算。我
们先复习一下高中学过的内容。
任意复数可以写成三种形式:1)代数形式:z=x+yi;2)三角形式:z=r (cosθ+isinθ)
;3)指数形式:z=re^(iθ)。 其中i=SQRT(-1)是虚数单位,x=Re(z)是复数的实部,y=
Im(z )是复数的虚部,r=|z|=|x+yi|=SQRT(x^2+y ^2)叫做复数的模,θ叫做复数的
辐角。在复平面上,实部一般用横坐标表示, 虚部一般用纵坐标表示。
设z_1,z_2,z_3都是复数,复数基本运算如下:
恒等式:e^(iθ)=cosθ+isinθ,
加法:z_1+z_2=(x_1+x_2)+(y_1+ y_2)i,
减法:z_1-z_2=(x_1-x_2)+(y_1- y_2)i,
乘法:z_1·z_2=(x_1x_2- y_1y_2)+(x_1y_2+x_2y_1)i,
除法:z_1/z_2=(x_1x_2+y_1y_2)/ (x^2_2+y^2_2)+(x_2y_1-x_1y_2)/ (x^2_2+y^2_2)i

余弦:cos(x + iy)= cosxcoshy-isinx sinhy,
正弦:sin(x + iy)= sinxcoshy+icosx sinhy,
指数:e^(x + iy)= e^xcosy+ie^x siny,
其中
双曲余弦:coshx= [e^x + e^(-x)]/2,
双曲正弦:sinhx= [e^x - e^(-x)]/2.
在复迭代程序中,这些基本运算经常用到,最好将它们都编制成函数(过程),存到一个
单元中去,使用时可以把它们当成“标准函数(过程)”调用。设单元为COMPLEX.TPU,
COMPLEX.PAS的内容如下:
unit complex;{PASCAL单元:复数四则运算}
interface
procedure add (x1, y1, x2, y2 : real; var x3, y3 : real); {复数加法}
procedure sub (x1, y1, x2, y2 : real; var x3, y3 : real); {复数减法}
procedure mult(x1, y1, x2, y2 : real; var x3, y3 : real); {复数乘法}
procedure cdiv(x1, y1, x2, y2  : real; var x3, y3 : real); {复数除法}
function cosh(x : real) : real; {双曲余弦函数}
function sinh(x : real) : real; {双曲正弦函数}
procedure csin(x,y : real; var x1, y1 :real);{复数正弦}
procedure ccos(x,y : real; var x1, y1 :real);{复数余弦}
procedure cexp(x,y : real; var x1, y1 :real);{复数指数}
implementation
procedure add (x1, y1, x2, y2 : real; var x3, y3 : real);{复数加法}
     {计算z_3 = z_1 + z_2,
      其中:z_1 = x_1 + iy_1,z_2 = x_2 + iy_2,z_3 = x_3 + iy_3}
begin
     x3 := x1+x2;y3 := y1+y2
end;
procedure sub (x1, y1, x2, y2 : real; var x3, y3 : real);{复数减法}
{计算z_3 = z_1 - z_2}
begin
     x3 := x1-x2;y3 := y1-y2
end;
procedure mult(x1, y1, x2, y2 : real; var x3, y3 : real);{复数乘法}
{计算z_3 = z_1 * z_2}
begin
     x3 := x1*x2-y1*y2;y3 := y1*x2 + x1*y2
end;
procedure cdiv(x1, y1, x2, y2 : real; var x3, y3 : real);{复数除法}
{计算z_3 = z_1 / z_2}
var
denom : real;                   {分母}
begin
     denom := x2*x2 + y2*y2;
     x3 := (x1*x2 + y1*y2)/ denom;   {实部}
     y3 := (x2*y1 - x1*y2)/ denom    {虚部}
end;
function cosh( x : real) : real;     {计算双曲余弦cosh(x) }
begin
     cosh := (exp(x) + exp(-x))/2.0
end;
function sinh( x : real) : real;     {计算双曲正弦sinh(x) }
begin
     sinh := (exp(x) - exp(-x))/2.0
end;
procedure ccos(x, y : real; var x1, y1 : real);
{计算复数余弦z = cos(x + iy),其中:x1是z的实部,y1是z的虚部}
begin
     x1 := cos(x)*cosh(y);y1 := -sin(x)*sinh(y)
end;
procedure csin(x, y : real; var x1, y1 : real);
{计算复数正弦z =sin(x + iy),其中:x_1是z的实部,y_1是z的虚部}
begin
     x1 := sin(x)*cosh(y);y1 := cos(x)*sinh(y)
end;
procedure cexp(x, y : real; var x1, y1 : real);
{计算复数指数z = e^(x + iy),其中:x_1是z的实部,y_1是z的虚部}
begin
     x1 := exp(x)*cos(y);y1 := exp(x)*sin(y)
end;
end.  {复数四则运算单元结束}



--

※ 来源:.哈工大紫丁香 http://bbs.hit.edu.cn [FROM: 202.118.229.86]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.537毫秒