quadpy Kubatur eines Tetraeders

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
moja
User
Beiträge: 2
Registriert: Donnerstag 10. August 2017, 09:27

Donnerstag 10. August 2017, 09:38

Hallo,
ich möchte gerne mit quadpy Funktionen in Tetraedern integrieren und bekomme bei dem Beispiel aus https://github.com/nschloe/quadpy

Code: Alles auswählen

import numpy
import quadpy
val = quadpy.tetrahedron.integrate(
    lambda x: numpy.exp(x[0]),
    [[0.0, 0.0, 0.0], [1.0, 0.0, 0.0], [0.5, 0.7, 0.0], [0.3, 0.9, 1.0]],
    quadpy.tetrahedron.Keast(10)
    )
Die Fehlermeldung
[codebox=text file=Unbenannt.txt]Traceback (most recent call last):
File "<stdin>", line 4, in <module>
File "/home/moja/data_ssd0/sync/programm/integration/python/quadpy/quadpy/nsimplex/tools.py", line 10, in integrate
x = transform(scheme.points.T, simplex.T)
AttributeError: 'list' object has no attribute 'T'[/code]

Ich nutze Fedora 25 und hatte es mti python 3.5.3 und auch 2.7.13 probiert, bei beiden Versionen gelange ich zur gleichen Fehlermeldung.
Ich habe quadpy über pip installiert. Fehlen mir irgendwelche Argumente bei dem Aufruf der Integrationsmethode? :?:
Viele Grüße
Zuletzt geändert von Anonymous am Donnerstag 10. August 2017, 09:41, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

Donnerstag 10. August 2017, 09:49

@moja: Wenn man anstelle der Liste ein Numpy-Array übergibt, dann läuft es ohne Ausnahme durch.
moja
User
Beiträge: 2
Registriert: Donnerstag 10. August 2017, 09:27

Donnerstag 10. August 2017, 10:03

super, vielen Dank BlackJack

jetzt läuft es ohne Probleme

Code: Alles auswählen

import numpy as np
import quadpy
tetr = np.array([[0.0, 0.0, 0.0], [1.0, 0.0, 0.0], [0.5, 0.7, 0.0], [0.3, 0.9, 1.0]])
val = quadpy.tetrahedron.integrate(lambda x: np.exp(x[0]),tetr,quadpy.tetrahedron.Keast(10))
print val
Zuletzt geändert von Anonymous am Donnerstag 10. August 2017, 11:09, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Antworten