Tập tin:Wiener-process-zoom-animation.gif

Từ testwiki
Bước tới điều hướng Bước tới tìm kiếm
Wiener-process-zoom-animation.gif (416×272 điểm ảnh, kích thước tập tin: 614 kB, kiểu MIME: image/gif, có lặp, 80 khung ảnh, 4,0 s)

Tập tin này được lưu ở Wikimedia Commons và nó có thể được sử dụng ở các dự án khác. Lời miêu tả của tập tin tại trang mô tả được hiển thị dưới đây.

Miêu tả

Miêu tả
English: Animation of a Wiener process (or red noise) plot with continuous zoom towards zero. The signal is self-similar, so the basic properties remain constant during the zoom. The animation repeats at a scaling factor of 4 in x and 2 in y. The plot uses a finite number of sampling points, which are continuously added during the zoom, to keep the density constant.
Ngày
Nguồn gốc Tác phẩm được tạo bởi người tải lên
Tác giả Geek3
GIF genesis
InfoField
 This plot was created with Matplotlib.
Mã nguồn
InfoField

Matplotlib source code

The plot was generated with Matplotlib
#! /usr/bin/env python3
# -*- coding:utf8 -*-

import matplotlib.pyplot as plt
from matplotlib import ticker
from matplotlib import animation
import numpy as np
from math import *

plt.rcParams['font.sans-serif'] = 'DejaVu Sans'
np.random.seed(6)

fname = "Wiener-process-zoom-animation"
nframes = 80
fx = 0.25
nsamples = int(1000 / fx)

# create pseudo-random sequence for continous adding of time points
golden = (sqrt(5) - 1) / 2
t_unsorted = (golden * np.arange(nsamples)) % 1
sort_idx = np.argsort(t_unsorted)
t = t_unsorted[sort_idx]
randnorm = np.random.normal(0, 1, nsamples)
X = np.zeros(nsamples)
X[-1] = sqrt(t[-1]) * randnorm[-1]
X[int(fx * nsamples)] = sqrt(fx) * X[-1]

# use Brownian bridges
for i in range(int(fx * nsamples) + 1, nsamples - 1):
    mean = X[i-1] + (t[i] - t[i-1]) / (t[-1] - t[i-1]) * (X[-1] - X[i-1])
    var = (t[-1] - t[i]) * (t[i] - t[i-1]) / (t[-1] - t[i-1])
    X[i] = mean + sqrt(var) * randnorm[i]

# use self-similar signal for small t-values
mask0 = sort_idx < nsamples * fx**(1 - 1 / nframes)
t0, X0 = t[mask0], X[mask0]
for i in range(int(fx * nsamples) - 1, 0, -1):
    tfx = t[i] / fx
    i2 = np.searchsorted(t0, tfx)
    i1 = i2 - 1
    if tfx - t0[i1] < t0[i2] - tfx:
        X2 = X0[i1]
    else:
        X2 = X0[i2]
    X[i] = sqrt(fx) * X2
    X0 = X[mask0] # update masked X0 from X (a bit inefficient)

ylim = -0.6, 1.4
def animate(nframe):
    plt.cla()
    xscale = fx**(nframe / nframes)
    yscale = sqrt(xscale)
    mask = sort_idx < nsamples * fx / xscale
    plt.plot(t[mask], X[mask], '-')
    plt.xlim(0, xscale)
    plt.ylim(ylim[0] * yscale, ylim[1] * yscale)
    plt.grid(True)
    plt.xlabel('t')
    plt.ylabel('X')
    if xscale > sqrt(fx):
        muly = 0.125
    else:
        muly = 0.0625
    plt.gca().xaxis.set_major_locator(ticker.MultipleLocator(muly))
    plt.gca().yaxis.set_major_locator(ticker.MultipleLocator(0.3))
    plt.gca().axes.xaxis.set_ticklabels([])
    plt.gca().axes.yaxis.set_ticklabels([])


fig = plt.figure(figsize=(520 / 90.0, 340 / 90.0), dpi=72)
plt.xlim(0, 1)
plt.ylim(ylim[0], ylim[1])
plt.grid(True)
plt.xlabel('t')
plt.ylabel('X')
plt.gca().axes.xaxis.set_ticklabels([])
plt.gca().axes.yaxis.set_ticklabels([])
plt.tight_layout()
anim = animation.FuncAnimation(fig, animate, frames=nframes)
anim.save(fname + '.gif', writer='imagemagick', fps=20)

Giấy phép

Tôi, người giữ bản quyền tác phẩm này, từ đây phát hành nó theo giấy phép sau:
w:vi:Creative Commons
ghi công chia sẻ tương tự
Tập tin này được phát hành theo Giấy phép Creative Commons Ghi công–Chia sẻ tương tự 4.0 Quốc tế.
Bạn được phép:
  • chia sẻ – sao chép, phân phối và chuyển giao tác phẩm
  • pha trộn – để chuyển thể tác phẩm
Theo các điều kiện sau:
  • ghi công – Bạn phải ghi lại tác giả và nguồn, liên kết đến giấy phép, và các thay đổi đã được thực hiện, nếu có. Bạn có thể làm các điều trên bằng bất kỳ cách hợp lý nào, miễn sao không ám chỉ rằng người cho giấy phép ủng hộ bạn hay việc sử dụng của bạn.
  • chia sẻ tương tự – Nếu bạn biến tấu, biến đổi, hoặc tạo tác phẩm mới dựa trên tác phẩm này, bạn chỉ được phép phân phối tác phẩm mới theo giấy phép y hệt hoặc tương thích với tác phẩm gốc.

Chú thích

Ghi một dòng giải thích những gì có trong tập tin này
Animation of infinite zoom into a Wiender process (red noise)

Khoản mục được tả trong tập tin này

mô tả

Wiener process Tiếng Anh

Brownian noise Tiếng Anh

272 pixel

checksum Tiếng Anh

0b7511474ce81fa352f608789eb8d0110f063578

Lịch sử tập tin

Nhấn vào ngày/giờ để xem nội dung tập tin tại thời điểm đó.

Ngày/GiờHình xem trướcKích cỡThành viênMiêu tả
hiện tại17:08, ngày 10 tháng 12 năm 2022Hình xem trước của phiên bản lúc 17:08, ngày 10 tháng 12 năm 2022416×272 (614 kB)wikimediacommons>Geek3Uploaded own work with UploadWizard

Trang sau sử dụng tập tin này: