01曼德勃罗集合


曼德勃罗集合就是复平面上的点ccc,对于下面二次迭代方程收敛。

zn+1=zn2+cz_{n + 1} = z_n^2 + czn+1​=zn2​+c

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2020-06-10
#
# Note:
#============================================================from headm import *
import pylab as pl
from matplotlib             import cmdef iter_point(c):z = cfor i in range(1, 100):if abs(z) > 2: breakz = z*z+creturn idef draw_mandelbrot(cx, cy, d):x0, x1, y0, y1 = cx-d, cx+d, cy-d, cy+dy, x = ogrid[y0:y1:200j, x0:x1:200j]c = x + y*1jstart = time.process_time()mandelbrot = frompyfunc(iter_point, 1, 1)(c).astype(float)printf('Time=%f'%(time.process_time() - start))pl.imshow(mandelbrot, cmap=cm.jet, extent=[x0, x1, y0, y1])pl.gca().set_axis_off()x,y = 0.27322626, 0.595153338plt.subplot(231)
draw_mandelbrot(-0.5, 0, 1.5)for i in range(2, 7):pl.subplot(230+i)draw_mandelbrot(x, y, 0.2**(i - 1))pl.subplots_adjust(0.0, 0, 1, 1, 0.0, 0)
pl.show()#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================







02分形树叶


#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST2.PY                     -- by Dr. ZhuoQing 2020-06-10
#
# Note:
#============================================================from headm import *import numpy as np
import matplotlib.pyplot as pl
import time# 蕨类植物叶子的迭代函数和其概率值
eq1 = np.array([[0,0,0],[0,0.16,0]])
p1 = 0.01eq2 = np.array([[0.2,-0.26,0],[0.23,0.22,1.6]])
p2 = 0.07eq3 = np.array([[-0.15, 0.28, 0],[0.26,0.24,0.44]])
p3 = 0.07eq4 = np.array([[0.85, 0.04, 0],[-0.04, 0.85, 1.6]])
p4 = 0.85def ifs(p, eq, init, n):"""进行函数迭代p: 每个函数的选择概率列表eq: 迭代函数列表init: 迭代初始点n: 迭代次数返回值: 每次迭代所得的X坐标数组, Y坐标数组, 计算所用的函数下标"""# 迭代向量的初始化pos = np.ones(3, dtype=np.float)pos[:2] = init# 通过函数概率,计算函数的选择序列p = np.add.accumulate(p)rands = np.random.rand(n)select = np.ones(n, dtype=np.int)*(n-1)for i, x in enumerate(p[::-1]):select[rands<x] = len(p)-i-1# 结果的初始化result = np.zeros((n,2), dtype=np.float)c = np.zeros(n, dtype=np.float)for i in range(n):eqidx = select[i] # 所选的函数下标tmp = np.dot(eq[eqidx], pos) # 进行迭代pos[:2] = tmp # 更新迭代向量# 保存结果result[i] = tmpc[i] = eqidxreturn result[:,0], result[:, 1], cstart = time.clock()
x, y, c = ifs([p1,p2,p3,p4],[eq1,eq2,eq3,eq4], [0,0], 100000)
time.clock() - start
pl.figure(figsize=(6,6))
pl.subplot(121)
pl.scatter(x, y, s=1, c="g", marker="s", linewidths=0)
pl.axis("equal")
pl.axis("off")
pl.subplot(122)
pl.scatter(x, y, s=1,c = c, marker="s", linewidths=0)
pl.axis("equal")
pl.axis("off")
pl.subplots_adjust(left=0,right=1,bottom=0,top=1,wspace=0,hspace=0)
pl.gcf().patch.set_facecolor("#D3D3D3")
pl.show()#------------------------------------------------------------
#        END OF FILE : TEST2.PY
#============================================================

分形:一种计算出来的花朵相关推荐

  1. 机器学习的两种计算范式

    机器学习正处于一个交叉路口,两种计算范式齐头并进,即以计算为中心的计算,和以数据为中心的计算. 在以计算为中心的计算范式下,数据是在数据中心的实例上存储和分析的:而在以数据为中心的计算范式下,处理是在 ...

  2. 计算 java_两种计算Java对象大小的方法(转)

    原文:http://blog.csdn.net/iter_zc/article/details/41822719 另一篇类似文章:http://www.cnblogs.com/magialmoon/p ...

  3. 聊聊JVM(三)两种计算Java对象大小的方法

    普通对象的结构如下,按64位机器的长度计算 1. 对象头(_mark), 8个字节 2. Oop指针,如果是32G内存以下的,默认开启对象指针压缩,4个字节 3. 数据区 4.Padding(内存对齐 ...

  4. 阿里巴巴宣布架构调整;英伟达放大招!重磅发布 ​TensorRT 7 ,支持超千种计算变换;苹果、谷歌和亚马逊罕见结盟……...

    戳蓝字"CSDN云计算"关注我们哦!  嗨,大家好,重磅君带来的[云重磅]特别栏目,如期而至,每周五第一时间为大家带来重磅新闻.把握技术风向标,了解行业应用与实践,就交给我重磅君吧 ...

  5. 试列出种计算机组生产率的公式,农业机械化生产学思考题

    从可持续观点,今后在农业机械化发展中要注意什么问题? 7. 我国有哪些典型的机械化农业生产体系?试指出北京郊区在相同的自然经济条件下,为什么会出现一年两熟和两年三熟机械化生产体系?各有何优缺点? 第二 ...

  6. 微带线特性阻抗计算公式_几种计算微带线特性阻抗的方法.pdf

    几种计算微带线特性阻抗的方法 周刊 年第 期 ○信息技术教学与研究 2011 25 几种计算微带线特性阻抗的方法 段卓琦 大理学院 工程学院 云南 大理 ( , 671000 ) 摘 要 本文从不同的 ...

  7. 计算机主板上方便用户自己安装,一种计算机主板卡接安装锁紧装置的制作方法...

    本实用新型涉及计算机技术领域,具体为一种计算机主板卡接安装锁紧装置. 背景技术: 计算机俗称电脑,是一种用于高速计算的电子计算机,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能,是能够按照程 ...

  8. 线性代数 --- 三种计算矩阵的行列式的方法之二 莱布尼兹展开法(个人笔记扫描版)

    三种计算矩阵的行列式的方法之二 莱布尼兹展开法 在我的个人的线性代数学习中,我分别记录计算矩阵行列式的三种方法,1,LU分解法,2,拉普拉斯展开法,这里我介绍一下第三种方法,莱布尼兹展开法.   行列 ...

  9. 性能测试:一种计算 TP90、TP95 和 TP99 等水位线的方法

    文章目录 前言 计算方法 代码 前言 在性能测试中,我们经常会选择 TP90.TP95 或者 TP99 等水位线作为性能指标.在本文中,我们就给出一种计算 TP90.TP95 和 TP99 等水位线的 ...

最新文章

  1. Django 【补充】ORM多对多正向查询
  2. 在SAP WebIDE里开发一个React component
  3. java生产者消费者问题代码分析
  4. script 标签到底该放在哪里
  5. SQL查询语句大全(个人总结)
  6. linux sed 多个条件,sed多条件匹配
  7. 如何在固定时间自动刷新网页?
  8. win10文件名乱码但内容正常怎么办 win10文件名乱码怎么解决
  9. AndroidQ文件存储适配
  10. 微信小程序的一些基本知识,微信小程序开发
  11. 反病毒垃圾邮件,U-Mail邮件系统从容应对
  12. MCAL中GTM的配置
  13. python的猴子补丁(Monkey Patching)
  14. RewriteCond 和RewriteRule
  15. java编写分数加减法_JAVA 分数加减法
  16. 怎样才能提升广告投放效果?牢记这5点!
  17. 静默年华,许下春暖花开的心愿
  18. 关于pip安装virtualenv虚拟环境出现的Permission denied问题及虚拟环境安装步骤
  19. Pandas库离线安装总结
  20. 用Ubuntu16.04的vi编辑器编辑qt下的默认文件(/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf)

热门文章

  1. 将选定的文本对象左对齐、右对齐或对中
  2. mysql优化Analyze Table
  3. php-5.3.3安装注意问题
  4. gridview中动态绑定通过模板列增加的textbox。
  5. 数据管理的智能趋势(2):如何实现高效的数据管理
  6. Java字符类型练习
  7. mysql mediumtext longtext
  8. Java使用正则表达式
  9. Navicat for Oracle Cannot load OCI DLL
  10. struts2注解(转)