Dekadischer Logarithmus

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
kaktuspfluecker
User
Beiträge: 1
Registriert: Mittwoch 2. Dezember 2020, 14:51

hey alle zusammen,
ich bin relativ neu in Python und habe ein Problem mit dem dekadischen Logarithmus in kombintation mit dem package uncertainties. Und zwar habe ich die Gleichung
from numpy import *
from uncertainties import *
from matplotlib.pyplot import *
from numpy import *
from math import *

def Geradengleichung(m,y,c):
x=m/(log10(y)-c)
return x
geschrieben jedoch gibt er mit folgenden Fehler aus :

T_c=Geradengleichung(Steigung,p_c,Achsenabschnitt)
in Geradengleichung
x=m/(log10(y)-c)
python3.8/site-packages/uncertainties/core.py", line 2667, in raise_error
raise TypeError("can't convert an affine function (%s)"
TypeError: can't convert an affine function (<class 'uncertainties.core.Variable'>) to float; use x.nominal_value
[Finished in 0.5s with exit code 1]

kann mir jemand helfen ? Ich finde nichts dazu online...
Danke an alle
narpfel
User
Beiträge: 645
Registriert: Freitag 20. Oktober 2017, 16:10

Moin,

da müsste man erstmal auseinanderpflücken, von wo `log10` kommt. Kannst du es auf einen Blick sehen? Ich nicht. Das ist genau der Grund, warum man keine Sternchenimporte benutzt.

Wenn du das repariert hast und dann noch verrätst, mit was für Typen du `Geradengleichung` aufrufst, kann man eher helfen.

Weiterhin: In Python werden Funktionen `klein_mit_unterstrichen` geschrieben; `PascalCase` ist Klassen vorbehalten (siehe PEP 8). Und der Name `geradengleichung` passt doch auch irgendwie nicht? Du berechnest da ja keine Geradengleichung?
Benutzeravatar
DeaD_EyE
User
Beiträge: 1021
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Stern-Importe macht man nicht.

Code: Alles auswählen

from numpy import *
from uncertainties import *
from matplotlib.pyplot import *
from numpy import *
from math import *
Der letzte gewinnt immer. Namen werden einfach neuen Objekten zugewiesen und am Ende hat man auf einmal den sin von math anstatt numpy.
Wenn du math zuerst importierst dann überschreibt numpy den sin von math. Viele andere namen werden auch überschieben. Da blickt niemand durch.

Diesne TypeError mal am besten in der Doku des Pakets nachsehen. Die Lösung steht übrigens da schon.

Code: Alles auswählen

TypeError: can't convert an affine function (<class 'uncertainties.core.Variable'>) to float; use x.nominal_value

Code: Alles auswählen

use x.nominal_value
.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten