脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python绘制牛奶冻曲线(高木曲线)案例

Python绘制牛奶冻曲线(高木曲线)案例

2022-08-26 18:45微小冷 Python

这篇文章主要介绍了Python绘制牛奶冻曲线(高木曲线)案例,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下

前言:

牛奶冻曲线(blancmange curve),因在1901年由高木贞治所研究,又称高木曲线。

在单位区间内,牛奶冻函数定义为:

Python绘制牛奶冻曲线(高木曲线)案例

分形曲线的轮廓会随着阶数的增多而填充细节,即对于下面的Python绘制牛奶冻曲线(高木曲线)案例来说, N的变化会增添曲线的自相似特性

Python绘制牛奶冻曲线(高木曲线)案例

import numpy as np
import matplotlib.pyplot as plt
s = lambda x : np.min([x-np.floor(x), np.ceil(x)-x],0)
x = np.arange(1000).reshape(-1,1)/1000
N = np.arange(30).reshape(1,-1)      #2^N已经很大了,精度足够
b = np.sum(s(2**N*x)/2**N,1)
plt.plot(b)
plt.show()

如图所示:

Python绘制牛奶冻曲线(高木曲线)案例

牛奶冻曲线是一种典型的分形曲线,即随着区间的不断缩小,其形状几乎不发生什么变化,例如更改自变量的范围,令

x = np.arange(0.25,0.5,1e-3).reshape(-1,1)

最终得到的牛奶冻曲线在观感上是没什么区别的。

接下来绘制一下,当区间发生变化时,牛奶冻曲线的变化过程

Python绘制牛奶冻曲线(高木曲线)案例

绘图代码为:

from aniDraw import *

# 三角波函数
s = lambda x : min(np.ceil(x)-x, x-np.floor(x))
s = lambda x : np.min([x-np.floor(x), np.ceil(x)-x],0)
x = np.arange(1000).reshape(-1,1)/1000
N = np.arange(30).reshape(1,-1)      #2^N已经很大了,精度足够
b = np.sum(s(2**N*x)/2**N,1)
fig = plt.figure(figsize=(12,8))
ax = fig.add_subplot()
# n为坐标轴参数
def bcFunc(n):
    st = 1/3 - (1/3)**n
    ed = 1/3 + (2/3)**n
    x = np.linspace(st,ed,1000).reshape(-1,1)
    b = np.sum(s(2**N*x)/2**N,1)
    return (x,b)

line, = ax.plot([],[],lw=1)

def animate(n):
    x,y = bcFunc(n)
    line.set_data(x,y)
    plt.xlim(x[0],x[-1])
    plt.ylim(np.min(y),np.max(y))
    return line, 

Ns = np.arange(1,10,0.1)
ani = animation.FuncAnimation(fig, animate, Ns, 
    interval=125, blit=False)
plt.show()

到此这篇关于Python绘制牛奶冻曲线(高木曲线)案例的文章就介绍到这了,更多相关Python 牛奶冻曲线内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/m0_37816922/article/details/126517261

延伸 · 阅读

精彩推荐
  • PythonPython最基本的数据类型以及对元组的介绍

    Python最基本的数据类型以及对元组的介绍

    这篇文章主要介绍了Python最基本的数据类型以及对元组的介绍,来自于IBM官方网站技术文档,需要的朋友可以参考下 ...

    脚本之家2862020-06-05
  • PythonPython爬虫框架scrapy实现的文件下载功能示例

    Python爬虫框架scrapy实现的文件下载功能示例

    这篇文章主要介绍了Python爬虫框架scrapy实现的文件下载功能,结合实例形式分析了scrapy框架进行文件下载的具体操作步骤与相关实现技巧,需要的朋友可以参...

    Charles.L11982021-03-26
  • Pythonpython不使用for计算两组、多个矩形两两间的iou方式

    python不使用for计算两组、多个矩形两两间的iou方式

    今天小编就为大家分享一篇python不使用for计算两组、多个矩形两两间的iou方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    学渣在路上6752020-04-15
  • Python最好的Python DateTime 库之 Pendulum 长篇解析

    最好的Python DateTime 库之 Pendulum 长篇解析

    datetime 模块是 Python 中最重要的内置模块之一,它为实际编程问题提供许多开箱即用的解决方案,非常灵活和强大。例如,timedelta 是我最喜欢的工具之一...

    Python学习与数据挖掘4152022-03-02
  • PythonPython实现的Google IP 可用性检测脚本

    Python实现的Google IP 可用性检测脚本

    这篇文章主要介绍了Python实现的Google IP 可用性检测脚本,本文脚本需要Python 3.4+环境,需要的朋友可以参考下 ...

    junjie3252020-06-10
  • Pythonpython实现百度文库自动化爬取

    python实现百度文库自动化爬取

    项目是合法项目,只是进行数据解析而已,不能下载看不到的内容.部分文档在电脑端不能预览,但是在手机端可以预览,所有本项目把浏览器浏览格式改...

    siyangbing12892021-10-19
  • PythonPython基于pyjnius库实现访问java类

    Python基于pyjnius库实现访问java类

    这篇文章主要介绍了Python基于pyjnius库实现访问java类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参...

    Tracydzf6682020-08-01
  • Pythonpython 内置模块详解

    python 内置模块详解

    模块是一个保存了Python代码的文件。模块能定义函数,类和变量。模块里也能包含可执行的代码,今天我们就来详细探讨下python内置的一些常用模块...

    沐小熊10022021-05-10