Broken-Powelaw-Plot

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jan91
User
Beiträge: 3
Registriert: Donnerstag 5. Dezember 2013, 16:10

Hallo zusammen,

ich habe ein Problem mit dem Plot einer zusammengesetzten Funktion. Genauer: Mit einer "Broken-Powerlaw", also einem Potenzgesetz, welches ab einem
bestimmten x die Potenz ändert. Einzelt lassen sich die Funktionen wunderbar plotten, nur zusammen wird mir keine Funktion angezeigt - einen Fehler spuckt Python jedoch auch nicht aus. Ich glaube das der Fehler in der Schleife liegt, dass das so einfach nicht funktioniert. Mit fällt aber auch keine andere Lösung ein und im Internet habe ich bis jetzt auch nicht gefunden.

Vielen Dank für die Hilfe!

Code: Alles auswählen

import matplotlib as plt
import matplotlib.pyplot  as pyplot
from pylab import *
import math
import numpy as np

a = -1.74956
b = -2.24956
br = 0.800358
norm = 1.77567*(10**(-4))

for x in np.arange(0.0001, 10):
    if x < br:
        y = norm*(x**a)
    else:
        y = norm*(br**(a-b))*(x**b)

xlabel("Energy [keV]")
pyplot.xscale('log')

ylabel("F [mJy]")
pyplot.yscale('log')
matplotlib.pyplot.autoscale(enable=True, axis='both', tight=None)
plot(x,y)
show()
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

@jan91: was plottest Du? Was siehst Du und was erwartest Du? Was ist der Inhalt von x und y?
BlackJack

@jan91: Wenn ich mir den Wert von `br` und die Werte für `x` so anschaue, denke ich auch die sind nicht so wirklich günstig gewählt. Überleg mal wie viele Datenpunkte das ergibt und wie viele davon <br sind, und wie aussagekräftig, oder halt auch nicht, *der* Plot werden würde. ;-)
jan91
User
Beiträge: 3
Registriert: Donnerstag 5. Dezember 2013, 16:10

Ich erwarte folgenden Plot:

Bild

Die Werte für die Broken-Powerlaw stimmen auf jeden Fall (wurde alles schon gefittet, will den Plot nur schöner machen):
die Potenzen: a, b
die Break-Energy: br
die Norm: norm
sowie die Funktionen (siehe https://heasarc.gsfc.nasa.gov/xanadu/xs ... power.html)

Der Bereich macht an sich schon Sinn, es handelt sich ja um einen logarithmischen Plot über mehrere Größenordnungen.

Ich glaube, wie gesagt, dass das Problem in der Methode liegt...
BlackJack

@jan91: Der Bereich mag Sinn machen, aber Anzahl und Verteilung im Verhältnis zum Wert von `br` macht eher weniger Sinn. Du solltest Dir vielleicht mal anschauen welche Werte Du da für `x` nimmst. Ich habe den Verdacht das ist etwas anderes als was Du *denkst*.
jan91
User
Beiträge: 3
Registriert: Donnerstag 5. Dezember 2013, 16:10

Wie bekomme ich den eine natürliche Verteilung von 10^-4 bis 100 hin?
Antworten