Die Löschvorgabe habe ich leider.
Code: Alles auswählen
import numpy as np
A = np.array( [ [2,4,0,1,1,0,0], [1,1,5,1,0,1,0], [0,1,1,1,0,0,1] ] )
b = np.array( [20,30,10] )
A
Code: Alles auswählen
from itertools import combinations
def comb(arr,r):
return list(combinations(arr,r))
arr = np.array( [0,1,2,3,4,5,6] )
r = 4
print(comb(arr,r))
Code: Alles auswählen
for i,j,k,l in comb(range(A.shape[4]), 2):
teil_von_A = np.delete(A, [i, j, k, l], axis=1)
if np.linalg.det(teil_von_A) != 0:
inverse_von_A = np.linalg.inv(teil_von_A)
x = inverse_von_A.dot(b)
print("Diese x nehmen den Wert 0 an: ", i+1, ",", j+1, ",", k+1, ",", l+1, "\n")
if (x>=0).all():
print("Die übrigen x nehmen folgende Werte an: ", x, "\n\n")
else:
print("Diese Lösung kommt nicht in Frage, weil x negative Werte annimmt\n\n")
else:
print("Diese x nehmen den Wert 0 an: ", i+1, ",", j+1, ",", k+1, ",", l+1, "\n")
print("Diese Lösung kommt nicht in Frage, weil die Matrix nicht invertierbar ist \n\n")
...und immer noch ist "tupel index out of range"