您好,欢迎来到 中国大学生在线

这些公式所生成的图像有点吓人

2018年03月19日 10:20:10 来源: 超级数学建模微信公众号 作者: 字号:TT

1、就瘆人来说的话,我认为是马丁迭代公式

该公式生成的图像看得我起鸡皮疙瘩。尤其是马丁迭代是一个生长的过程,它会一圈一圈地变粗。

2、就邪恶来说的话,我认为是"骷髅五星"(这是我起的名字,如果有人知道它真正的名字请告知),它的公式我不会描述,只能用语言来说下它的生成方式:

生成正五边形的5个顶点,和一个当前点设置为原点;

a.随机选择五边形的某一个顶点,计算出它与当前点的中点位置;

b.将计算出的中点做为当前点,重新执行操作a

由此迭代处理上千万次后,即能生成骷髅五星的像素数据。

3、就混乱来说的话,我认为是"N体",每一个星体的运动轨迹都是一团乱麻。

下图为一个运动物体在六个固定物体的引力作用下的运动轨迹:

该图像的生成公式是我写的,也是一团乱麻:

p0x=[static]r*sin(0.0)

p1x=[static]r*sin(PI/3)

p2x=[static]r*sin(PI*2/3)

p3x=[static]r*sin(PI*3/3)

p4x=[static]r*sin(PI*4/3)

p5x=[static]r*sin(PI*5/3)

p0y=[static]r*cos(0.0)

p1y=[static]r*cos(PI/3)

p2y=[static]r*cos(PI*2/3)

p3y=[static]r*cos(PI*3/3)

p4y=[static]r*cos(PI*4/3)

p5y=[static]r*cos(PI*5/3)

m0=[static]1.0

m1=[static]1.0

m2=[static]1.0

m3=[static]1.0

m4=[static]1.0

m5=[static]1.0

k=[static]0.5*w*(u*u + v*v)

d0x=[static]p0x - x

d0y=[static]p0y - y

q0=[static]-g*m0*w/sqrt(d0x*d0x + d0y*d0y)

d1x=[static]p1x - x

d1y=[static]p1y - y

q1=[static]-g*m1*w/sqrt(d1x*d1x + d1y*d1y)

d2x=[static]p2x - x

d2y=[static]p2y - y

q2=[static]-g*m2*w/sqrt(d2x*d2x + d2y*d2y)

d3x=[static]p3x - x

d3y=[static]p3y - y

q3=[static]-g*m3*w/sqrt(d3x*d3x + d3y*d3y)

d4x=[static]p4x - x

d4y=[static]p4y - y

q4=[static]-g*m4*w/sqrt(d4x*d4x + d4y*d4y)

d5x=[static]p5x - x

d5y=[static]p5y - y

q5=[static]-g*m5*w/sqrt(d5x*d5x + d5y*d5y)

e=[static]k + q0 + q1 + q2 + q3 + q4 + q5

f0=(p0x - x)*(p0x - x) + (p0y - y)*(p0y - y)

r0=g*m0/f0

f1=(p1x - x)*(p1x - x) + (p1y - y)*(p1y - y)

r1=g*m1/f1

f2=(p2x - x)*(p2x - x) + (p2y - y)*(p2y - y)

r2=g*m2/f2

f3=(p3x - x)*(p3x - x) + (p3y - y)*(p3y - y)

r3=g*m3/f3

f4=(p4x - x)*(p4x - x) + (p4y - y)*(p4y - y)

r4=g*m4/f4

f5=(p5x - x)*(p5x - x) + (p5y - y)*(p5y - y)

r5=g*m5/f5

i=r0*(p0x - x)/sqrt(f0)

j=r0*(p0y - y)/sqrt(f0)

i=i + r1*(p1x - x)/sqrt(f1)

j=j + r1*(p1y - y)/sqrt(f1)

i=i + r2*(p2x - x)/sqrt(f2)

j=j + r2*(p2y - y)/sqrt(f2)

i=i + r3*(p3x - x)/sqrt(f3)

j=j + r3*(p3y - y)/sqrt(f3)

i=i + r4*(p4x - x)/sqrt(f4)

j=j + r4*(p4y - y)/sqrt(f4)

i=i + r5*(p5x - x)/sqrt(f5)

j=j + r5*(p5y - y)/sqrt(f5)

x=x + u*t + 0.5*i*t*t

y=y + v*t + 0.5*j*t*t

u=u + i*t

v=v + j*t

d0x=p0x - x

d0y=p0y - y

q0=-g*m0*w/sqrt(d0x*d0x + d0y*d0y)

d1x=p1x - x

d1y=p1y - y

q1=-g*m1*w/sqrt(d1x*d1x + d1y*d1y)

d2x=p2x - x

d2y=p2y - y

q2=-g*m2*w/sqrt(d2x*d2x + d2y*d2y)

d3x=p3x - x

d3y=p3y - y

q3=-g*m3*w/sqrt(d3x*d3x + d3y*d3y)

d4x=p4x - x

d4y=p4y - y

q4=-g*m4*w/sqrt(d4x*d4x + d4y*d4y)

d5x=p5x - x

d5y=p5y - y

q5=-g*m5*w/sqrt(d5x*d5x + d5y*d5y)

k=e - q0 - q1 - q2 - q3 - q4 - q5

k=if(k < 0.0, 0, k)

s=sqrt(2*k/w)/sqrt(u*u + v*v)

u=u*s

v=v*s

4、就公式来说的话,那就是上面的公式了.这么一大坨,我写完了都不想多看一眼.

再来一个:

5、标准映射方程

这是一种非线性迭代方程,其公式为:

x'=mod(x + y, PI*2.0)

y'=mod(y - a*sin(x + y), PI*2.0)

迭代上千万次后,得到的所有(x,y)坐标可以生成一幅图像.

其中mod为求余函数,PI为圆周率.a为参数,不同的a值会生成不同的图像.如:

(1)a=1.0

                                                                     

(2)a=2.336897

                                                                 

 (3)a=-1.137700

                  好丑的图像,当我看到它们时,想起闻一多的一首诗<死水>

这是一沟绝望的死水,

清风吹不起半点漪沦。

不如多仍些破铜烂铁,

爽性泼你的剩菜残羹。

也许铜的要绿成翡翠,

铁罐上绣出几瓣桃花。

再让油腻织一层罗绮,

霉菌给他蒸出云霞。

让死水酵成一沟绿酒,

飘满了珍珠似的白沫;

小珠们笑声变成大珠,

又被偷酒的花蚊咬破。

那么一沟绝望的死水,

也就跨得上几分鲜明。

如果青蛙耐不住寂寞,

又算死水叫出了歌声。

这是一沟绝望的死水,

这里断不是美的所在,

不如让给丑恶来开垦,

看他造出个什么世界。

修改下这种方程

x=mod(x + a*sin(y),2*PI)

y=mod(y + x,2*PI)

生成了如下图像:

                                               

 (4)a=-2.306998

                                                                  (5)a=-2.312299

(6)第二种修改,添加随机扰动

t=mod(x + y, PI*2.0)

y=mod(y - a*sin(x + y), PI*2.0)

x=t+rand2(-r,r)

其中rand2(a,b)是一个函数用于随机生成一个在a到b之间的实数a=1.003500,r=0.001000

                  (7)第三种修改

x=x + a*sin(y)

y=y + x + rand2(-r,r)

a=-0.509599

r=0.001000

[责任编辑:刘宇宏]

公式 图像 恐怖 数学建模

我要评论( 网友评论仅供其表达个人看法,并不表明本站同意其观点或证实其描述。)
用户名: 快速登录

全部评论0条)

关于我们 共建单位 联系方式