• python打印朱莉娅集合


    # -*- coding: utf-8 -*-
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    
    # 複素数列の計算回数を出力する関数loopmax
    def loopmax(z, c):
        # 複素数列の初項
        z_next = z
    
        # 最大計算回数
        num = 1000
    
        # 計算回数まで計算
        for i in range(1, num + 1):
            # 発散しない限り
            if abs(z_next) <= 2:
                # 次の項を計算
                z = z_next
                z_next = z ** 2 + c
            else:
                # 発散したら終了
                break
    
        # 発散した際の計算回数を返す
        return i
    
    
    # 複素平面上のloopmaxの結果を配列で出力する関数calc_n
    def calc_n(x_min, x_max, y_min, y_max, a, b, num):
        # 実数軸の座標を等間隔でx_minからx_maxまで定義
        x_array = np.linspace(x_min, x_max, num)
    
        # 虚数軸の座標を等間隔でy_minからy_maxまで定義
        y_array = np.linspace(y_min, y_max, num)
    
        # 複素平面の定義(複素数なのでdtype=np.complex)
        z_array = np.zeros((num, num), dtype=np.complex)
    
        # 各座標でのnを格納する配列
        n_array = np.zeros((num, num))
    
        # a, bから定数の複素数cを定義
        c = a + b * 1j
    
        # 複素平面座標とその座標における計算回数の格納
        for i in range(0, num):
            for j in range(0, num):
                # 複素平面座標
                z_array[j, i] = x_array[i] + y_array[j] * 1j
    
                # 計算回数の配列
                n_array[j, i] = loopmax(z_array[j, i], c)
    
        # 計算回数を格納した配列を出力
        return n_array
    
    
    # ジュリア集合を描く関数show_patterns
    def show_patterns(U, ax=None):
        ax.imshow(U, cmap=plt.cm.hot,
                  interpolation='bilinear')
        ax.set_axis_off()
    
    
    # メイン関数
    if __name__ == "__main__":
        # プロットする区間を選択
        x_min = -1.5
        x_max = 1.5
        y_min = -1.5
        y_max = 1.5
    
        # 定数項のパラメータ
        a = 0.285
        b = 0.01
    
        # 複素平面上に定義する各軸の座標の個数
        num = 500
    
        # 計算回数の配列を上記のパラメータから出力
        n_array = calc_n(x_min, x_max, y_min, y_max, a, b, num)
    
        # プロット
        fig, ax = plt.subplots(1, 1, figsize=(8, 8))
        show_patterns(n_array, ax=ax)
    
        # 画像の保存
        plt.savefig('Julia.png', dpi=1500)
    
    
  • 相关阅读:
    2018年NGINX最新版高级视频教程
    PHP 高级工程面试题汇总
    2018年最全Go语言教程零基础入门到进阶实战视频
    Mac和window生成ssh和查看ssh key
    33款可用来抓数据的开源爬虫软件工具
    什么是CMS系统
    对于做需求分析时的一些心得
    WPF和Silverlight的关系
    My97日期控件 My97 DatePicker Ver 3.0 正式版(转)
    HTML教程HTML技巧层的高级应用
  • 原文地址:https://www.cnblogs.com/c-x-a/p/10341981.html
Copyright © 2020-2023  润新知