3-D Plott im Parameterraum

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Particledust
User
Beiträge: 15
Registriert: Samstag 1. Februar 2020, 09:17

Hallo,

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 :(
Antworten