Programmieren – die besten Beiträge

Python und Physik: Harmonischer Oszillator graphisch bis n= 4?

Ich würde gerne die Vorlesungen nacharbeiten von der Uni. Wir hatten das Thema Harmonischer Oszillator und ich würde gerne so ein Plot erstellen, was ungefähr so aussieht

Allerdings bis n=4. Also einmal die stationären (psi_n(x)) und einmal die Aufenthaltswahrscheinlichkeit |psi_n(x)|^2

Wobei die Parabel das Potential darstellen soll.

Das problem ist, dass ich das irgendwie nicht richtig gesplottet kriege. Meine Graphen sehen immer wieder komisch aus und weiß einfach nicht warum. Kann jemand mir helfen das zu Plotten?

Also bis jetzt sieht mein Code so aus:

import numpy as np

import matplotlib.pyplot as plt

from scipy.special import hermite

# Konstanten

e = 1.602176634e-19 # Elementarladung [C]

m = 9.10938356e-31 # Masse des Elektrons

hq = 1.0545718e-34 # Wirkungsquantum

# Parameter

x0 = 1e-10 # Klassischer Umkehrpunkt in m

V0 = 7 * e # Potential bei einer Auslenkung um x0

NN = 4 # Anzahl von Wellenfunktionen

N = np.arange(NN)

c = V0 / x0**2 # Kraftkonstante Oszillators

omega = np.sqrt(c / m) # Frequenz des Oszillators

# Maximales benötigtes x

xmax = np.sqrt(2 * hq / (m * omega) * (NN + 1/2))

x = np.linspace(-xmax, xmax, 200)

y = np.sqrt(m * omega / hq) * x

# Potential

V = 0.5 * c * x**2

plt.figure(figsize=(7, 10))

plt.plot(x * 1e10, V / e, linewidth=1.5)

plt.xlabel('x [Angstrom]', fontsize=20)

plt.ylabel('V [eV]', fontsize=20)

plt.grid(True)

# Energieeigenwerte

E = np.zeros((NN, len(x)))

for n in N:

E[n, :] = (n + 0.5) * hq * omega / e

plt.plot(x * 1e10, E[N, :].T, 'g', linewidth=1.5)

plt.ylim(0, E[-1, 0] * 1.2)

#geraden Potenzreihen

a = np.zeros((len(N) + 2, len(N) + 1))

for n in range(0, len(N), 2):

a[0, n] = 1

for j in range(0, len(N), 2):

a[j + 2, n] = 1

# ungerade Potenzreihen

for n in range(1, len(N), 2):

a[1, n] = 1

for j in range(1, len(N), 2):

a[j + 2, n] = 1

# Wellenfunktionen psi(n,y)

psi = np.zeros((len(N) + 1, len(x)))

for n in range(len(N)):

psi[n, :] = 0

for j in range(len(N)):

psi[n, :] += a[j, n] * hermite(j)(y)

psi[n, :] *= np.exp(-y**2 / 2)

# Normierung der Wellenfunktionen

dx = x[1]-x[0]

psi[n, :] /= np.sqrt(dx * np.sum(psi[n, :]**2))

# Skalierung der Wellenfunktionen

dE = E[1, 0] - E[0, 0]

psi_max = np.max(psi)

fact = dE / psi_max / 2

plt.plot(x * 1e10, fact * psi[N, :].T + E[N, :].T, 'r', linewidth=2)

# Aufenthaltswahrscheinlichkeit

plt.figure(figsize=(7, 10))

plt.plot(x * 1e10, V / e, linewidth=1.5)

plt.xlabel('x [Angstrom]', fontsize=20)

plt.ylabel('V [eV]', fontsize=20)

plt.grid(True)

plt.ylim(0, E[-1, 0] * 1.2)

plt.plot(x * 1e10, E[N, :].T, 'g', linewidth=1.5)

# Skalierung der Aufenthaltswahrscheinlichkeiten

fact = dE / psi_max**2 / 1.2

plt.plot(x * 1e10, fact * (psi[N, :].T)**2 + E[N, :].T, 'k', linewidth=2)

plt.show()

(Bitte ignoriert erstmal die Zeilenabstände. )

Bild zum Beitrag
programmieren, harmonische Schwingung, Physik, Python, Quantenmechanik, spyder, Potential, Oszillator, physikalisch, Physikstudium, numerische Mathematik

🎦📷📸📹🎥🤳 Wie funktionieren die Kameras in den Supermärkten?

Ich arbeite in Edeka, habe ab und zu Zugriff ins Chef-Büro, aber verstehe bis heute nicht, wie die Überwachungs-Kameras dort genau funktionieren. Kann es mir villeicht jemand erklären, der schonmal damit zu tun hatte?

  1. Gibt es eine sogenannte "Gesichtserkennung"?
  2. Gibt es, sozusagen, eine "Gesichtsverfolgungsfunktion", mit der man durch das Gesicht eine bestimmte Person, ohne die Kameras jedes Mal manuell umzuschalten und nach der Person zu suchen, durch den gesamten Laden punktgenau den ganzen Tag hinterher-verfolgen kann?
  3. Hat der Chef zB. auch auf seinem Handy (statt am PC wie üblich) zugriff auf eine Video-Echtzeit-Überwachung?
  4. Sieht man durch die Kamera auch punktgenau bzw. deutlich, zB. was eine Person gerade in sein Handy getippt hat?
  5. Kann man auch Gespräche abhören?
  6. Wie groß ist der Video-Speicher bzw. wie lange bleiben die Aufnahmen gespeichert?
  7. Geben die Kameras zB. ein Signal, wenn jemand einen bestimmten Raum/Stelle im Raum betritt?
  8. Gibt es Kameras im gesammten hinteren Lagerbereich, oder nur die nötigsten?
  9. Gibt es Kameras im Klo?
  10. Gibt es auch zur Sicherheit versteckte "sehr kleine/Mini-" Kameras?
PC, Technik, Sicherheit, Bank, programmieren, System, Laden, Geschäftsführer, Büro, videoueberwachung, Chef, Detektiv, EDEKA, Geschäft, Ingenieur, Konto, ladendetektiv, Ladendiebstahl, Marktleiter, Spionage, Überwachung, Überwachungskamera, Überwachungstechnik, Verfolgung, boss, spionagesoftware, Überwachungssystem, VIdeoüberwachungskamera

stern im tkinter code?

Hallo,

ich soll eine Flagge mit Python und tkinter machen, ich wollte gern die Chile Flagge machen. Die Grundlage habe ich, jetzt fehlt nur noch der Stern. Im Internet hab ich also versucht einen Code zu finden, dieser funktioniert jedoch nicht und folgende Fehlermeldung taucht auf:

 %Run Flagge_Chile.py

Traceback (most recent call last):

 File "F:\WI\01_Python OOP WI\01_Objekte und Klassen\L1_1_Aufgabe_Flagge_HA_Chile.py", line 141, in <module>

  s.zeichnen()

 File "F:\WI\01_Python OOP WI\01_Objekte und Klassen\L1_1_Aufgabe_Flagge_HA_Chile.py", line 83, in zeichnen

  canvas.create_line(self.pos_x0, self.pos_y0, self.pos_x1, self.pos_y1, self.pos_x2, self.pos_y2, self.pos_x3, self.pos_y3, self.pos_x4, self.pos_y4, fill=self.farbe, outline=self.farbe)

 File "F:\S20\Programme\Thonny_3.2.3\lib\tkinter\__init__.py", line 2492, in create_line

  return self._create('line', args, kw)

 File "F:\S20\Programme\Thonny_3.2.3\lib\tkinter\__init__.py", line 2480, in _create

  *(args + self._options(cnf, kw))))

_tkinter.TclError: unknown option "-outline"

Das ist der Programmcode:

import tkinter as tk

class Rechteck:

  # Initialisiert ein Rechteck Objekt mit Standardwerten

  def __init__(self):

    self.breite = 0

    self.hoehe = 0

    self.pos_x = 0

    self.pos_y = 0

    self.farbe = "black"

  def __str__(self):

    return "Dies ist die Klasse 'Rechteck'"

  # Malt auf ein übergebenes "tk.Canvas" Objekt das Rechteck

  def zeichnen(self):

    x_ende = self.pos_x + self.breite

    y_ende = self.pos_y + self.hoehe

    canvas.create_rectangle(self.pos_x, self.pos_y, x_ende, y_ende, fill=self.farbe, outline=self.farbe)

class Kreis:

  def __init__(self):

    self.pos_x = 0

    self.pos_y = 0

    self.radius = 0

    self.farbe = "black"

  def __str__(self):

    return "Dies ist die Klasse 'Kreis'"

  # Malt auf ein übergebenes "tk.Canvas" Objekt den Kreis

  def zeichnen(self):

    # berechne Postion bis wohin gezeichnet werden muss, abhängig vom Radius

    x_beginn = self.pos_x - self.radius

    y_beginn = self.pos_y - self.radius

    x_ende = self.pos_x + self.radius

    y_ende = self.pos_y + self.radius

    canvas.create_oval(x_beginn, y_beginn, x_ende, y_ende, fill=self.farbe, outline=self.farbe)

     

class Stern:

  def __init__(self):

    self.pos_x0 = 0

    self.pos_y0 = 0

    self.pos_x1 = 0

    self.pos_y1 = 0

    self.pos_x2 = 0

    self.pos_y2 = 0

    self.pos_x3 = 0

    self.pos_y3 = 0

    self.pos_x4 = 0

    self.pos_y4 = 0

    self.farbe = "black"

    self.outline = "black"

     

  def __str__(self):

    return "Dies ist die Klasse 'Stern'"

     

  def zeichnen(self):

    canvas.create_line(self.pos_x0, self.pos_y0, self.pos_x1, self.pos_y1, self.pos_x2, self.pos_y2, self.pos_x3, self.pos_y3, self.pos_x4, self.pos_y4, fill=self.farbe, outline=self.farbe)

     

if __name__ == '__main__':

  # GUI Klasse initialisieren

  application = tk.Tk()

  # Hinzufügen einer Zeichenfläche

  canvas = tk.Canvas(application, width=600, height=400)

  canvas.pack()

 

 

  r = Rechteck()

  r.pos_x = 30

  r.pos_y = 30

  r.breite = 200

  r.hoehe = 200

  r.farbe = "blue"

  r.zeichnen()

   

  r.pos_x = 230

  r.pos_y = 30

  r.breite = 390

  r.hoehe = 200

  r.farbe = "white"

  r.zeichnen()

   

  r.pos_x = 30

  r.pos_y = 230

  r.breite = 600

  r.hoehe = 220

  r.farbe = "red"

  r.zeichnen()

   

  s = Stern()

   

  s.pos_x0 = 40

  s.pos_y0 = 70

  s.pos_x1 = 60

  s.pos_y1 = 40

  s.pos_x2 = 80

  s.pos_y2 = 70

  s.pos_x3 = 40

  s.pos_y3 = 50

  s.pos_x4 = 80

  s.pos_y4 = 70

  s.outline = "red"

  s.zeichnen()

 

  # Fokus auf die GUI legen und starten

  tk.mainloop()

Weiß jemand wo der Fehler ist und könnte mir helfen?
Im Voraus schonmal Dankeschön.

programmieren, Code, Informatik, Programmiersprache, Python, Programmcode, Tkinter

Meistgelesene Beiträge zum Thema Programmieren