Code funktioniert nicht |
07.06.2016, 10:35 | Auf diesen Beitrag antworten » | |||||
Haevelin | Code funktioniert nicht In folgendem Code wandle ich eine smypy Matrix in eine numpy Matrix um, und will dann die Methode np.linalg.det darauf loslassen. from sympy.matrices import * from sympy.printing import * from IPython.display import display, HTML, Math, Latex, clear_output from ipywidgets import widgets from random import randint import numpy as np from builtins import str text1 = widgets.Text() button1 = widgets.Button(description="Auswerten") button2 = widgets.Button(description="Neue Aufgabe") #x = np.arange(9).reshape(3,3) #y = np.arange(3).reshape(3,1) x=Matrix() y=Matrix() latexWidget = widgets.Latex() taskWidget = widgets.HTML() taskWidget.value = "<b>Berechnen Sie:</b>" mhbox1 = widgets.HBox((taskWidget, latexWidget)) mhbox2 = widgets.HBox((button1, button2)) def init_vectors(b): global x, y, text1 x=zeros(3,3) y=zeros(3,1) for i in range(3): for j in range(3): x[j,i]=randint(-10,10) for i in range(1): for j in range(3): y[j,i]=randint(-10,10) #n_matrix_x=np.eye(3) n_matrix_x=np.matrix(x) gefunden=False if np.linalg.det(n_matrix_x)==0: init_vectors(b) else: A,B=np.linalg.eig(n_matrix_x) for i in range(3): if A[i].real==0 or A[i].imag!=0: gefunden=True break if gefunden: init_vectors(b) text1.value = "" display_task() def display_task(): global x, y, latexWidget clear_output() a1 = latex(x) a2 = latex(y) a1 = a1.replace("left[", "left(") a2 = a2.replace("left[", "left(") a1 = a1.replace("right]", "right)") a2 = a2.replace("right]", "right)") str1 = "$\langle" + a1 + ", " + a2 + "\\rangle$" latexWidget.value = str1 def evaluate(b): global x, y, text1 n_matrix_x=np.array(x) n_matrix_y=np.array(y) z = np.linalg.solve(n_matrix_x,n_matrix_y) w=widgets.Textarea(Description='Lösung GLS', value=str(z) ) display(w) clear_output() display_task() if "{0}".format(z) == text1.value: display(HTML("<b><font color='green'>Richtig</font></b>")) else: display(HTML("<b><font color='red'>Falsch</font></b>")) def exec_la_scalar_1(): init_vectors(button2) button2.on_click(init_vectors) button1.on_click(evaluate) display(widgets.VBox((mhbox1, text1, mhbox2))) Allerdings erhalte ich für diese Methode die Fehlermeldung: No loop matching the specified signature and casting was found for ufunc det Warum funktioniert det nicht? |
|||||
|
||||||
14.06.2016, 11:23 | Auf diesen Beitrag antworten » | |||||
as_string | Python-Code ohne Einrückung??? Vergiss es. Mache wenigstens entsprechende CODE-Tags außen rum! Gruß Marco OK, ich habs mal für Dich raus copiert:
|
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
|
Die Neuesten » |
|