RandomMatrixEigenvalue: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
===Beschreibung===
===Beschreibung===
Die Funktion ''randomMatrixEigenvalue'' gibt eine diagonalisierbare Matrix zurück. Die Funktion wird in Sage bearbeitet. Sie braucht die Matrix, die Eigenwerte und die Dimension als Eingabewerte und gibt die Matrix zurück.
Die Funktion ''randomMatrixEigenvalue'' gibt eine diagonalisierbare Matrix zurück. Die Funktion wird in Sage bearbeitet. Sie braucht die Matrix, die Eigenwerte und die Dimension der jeweiligen Eigenräume als Eingabewerte und gibt die Matrix zurück.


===Syntax===
===Syntax===
Zeile 9: Zeile 9:
* '''zahl''' - Gibt die Anzahl der Zeilen und Spalten der nxn-Matrix an: 1, 2, 3, ...
* '''zahl''' - Gibt die Anzahl der Zeilen und Spalten der nxn-Matrix an: 1, 2, 3, ...
* '''eigenwerte''' - Gibt die Eigenwerte der Matrix an: [a,b,c,...].
* '''eigenwerte''' - Gibt die Eigenwerte der Matrix an: [a,b,c,...].
* '''dimension''' - Gibt die Dimension an [1,1,1,...], dabei ist der Index der Eigenwerte derselbe wie bei der Dimension.
* '''dimension''' - Gibt die Dimension der jeweiligen Eigenräume an [1,1,1,...]. Dabei ist der Index derselbe wie bei dem zugehörigen Eigenwert.


===Return Value===
===Return Value===

Version vom 7. August 2017, 12:09 Uhr

Beschreibung

Die Funktion randomMatrixEigenvalue gibt eine diagonalisierbare Matrix zurück. Die Funktion wird in Sage bearbeitet. Sie braucht die Matrix, die Eigenwerte und die Dimension der jeweiligen Eigenräume als Eingabewerte und gibt die Matrix zurück.

Syntax

randomMatrixEigenvalue(String matrix, String zahl, String eigenwerte, String dimension)

Parameter

  • matrix - Gibt an, ob die Matrix als Matrix über die ganzen Zahlen (ZZ), über die rationalen Zahlen (QQ) oder als Matrix über den reellen Zahlen (RR) aufgefasst werden soll.
  • zahl - Gibt die Anzahl der Zeilen und Spalten der nxn-Matrix an: 1, 2, 3, ...
  • eigenwerte - Gibt die Eigenwerte der Matrix an: [a,b,c,...].
  • dimension - Gibt die Dimension der jeweiligen Eigenräume an [1,1,1,...]. Dabei ist der Index derselbe wie bei dem zugehörigen Eigenwert.

Return Value

  • Gibt die Matrix als OpenMathOpject zurück.

Beispiele

randomMatrixEigenvalue('QQ','2','[1,2]','[1,1]')
randomMatrixEigenvalue('QQ','3','[2,3,4]','[1,1,1]')

JUnit Tests

[Anzeigen]

/* [1, 0, 0]
 * [0, 1, 0]
 * [0, 0, 1]
 */
private String r1 = "{\\left(\\begin{array}{rrr}1 & 0 & 0\\\\ 0 & 1 & 0\\\\ 0 & 0 & 1\\end{array}\\right)}";
	
/* [1, 0]
 * [0, 1]
 */
private String r2 = "{\\left(\\begin{array}{rr}1 & 0\\\\ 0 & 1\\end{array}\\right)}";
	
/*
 * [1]
 */
private String r3 = "{\\left(\\begin{array}{r}1\\end{array}\\right)}";
	
@Before
public void beforeTest(){
  placeExerciseVariable("a", OMParser.parse("List[1,1,1]"));
		
  placeFillInVariable(1, OMParser.parse("List[1,1,1]"));
}
	
@Test
public void testRandomMatrixEigenValue(){
  assertTrue(r1.equals(getEvaluator().getResultAsLatexString("randomMatrixEigenvalue('QQ', '3', '[1,1,1]', '[1,1,1]')")));
  assertTrue(r2.equals(getEvaluator().getResultAsLatexString("randomMatrixEigenvalue('RR', '2', '[1, 1]', '[1,1]')")));
  assertTrue(r3.equals(getEvaluator().getResultAsLatexString("randomMatrixEigenvalue('ZZ', '1', '[1]', '[1]')")));
}
	
@Test
public void testRandomMatrixEigenValueWithInput(){
  assertTrue(r1.equals(getEvaluator().getResultAsLatexString("randomMatrixEigenvalue('QQ', '3', '[var=a]', '[var=a]')")));
}
	
@Test
public void testRandomMatrixEigenValueWithVariables(){
  assertTrue(r1.equals(getEvaluator().getResultAsLatexString("randomMatrixEigenvalue('QQ', '3', '[pos=1]', '[pos=1]')")));
}
	
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testRandomMatrixEigenValueWithONECharacter(){
  getEvaluator().getNumberResult("randomMatrixEigenvalue(a, a, a, a)");
}
	
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testRandomMatrixEigenValueWithEmptyStringArgument() {
  getEvaluator().getNumberResult(("randomMatrixEigenvalue('', '', '', '')"));
}
	
@Test(expected=InvalidCASFunctionArgumentException.class)
public void testRandomMatrixEigenValueWithEmptyArgument() {
  getEvaluator().getNumberResult(("randomMatrixEigenvalue()"));
}
	
@Test(expected=UndefinedExerciseVariableException.class)
public void testRandomMatrixEigenValueWithoutExerciseVariable() {
  getEvaluator().getNumberResult("randomMatrixEigenvalue('[var=j]', '[var=j]', '[var=j]', '[var=j]')");
}
	
@Test(expected=UndefinedFillInVariableException.class)
public void testRandomMatrixEigenValueWithoutInput() {
  getEvaluator().getNumberResult("randomMatrixEigenvalue('[pos=42]', '[pos=42]', '[pos=42]', '[pos=42]')");
}

Hinweise

  • Mit der Funktion evaluateInSage lassen sich die Eigenschaften der Matrix abfragen, z.B.
evaluateInSage('[var=Matrix].is_diagonalizable()')    --> Gibt true zurück, wenn die Matrix diagonalisierbar ist