Quadpack.error: Mitgelieferte Funktion gibt keinen gültigen Float in Python zurück

Ich möchte eine Funktion in Bezug auf (z) integrieren und (x) und (y) als Argumente machen. Mein Ziel ist es, das Ergebnis der Integration an einer anderen Stelle (x, y) zu erhalten. In diesem Fall sollte ich 16 Integrationswerte erhalten, die (x1, y1), (x1, y2) …, (x2, Y1) … und so weiter Dies ist der Code:

import numpy as np import math import scipy.integrate a = 5 b = 6 xn=np.linspace(0,3,4) yn=np.linspace(3,6,4) x,y=np.ix_(xn,yn) def fun(z,x,y): model=(x**2/a**2+y**2/b**2+z**2/a**2)**0.5 #print(model) return model def int(x,y): int=scipy.integrate.quad(fun,0,10,args=(x,y,))[0] print (int) return int integral = int(x,y) print (integral) 

Aber ich habe diese Fehlermeldung:

  • Ästhetik von Barplot-Bars und Fehlerbalken im Meeresboden
  • Python: Image.frombytes () Argumente
  • Keras, Ausgabe des Modells predict_proba
  • Ist es möglich, FTP-Dateien zu lesen, ohne sie mit Python zu schreiben?
  • ValueError: konnte keine Zeichenfolge in float konvertieren
  • Wie kann ich Python 2.5 deinstallieren?
  •   .... int=scipy.integrate.quad(model,0,10,args=(x,y,))[0] File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site- packages/scipy/integrate/quadpack.py", line 254, in quad retval = _quad(func,a,b,args,full_output,epsabs,epsrel,limit,points) File "/opt/local/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site- packages/scipy/integrate/quadpack.py", line 319, in _quad return _quadpack._qagse(func,a,b,args,full_output,epsabs,epsrel,limit) quadpack.error: Supplied function does not return a valid float. 

    Bitte könnte jemand mir zeigen, wie man diesen Fehler beheben und danke im voraus.

    One Solution collect form web for “Quadpack.error: Mitgelieferte Funktion gibt keinen gültigen Float in Python zurück”

    Wie der Fehler nahelegt, sollte Ihre fun einen float aber stattdessen ein 2D-Array zurückgeben:

     [[ 1.11803399 1.20185043 1.30170828 1.41421356] [ 1.13578167 1.21837779 1.31698308 1.42828569] [ 1.18743421 1.26666667 1.36177988 1.46969385] [ 1.26885775 1.34329611 1.43333333 1.53622915]] 

    Die Funktion, die Sie integrieren, sollte an einer beliebigen Stelle im Parameterraum eine einzelne Zahl auswerten.

    Wenn du versuchst, ein N-dimensionales Integral zu machen, kannst du dich bei scipy.integrate.nquad .

    Python ist die beste Programmiersprache der Welt.