1. # -*- coding: utf-8 -*-
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. # 複素数列の計算回数を出力する関数loopmax
  5. def loopmax(z, c):
  6. # 複素数列の初項
  7. z_next = z
  8. # 最大計算回数
  9. num = 1000
  10. # 計算回数まで計算
  11. for i in range(1, num + 1):
  12. # 発散しない限り
  13. if abs(z_next) <= 2:
  14. # 次の項を計算
  15. z = z_next
  16. z_next = z ** 2 + c
  17. else:
  18. # 発散したら終了
  19. break
  20. # 発散した際の計算回数を返す
  21. return i
  22. # 複素平面上のloopmaxの結果を配列で出力する関数calc_n
  23. def calc_n(x_min, x_max, y_min, y_max, a, b, num):
  24. # 実数軸の座標を等間隔でx_minからx_maxまで定義
  25. x_array = np.linspace(x_min, x_max, num)
  26. # 虚数軸の座標を等間隔でy_minからy_maxまで定義
  27. y_array = np.linspace(y_min, y_max, num)
  28. # 複素平面の定義(複素数なのでdtype=np.complex)
  29. z_array = np.zeros((num, num), dtype=np.complex)
  30. # 各座標でのnを格納する配列
  31. n_array = np.zeros((num, num))
  32. # a, bから定数の複素数cを定義
  33. c = a + b * 1j
  34. # 複素平面座標とその座標における計算回数の格納
  35. for i in range(0, num):
  36. for j in range(0, num):
  37. # 複素平面座標
  38. z_array[j, i] = x_array[i] + y_array[j] * 1j
  39. # 計算回数の配列
  40. n_array[j, i] = loopmax(z_array[j, i], c)
  41. # 計算回数を格納した配列を出力
  42. return n_array
  43. # ジュリア集合を描く関数show_patterns
  44. def show_patterns(U, ax=None):
  45. ax.imshow(U, cmap=plt.cm.hot,
  46. interpolation='bilinear')
  47. ax.set_axis_off()
  48. # メイン関数
  49. if __name__ == "__main__":
  50. # プロットする区間を選択
  51. x_min = -1.5
  52. x_max = 1.5
  53. y_min = -1.5
  54. y_max = 1.5
  55. # 定数項のパラメータ
  56. a = 0.285
  57. b = 0.01
  58. # 複素平面上に定義する各軸の座標の個数
  59. num = 500
  60. # 計算回数の配列を上記のパラメータから出力
  61. n_array = calc_n(x_min, x_max, y_min, y_max, a, b, num)
  62. # プロット
  63. fig, ax = plt.subplots(1, 1, figsize=(8, 8))
  64. show_patterns(n_array, ax=ax)
  65. # 画像の保存
  66. plt.savefig('Julia.png', dpi=1500)

python打印朱莉娅集合的更多相关文章

  1. Python列表、集合与字典(3)

    目录 一.列表 二.集合 三.字典 一.列表 1. 列表初识   列表的使用为处理特定顺序排列的数据提供了便利,列表元素可以是字母.数字或者其他信息,同时所加元素之间不存在任何关系.   在Pytho ...

  2. Python打印到屏幕_读取键盘输入

    Python打印到屏幕_读取键盘输入: print( ): 打印输出括号中的值 print("hello") # hello strs = 'hello' print(" ...

  3. Python打印格式化与字符串

    关于Python打印格式化与字符串,比较全面的总结,希望对大家有帮助~ # -*- coding: cp936 -*- ''' 打印格式 ''' print "a" print & ...

  4. python打印表格式数据,留出正确的空格和段落星号或注释

    python打印表格式数据,留出正确的空格,格式化打出 代码如下: def printPicnic(itemsDict,leftWidth,rightWidth): print('PICNIC ITE ...

  5. python爬虫工具集合

    python爬虫工具集合 大家一起来整理吧!强烈建议PR.这是初稿,总是有很多问题,而且考虑不全面,希望大家支持! 源文件 主要针对python3 常用库 urllib Urllib是python提供 ...

  6. Python序列结构--集合

    集合:元素之间不允许重复 集合属于Python无序可变序列,元素之间不允许重复 集合对象的创建与删除 直接将值赋值给变量即可创建一个集合 >>> a = {3,5}>>& ...

  7. python 打印 emoji

    python 打印 emoji 如需转发,请注明出处:小婷儿的python  https://www.cnblogs.com/xxtalhr/p/10486506.html 一.Unicode字符集: ...

  8. python打印列表的下标和值的例子:

    python打印列表的下标和值的例子: In [1]: list01=[1,4,5] In [10]: def funct01(ll):   ....:     for index,value in ...

  9. python 中的集合set

    python中,集合(set)是一个无序排列,可哈希, 支持集合关系测试,不支持索引和切片操作,没有特定语法格式, 只能通过工厂函数创建.集合里不会出现两个相同的元素, 所以集合常用来对字符串或元组或 ...

随机推荐

  1. Hbase学习03

    第3章 Hbase数据存储模型与工作组件 Data格式设计的的总体原则是按照需求要求,依据Hbase性能的相关标准规范和文件,并遵循“统一规范.统一数据模型.统一规划集群.分步实施”的原则,注重实际应 ...

  2. pom大全

    springboot集合 父模块 <parent> <groupId>org.springframework.boot</groupId> <artifact ...

  3. C#设计模式(8)——外观模式

    1.外观模式介绍 外观模式也被叫做门面模式,这种模式的作用是:隐藏系统的复杂性,并向客户端提供了一个可以访问系统的统一接口,这个统一的接口组合了子系统的多个接口.使用统一的接口使得子系统更容易被访问或 ...

  4. 转: Linux 系统调用sysconf 获取系统配置信息

    1.前言 linux提供了sysconf系统调用可以获取系统的cpu个数和可用的cpu个数. 2.sysconf  函数 man一下sysconf,解释这个函数用来获取系统执行的配置信息.例如页大小. ...

  5. Quartus II 中 Verilog 常见警告/错误汇总

    Verilog 常见错误汇总 1.Found clock-sensitive change during active clock edge at time <time> on regis ...

  6. bzoj千题计划310:bzoj5285: [Hnoi2018]寻宝游戏(思维题+哈希)

    https://www.lydsy.com/JudgeOnline/problem.php?id=5285 |0 和 &1 没有影响 若填‘|’,记为0,若填‘&’,记为1 先只考虑最 ...

  7. 绕不开的hadoop

    安装 jdk 1.8 # 官网下载可能比较慢,请自行搜索国内镜像源 wget http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a ...

  8. ifconfig: command not found(CentOS 7,其他的可以参考)

    ifconfig: command not found 查看path配置(echo相当于c中的printf,C#中的Console.WriteLine) 1 echo $PATH 解决方案1:先看看是 ...

  9. python 小技巧

    计算时间差,时间加减运算代码 最近在学习数据预处理,碰到日期型数据不会处理,上网查了下: Q:如何方便的计算两个时间的差,如两个时间相差几天,几小时等A:使用datetime模块可以很方便的解决这个问 ...

  10. Linux之文件恢复[extundelete,针对rm]

    [恢复过程] 1.下载+安装extundelete cd /tmp wget wget http://jaist.dl.sourceforge.net/project/extundelete/extu ...