Seite 1 von 1

Daten aus for-Schleifen verwenden und plotten

Verfasst: Dienstag 18. Mai 2021, 18:51
von Ishmeet Vohra
Hallo Zusammen,

ich bin ein kompletter Anfänger in Python und hätte folgende Frage:
Ich habe zwei for-schleifen. Diese lieferen mir jeweils10 Einträge und ich möchte die Einträge(Zahlen) graphisch darstellen.

Code: Alles auswählen

print("Kettenbruchdarstellung")
x_kb=1
for i in range(1,11):
    x_kb=1+(1/x_kb)


    print("i=%4d x=%.12f"% (i,x_kb))


 
    
print("Kettenwurzeldarstellung")
x_kw=1
for i in range(1,11):
    x_kw=np.sqrt(1+x_kw)

    print("i=%4d x=%.12f"% (i,x_kw))

Jetzt ist die Frage wie mache ich das am besten? Vielleicht könnte man die Einträge in eine Liste umwandeln und dann plotten. Wie das geht wies ich aber auch nicht.
Zur Aufgabe: Es geht daraum graphisch zu zeigen das die Kettenbruchdarstellung der goldenen Zahl schneller gegen die goldene Zahl konvergiert als die Kettenwurzeldarstellung.
Wenn mir da Jemand weiterhelfen könnte, würde mir das sehr helfen:)

Re: Daten aus for-Schleifen verwenden und plotten

Verfasst: Dienstag 18. Mai 2021, 19:24
von __blackjack__
@Ishmeet Vohra: In der Python-Dokumentation gibt es ein Grundlagentutorial, und die übliche Bibliothek zum Plotten ist Matplotlib. Die hat auch eine recht umfangreiche Dokumentation.

Re: Daten aus for-Schleifen verwenden und plotten

Verfasst: Mittwoch 19. Mai 2021, 09:00
von tonikae
Im einfachsten Fall so:

Code: Alles auswählen

import numpy as np
import matplotlib.pyplot as plt
tmp=kettenbruch=kettenwurzel=[]

print("Kettenbruchdarstellung")
x_kb=1
for i in range(1,11):
    x_kb=1+(1/x_kb)
    tmp.append(x_kb)
    print("i=%4d x=%.12f"% (i,x_kb))
kettenbruch=np.array(tmp)
    
print("Kettenwurzeldarstellung")
x_kw=1
tmp=[]
for i in range(1,11):
    x_kw=np.sqrt(1+x_kw)
    tmp.append(x_kw)
    print("i=%4d x=%.12f"% (i,x_kw))
kettenwurzel=np.array(tmp)

x=np.arange(kettenbruch.size)
plt.plot(x,kettenbruch,x,kettenwurzel)
plt.show()
Nur was zum angucken....
Aber wie schon anderweitig geraten, schaue dir die
Doku von Matplotlib an.Dann kannst du das so machen
wie du das haben willst.

Re: Daten aus for-Schleifen verwenden und plotten

Verfasst: Mittwoch 19. Mai 2021, 09:41
von Sirius3
@tonikae: warum werden tmp, kettenbruch und kettenwurzel alle mit der selben leeren Liste initialisiert, wobei letztebeiden gar nicht verwendet werden?
Die Umwandlung in ein array ist jetzt auch nicht zwingend, so dass man lesbarer das hier schreiben:

Code: Alles auswählen

import numpy as np
import matplotlib.pyplot as plt

print("Kettenbruchdarstellung")
x = 1
kettenbruch = []
for i in range(1,11):
    x = 1 + 1 / x
    kettenbruch.append(x)
    print("i=%4d x=%.12f"% (i, x))

print("Kettenwurzeldarstellung")
x = 1
kettenwurzel = []
for i in range(1,11):
    x = (1 + x) ** 0.5
    kettenwurzel.append(x)
    print("i=%4d x=%.12f"% (i, x))

x = np.arange(len(kettenbruch))
plt.plot(x, kettenbruch, x, kettenwurzel)
plt.show()

Re: Daten aus for-Schleifen verwenden und plotten

Verfasst: Donnerstag 27. Mai 2021, 15:01
von __blackjack__
Ich hatte am Wochenende mal wieder mit dem C64 rumgespielt und mir Tabellenkalkulation und Charts unter GEOS angeschaut. Dabei kam dieses Thema hier als Ideengeber gerade recht.

Berechnung der Zahlenreihen in GeoCalc:
Bild

Plotten in GeoChart:
Bild
🤓