0 Daumen
48 Aufrufe

Frage: Ich habe einige Datenpunkte gegeben (im Code im X und Y Array einsehbar) und soll hieraus ein Lagrange-Polynom dritter Ordnung bilden. Gesagt, getan, allerdings weiß ich nicht wie ich es mir nun ausgeben bzw printen kann? Vielen Dank im Voraus!



Code:


import numpy as np
import matplotlib.pyplot as plt


class LagrangePoly:

  def __init__(self, X, Y):
      self.n = len(X)
      self.X = np.array(X)
      self.Y = np.array(Y)

  def basis(self, x, j):
      b = [(x - self.X[m]) / (self.X[j] - self.X[m])
          for m in range(self.n) if m != j]
      return np.prod(b, axis=0) * self.Y[j]

  def interpolate(self, x):
      b = [self.basis(x, j) for j in range(self.n)]
      return np.sum(b, axis=0)


X = [0, 2, 5, 6]
Y = [0, 2, -3, 1]

Avatar von

1 Antwort

0 Daumen
 
Beste Antwort

Hallo staycrunchy. Deine Frage ist schon vier Tage alt und vielleicht nicht mehr aktuell. Jedenfalls geht es um das Plotten in Python. Es gibt zwei Dinge zu tun: Das Interpolationspolynom zu finden, und es zu plotten. Plotten geht so, Beispiel:

# -*- coding: cp1252 -*-
import matplotlib.pyplot as plt

# Daten definieren
x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]

# Plot erstellen
plt.plot(x, y, marker='o', linestyle='-')

# Achsenbeschriftungen
plt.xlabel('x')
plt.ylabel('y')

# Titel
plt.title('Plot der Daten')

# Gitter hinzufügen
plt.grid(True)

# Plot anzeigen
plt.show()

Das Ergebnis sieht so aus:


blob.png


Avatar vor von

Vielen Dank für die Antwort! :)

Gibt es zusätzlich noch die Möglichkeit das Polynom anzuzeigen zu lassen? Im Sinne von Polynom = 4,123 x^2 + .. usw

Hallo staycrunchy, vielen Dank für beste Antwort. Die habe ich glaub gar nicht verdient, weil ich nur eine Hälfte des Jobs gemacht habe. Ich dachte, das interessiert nach vier Tagen niemanden mehr. Aber jetzt, wo ich weiß, dass du interessiert bist, liefere ich dir noch die Polynominterpolation. Allerdings nicht mit Python, weil ich mit objekt-orientierter Programmierung in Python nicht vertraut bin. Stattdessen interpoliere ich auf die simple Art:

blob.png


Jetzt bist du dran. Bekommst du das gesuchte Interpolationspolynom heraus?

Vielen Dank, das hilft mir wirklich enorm weiter!

Den Rest bekomme ich vermutlich alleine hin :)

Bitte sehr. - Alles klar. Wenn du noch Fragen hast, einfach fragen.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community