Python绘制牛奶冻曲线(高木曲线)案例
作者:微小冷 发布时间:2022-04-05 16:35:08
标签:Python,绘制,曲线
前言:
牛奶冻曲线(blancmange curve),因在1901年由高木贞治所研究,又称高木曲线。
在单位区间内,牛奶冻函数定义为:
分形曲线的轮廓会随着阶数的增多而填充细节,即对于下面的来说, N的变化会增添曲线的自相似特性
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()
如图所示:
牛奶冻曲线是一种典型的分形曲线,即随着区间的不断缩小,其形状几乎不发生什么变化,例如更改自变量的范围,令
x = np.arange(0.25,0.5,1e-3).reshape(-1,1)
最终得到的牛奶冻曲线在观感上是没什么区别的。
接下来绘制一下,当区间发生变化时,牛奶冻曲线的变化过程
绘图代码为:
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()
来源:https://blog.csdn.net/m0_37816922/article/details/126517261


猜你喜欢
- 本文实例讲述了Python实现的重启关机程序的方法,对Python程序设计有一定的参考价值。具体方法如下:实例代码如下:#!/usr/bin
- 首先呢我去安装了一个那个pytorch,然后导入一下发现:连numpy都找不到,于是我表示很生气重新安装,它说安装过了,地址是balabal
- 近来学习tp5的过程中,项目中有个发帖功能,选择主题图片。如下:利用原始的文件上传处理,虽然通过原始js语句能实时显示上传图片,但是这样的话
- golang中GOPATH的简单理解 1、为什么要配置GOPATH配置GOPATH的用意是为了方便项目的部署和构建,以及可以直接使用go g
- Python实现12306火车票抢票系统效果图如下所示:具体代码如下所示:import urllib.request as request
- 本文实例为大家分享了js选项卡切换的具体代码,可以手动切换,另设置定时器可使其自动切换,供大家参考,具体内容如下效果如图:具体代码:<
- 百度地图开放平台进入百度地图开放平台后,登陆用户,点击上方的控制台,按照提示进行激活后创建服务端类型的应用,应用名任意设置,其中白名单校验不
- 130 :文件格式不正确。(还不是很清楚错误的状况) 145 :文件无法打开。 1005:创建表
- 本文实例讲述了jQuery实现的简单分页。分享给大家供大家参考,具体如下:<!DOCTYPE html PUBLIC "-/
- 装饰器模式(Decorator Pattern)是什么装饰器模式是一种结构型模式,它允许你在运行时为一个对象动态地添加新的行为,而不影响其原
- 本文实例讲述了python中列表元素连接方法join用法。分享给大家供大家参考。具体分析如下:创建列表:>>> music
- 本文实例讲述了Python实现socket非阻塞通讯功能。分享给大家供大家参考,具体如下:非阻塞需要多线程编程服务端方式1: 使用threa
- 相对于C++的继承编写,Python更简洁,而且效率也是很高的,下面编写一个简单Python的继承例子。#!/usr/bin/python&
- tensorflow在保存权重模型时多使用tf.train.Saver().save 函数进行权重保存,保存的ckpt文件无法直接打开,不利
- 进程、线程和协程进程的定义:进程,是计算机中已运行程序的实体。程序本身只是指令、数据及其组织形式的描述,进程才是程序的真正运行实例。线程的定
- 需要用到2个库,requestsocks5-http-client/lib/Agent/或socks5-https-client/lib/A
- 在对dataframe进行分析的时候会遇到需要分组计数,计数的column中属性有重复,但又需要仅对不重复的项计数(即重复N次出现的项只计1
- 算法简介鸡群算法,缩写为CSO(Chicken Swarm Optimization),尽管具备所谓仿生学的背景,但实质上是粒子群算法的一个
- 布局管理就是管理图形窗口中各个部件的位置和排列。图形窗口中的大量部件也需要通过布局管理,对部件进行整理分组、排列定位,才能使界面整齐有序、美
- 外键查询一个表的主键是哪些表的外键SELECTTABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME,REFERENC