Untitled

 avatar
unknown
plain_text
2 years ago
2.5 kB
3
Indexable
import numpy as np
from fractions import Fraction
import random

def generate_matrix(matrix_type):
    possible_values = list(range(-3, 4))  # Sie können den Bereich entsprechend anpassen
    if matrix_type == 1:
        # Wir generieren eine 3x3-Matrix mit einer Determinante ungleich Null
        while True:
            matrix = np.array([[random.choice(possible_values) for _ in range(3)] for _ in range(3)])
            if np.linalg.det(matrix) != 0:
                break
        print("Hier ist eine 3x3-Matrix. Bestimme die Inverse dieser Matrix.")
        print(matrix)
        input("Drücke Enter, um die Lösung anzuzeigen...")
        # Die Inverse der Matrix berechnen und anzeigen
        inv_matrix = np.linalg.inv(matrix)
        inv_matrix_fraction = [[str(Fraction(el).limit_denominator()) for el in row] for row in inv_matrix]
        print(np.array(inv_matrix_fraction))
    elif matrix_type == 2:
        # Wir generieren eine 3x3-Matrix mit einer vierten Spalte für Koeffizienten
        matrix = np.array([[random.choice(possible_values) for _ in range(4)] for _ in range(3)])
        print("Hier ist eine 3x3-Matrix mit einer zusätzlichen Spalte für Koeffizienten. Löse das System mittels Gauß-Eliminationsverfahren.")
        print(matrix)
        input("Drücke Enter, um die Lösung anzuzeigen...")
        # Die Lösung des Gleichungssystems mit der Gauss-Eliminationsmethode finden
        solution = np.linalg.solve(matrix[:,:3], matrix[:,3])
        solution_fraction = [str(Fraction(el).limit_denominator()) for el in solution]
        print(np.array(solution_fraction))
    elif matrix_type == 3:
        # Wir generieren eine 4x4-Matrix mit einer Determinante ungleich Null
        while True:
            matrix = np.array([[random.choice(possible_values) for _ in range(4)] for _ in range(4)])
            if np.linalg.det(matrix) != 0:
                break
        print("Hier ist eine 4x4-Matrix. Bestimme die Determinante dieser Matrix.")
        print(matrix)
        input("Drücke Enter, um die Lösung anzuzeigen...")
        # Die Determinante der Matrix berechnen und anzeigen
        determinant = np.linalg.det(matrix)
        print(Fraction(determinant).limit_denominator())
    else:
        raise ValueError("Ungültiger Matrixtyp!")
    print()

def zufallsaufgabe():
    matrix_type = random.choice([1, 2, 3])
    generate_matrix(matrix_type)

# Hier ist ein Beispiel, wie Sie die Funktion 'zufallsaufgabe' verwenden können:

zufallsaufgabe()
Editor is loading...