Fichier d’origine(Fichier SVG, nominalement de 720 × 540 pixels, taille : 37 kio)

Ce fichier et sa description proviennent de Wikimedia Commons.

Description

Description
English: Iterates of the sine function (blue), in the first half-period.     Half-iterate (orange), i.e., the sine's functional square root; the functional square root of that, the quarter-iterate (black) above it, up until the 1/64 iterate; and six integral iterates below it, starting with the second iterate (red). The green envelope triangle represents the limiting null iterate, the sawtooth function serving as the starting point leading to the sine function. The dashed black function is iterate -1, or the inverse of sine (arc sine).

Python source code:

import numpy as np
import matplotlib.pyplot as plt
from scipy import interpolate

x = np.linspace(0, np.pi, 10000)

def double_iter(a):
    d = np.array(a)
    interpolated = interpolate.interp1d(x, a, kind="linear")
    
    for i in range(len(a)):
        d[i] = interpolated(min(x[-1], a[i]))
        
    return d

def improve(candidate, f):
    improved = np.empty_like(candidate)
    
    for i in range(len(f)):
        naive_newval = np.argmin(np.abs(candidate[:len(f)/2]-f[i])) * np.pi/len(f)
        improved[i] = candidate[i] + 0.1*(naive_newval - candidate[i])

    return improved

def half_iter(f):
    half = np.array(f)
    mean_error = float("inf")

    while mean_error > 1e-4:
        half = improve(half, f)
        mean_error = np.mean(np.abs(double_iter(half)-f))
        print mean_error 

    return half


iter_1 = np.sin(x)
iter_minus1 = np.arcsin(x) 

iter_0 = np.concatenate((x[0:len(x)/2], np.flipud(x[0:len(x)/2])), axis=1)
iter_2 = double_iter(iter_1)
iter_4 = double_iter(iter_2)
iter_8 = double_iter(iter_4)
iter_16 = double_iter(iter_8)
iter_32 = double_iter(iter_16)
iter_64 = double_iter(iter_32)

iter_1_2 = half_iter(iter_1)
iter_1_4 = half_iter(iter_1_2)
iter_1_8 = half_iter(iter_1_4)
iter_1_16 = half_iter(iter_1_8)
iter_1_32 = half_iter(iter_1_16)
iter_1_64 = half_iter(iter_1_32)

n = 10
plotx = x[::n]

plt.plot(plotx, iter_1[::n],"b",linewidth=2)
plt.plot(plotx, iter_2[::n],"r")
plt.plot(plotx, iter_4[::n],"k")
plt.plot(plotx, iter_8[::n],"k")
plt.plot(plotx, iter_16[::n],"k")
plt.plot(plotx, iter_32[::n],"k")
plt.plot(plotx, iter_64[::n],"k")

plt.plot(plotx, iter_1_2[::n],"orange")
plt.plot(plotx, iter_1_4[::n],"k")
plt.plot(plotx, iter_1_8[::n],"k")
plt.plot(plotx, iter_1_16[::n],"k")
plt.plot(plotx, iter_1_32[::n],"k")
plt.plot(plotx, iter_1_64[::n],"k")

plt.plot(plotx, iter_0[::n],"g")
plt.plot(x, iter_minus1,"k--")

plt.ylim([0,np.pi/2])
plt.xlim([0,np.pi])

plt.tight_layout(pad=0.15)
plt.savefig("Sine_iterations.svg")
Date
Source Travail personnel
Auteur Qorilla

Conditions d’utilisation

Moi, en tant que détenteur des droits d’auteur sur cette œuvre, je la publie sous la licence suivante :
w:fr:Creative Commons
paternité partage à l’identique
Vous êtes libre :
  • de partager – de copier, distribuer et transmettre cette œuvre
  • d’adapter – de modifier cette œuvre
Sous les conditions suivantes :
  • paternité – Vous devez donner les informations appropriées concernant l'auteur, fournir un lien vers la licence et indiquer si des modifications ont été faites. Vous pouvez faire cela par tout moyen raisonnable, mais en aucune façon suggérant que l’auteur vous soutient ou approuve l’utilisation que vous en faites.
  • partage à l’identique – Si vous modifiez, transformez, ou vous basez sur cette œuvre, vous devez distribuer votre contribution sous la même licence ou une licence compatible avec celle de l’original.

Légendes

Ajoutez en une ligne la description de ce que représente ce fichier

Éléments décrits dans ce fichier

dépeint

Historique du fichier

Cliquer sur une date et heure pour voir le fichier tel qu'il était à ce moment-là.

Date et heureVignetteDimensionsUtilisateurCommentaire
actuel3 avril 2015 à 03:49Vignette pour la version du 3 avril 2015 à 03:49720 × 540 (37 kio)QorillaUser created page with UploadWizard

La page suivante utilise ce fichier :

Usage global du fichier

Les autres wikis suivants utilisent ce fichier :

Métadonnées