File:MDKQ animA.png

Aus Wikimedia Commons, dem freien Medienarchiv
Zur Navigation springen Zur Suche springen

MDKQ_animA.png(450 × 350 Pixel, Dateigröße: 6 KB, MIME-Typ: image/png)

Bildtexte

Kurzbeschreibungen

Ergänze eine einzeilige Erklärung, was diese Datei darstellt.

Beschreibung

[Bearbeiten]
Beschreibung
Deutsch: Teilbild einer Animation Polynomapproximation unterschiedlicher Polynomordnung
Datum
Quelle MDKQ anim.gif
Urheber Johannes Kalliauer
Andere Versionen File:MDKQ_anim.gif

Lizenz

[Bearbeiten]
Ich, der Urheber dieses Werkes, veröffentliche es unter der folgenden Lizenz:
Creative Commons CC-Zero Diese Datei wird unter der Creative-Commons-Lizenz „CC0 1.0 Verzicht auf das Copyright“ zur Verfügung gestellt.
Die Person, die das Werk mit diesem Dokument verbunden hat, übergibt dieses weltweit der Gemeinfreiheit, indem sie alle Urheberrechte und damit verbundenen weiteren Rechte – im Rahmen der jeweils geltenden gesetzlichen Bestimmungen – aufgibt. Das Werk kann – selbst für kommerzielle Zwecke – kopiert, modifiziert und weiterverteilt werden, ohne hierfür um Erlaubnis bitten zu müssen.

Quellen: Skript zur Bildgenerierung

[Bearbeiten]

Erzeugungsskript, um die Grafik zu erstellen.

Anleitung

[Bearbeiten]

Benötigte Open-Source-Software:

Nach der Installation von Python den Quelltext in eine Datei mdkq.py kopieren und starten durch Doppelklicken oder in der Konsole durch Eingabe von

python mdkq.py

Python-Skript

[Bearbeiten]
 
Dieser Plot wurde mit Matplotlib erstellt.
#This source code is public domain
import numpy, pylab
from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt

x=[1,2,3,4,5,6,7]
y=[2.0,2.5,2.5,3.4,3.7,6.6,3]

for N in range(1,8):
    A=numpy.zeros((N,N))
    for i in range(N):
        for j in range(N):
            A[i,j]=sum(xi**(i+j) for xi in x)
    b=numpy.zeros((N))
    for i in range(N):
        b[i]=sum(xi**(i)*yi for xi,yi in zip(x,y))
    c=numpy.linalg.solve(A, b)
    xr=numpy.asarray(x)
    yr=numpy.sum([c[i]*xr**i for i in range(len(c))],axis=0)
    residuen=[]
    for i in range(len(x)): residuen+=[[xr[i],xr[i]],[y[i],yr[i]],'g-']
    xneu=numpy.linspace(0, 8, num=100)
    yneu=numpy.sum([c[i]*xneu**i for i in range(len(c))],axis=0)
    plt.clf()
    fig = plt.figure(figsize=(4.5, 3.5))
    fig.subplotpars.bottom=0.13
    y0=plt.plot(*residuen[:-3])
    plt.setp(y0, color='#80d080', linewidth=1.5)
    y0=plt.plot(*residuen[-3:])
    plt.setp(y0, color='#80d080', linewidth=1.5)
    y2=plt.plot(xneu,yneu,'r-')
    y1=plt.plot(x,y,'o')
    plt.xlabel('x')
    plt.ylabel('y')
    font = FontProperties()
    font.set_size('medium')
    leg = plt.legend([y1,y2,y0],['Messpunkte','Modellfunktion','Residuen'],frameon=True,loc='lower right',labelspacing=0.3,prop=font)
    plt.grid(True)
    plt.axis([0, 8, 0, 8])
    plt.text(1,7, "Polynomgrad "+str(N-1),bbox=dict(boxstyle="square,pad=0.5",color='white',ec='black',fill=True))
    #plt.show()
    plt.savefig('MDKQ_anim%i.png'%N)

Dateiversionen

Klicke auf einen Zeitpunkt, um diese Version zu laden.

Version vomVorschaubildMaßeBenutzerKommentar
aktuell20:48, 22. Jun. 2017Vorschaubild der Version vom 20:48, 22. Jun. 2017450 × 350 (6 KB)JoKalliauer (Diskussion | Beiträge)beschriftung
20:47, 22. Jun. 2017Vorschaubild der Version vom 20:47, 22. Jun. 2017450 × 350 (6 KB)JoKalliauer (Diskussion | Beiträge)

Keine Seiten verwenden diese Datei.

Globale Dateiverwendung

Die nachfolgenden anderen Wikis verwenden diese Datei: