Wie zeichne ich eine Lineare Funktion in Python?

3 Antworten

Turtlegraphik habt ihr also schon gelernt? Dann ist das ja wohl kein riesiges Problem. Einen Funktionswert auszurechnen ist kein Thema. Um eine Funktion zu zeichen musst du nur den x-Wert den gewünschten Wertebereich überstreichen lassen, das geht mit range().

Hier ein ganz simples Programm für den Zweck. Wir verwenden einen Skalierungsfaktor, damit das Resultat auf dem Schirm nicht zu winzig ist.

from turtle import Turtle

k = 1.2
d = 2
scale = 10

t = Turtle()
t.penup()

for x in range(-10, +10):
    y = k * x + d
    t.goto(x*scale, y*scale)
    t.pendown()

Du kannst dich jetzt natürlich noch etwas austoben und die Achsen dazumalen, damit es hübscher wird. Daran solltest du aber nicht mehr scheitern. Außerdem könnte man feststellen, dass bei einer linearen Funktion zwei Punkte völlig reichen würden (hier also die x-Werte -10 und +10), du darfst das gern anpassen bzw. vereinfachen.

Natürlich wäre das mit matplotlib deutlich sinnvoller zu lösen, die ist genau für den Zweck gedacht. Aber das Modul (+ seine Abhängigkeiten) muss in der Regel zusätzlich installiert werden.

Und weil ich in der Klasse nicht mit vielen befreundet bin und eigentlich alles arschlöcher sind, will es mir keiner sagen.

Vielleicht solltest du nicht davon ausgehen, dass alle Arschlöcher sind.

(...) das k und d einer linearen Funktion einliest (...)

Zum Einlesen von Eingaben (Zeichenketten) aus der Konsole gibt es die input-Funktion. Die Eingabe musst du entsprechend deinen Anforderungen noch konvertieren.

Beispiel:

data = input("Enter some number")
numeric_data = float(data)
(...) und damit den Graphen der linearen Funktion im Intervall -10 bis + 10 zeichnet. (...)

Folglich brauchst du erst einmal Start- und Endpunkt für den Graph. Setze dafür die Eingaben in die Formel der linearen Funktion und berechne das Ergebnis einmal für die erste und einmal für die zweite Intervallgrenze.

Wir benutzen aber so ein Programm das heißt Thonny und da funktioniert das alles nicht (...)

Doch, tut es. Unter dem Menüpunkt Tools > Manage packages kannst du nach einem Package wie matplotlib suchen und es installieren. Nach der Installation kannst du die notwendigen Module importieren.

Beispielprogramm:

import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4, 5])
plt.ylabel('Example graph')
plt.show() 

Dieses Beispiel würde dir bereits einen linearen Graphen zeichnen, bei dem zu den gegebenen y-Werten (1-5) die x-Werte automatisch berechnet werden. Wenn du je y-Wert den x-Wert selbst bestimmen möchtest, kannst du der plot-Funktion eine zweite Liste (die x-Werte) übergeben.

(...) mit diesem Turtle modul ist das viel zu ungenau und es dauert zu lange.

Beim turtle-Modul kannst du ganz genau festlegen, wie viele Schritte der Stift zeichnen soll. Auch das zweite Argument bezweifle ich.

Und weil ich in der Klasse nicht mit vielen befreundet bin (...) will es mir keiner sagen.

Ich gehe davon aus, dass ihr im Unterricht eine Zeichenmethode kennengelernt oder angeraten bekommen habt. Wenn das beispielsweise bisher das turtle-Modul war, ist sicherlich auch die Erwartungshaltung, die Aufgabe damit zu lösen.

Andernfalls ist dein Lehrer immer ein geeigneter Ansprechpartner.

Hallo.

Für solche Fragen eignet sich ChatGPT. Und ja, auch bei Thonny kannst du einfach matplotlib und numpy nutzen.

import matplotlib.pyplot as plt
import numpy as np

# Frage k und d ab
k = float(input("k: "))
d = float(input("d: "))

# Definieren Sie die lineare Funktion
def linear_function(x):
    return k*x + d

# Erzeugen Sie x-Werte
x = np.linspace(-10, 10, 400)

# Erzeugen Sie y-Werte
y = linear_function(x)

# Zeichnen Sie die Funktion
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Lineare Funktion')
plt.grid(True)
plt.show()

Wenn das zu langsam ist, nutze das Beispiel von @jo135

Woher ich das weiß:Studium / Ausbildung – Diplom Wirtschaftsinformatiker