ich möchte die Größe S(a1,a2 ; x, y) für verschiedene Werte von a1, a2 in einem in einem dreidimensionalen Plot darstellen. S ist die https://de.wikipedia.org/wiki/Methode_der_kleinsten_Quadrate.
Ich habe einen Code geschrieben, der für ein gegebenes Paar (a1,a2) die Größe S berechnet, aber ich weiß nicht wie meshgrid-Funktion verwenden soll, um einen Surface-Plott https://matplotlib.org/mpl_toolkits/mpl ... orial.html zu erstellen.
Ich hoffe mir kann jemand weiterhelfen.
Der Beispiel-Code um S für ein Paar (a1,a2) zu berechnen:
Code: Alles auswählen
from numpy import array, exp, linspace
import matplotlib.pyplot as plt
x = array([1,2,3,4,5,6])
y = array([10,5.49,0.89, -0.14, -1.07, 0.84])
a = array([1,2])
def modell(x, a):
return c1 * exp(-c2 * x)
def residuen(x, y, a):
return modell(x, a) - y
def S(x, y, a):
return 0.5 * sum(residuen(x, y, a) ** 2)
# Mit der jetzigen Definition kann S nur für ein Paar berechnet werden
# Um meshgrid anzuwenden: a1 = linspace(-100,100,1000), a1 = linspace(-100,100,1000)
# A1, A2 = np.meshgrid(a1, a1) muss die Funktion S umdefiniert werden, aber ich weiß
# nicht wie :(