RandomMatrixEigenvalue: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
Zeile 22: | Zeile 22: | ||
<span class="mw-customtoggle-myDivision">[Anzeigen]</span> | <span class="mw-customtoggle-myDivision">[Anzeigen]</span> | ||
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision"> | <syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision"> | ||
@BeforeClass | |||
public static void beforeTest() throws FunctionNotImplementedException, UndefinedFillInVariableException, | |||
UndefinedExerciseVariableException, ParserException, ErroneousFillInVariableException, | |||
ErroneousExerciseVariableException { | |||
randomMatrixEigenvalueFillInVariableMap.put(1, ExpressionParser.parse("'[1,1,1]'", null, null)); | |||
randomMatrixEigenvalueExerciseVariableMap.put("a", ExpressionParser.parse("'[1,1,1]'", null, null)); | |||
} | } | ||
@Test | @Test | ||
public void | public void testRandomMatrixEigenValue1() { | ||
assertEquals(ExpressionParser.parse("matrix(matrixrow(1,0,0), matrixrow(0,1,0), matrixrow(0,0,1))", null, null), | |||
Evaluator.evaluate("randomMatrixEigenvalue('QQ', '3', '[1,1,1]', '[1,1,1]')", | |||
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap)); | |||
} | } | ||
@Test | @Test | ||
public void | public void testRandomMatrixEigenValue2() { | ||
assertEquals(ExpressionParser.parse("matrix(matrixrow(1,0), matrixrow(0,1))", null, null), | |||
Evaluator.evaluate("randomMatrixEigenvalue('RR', '2', '[1,1]', '[1,1]')", | |||
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap)); | |||
} | } | ||
@Test | @Test | ||
public void | public void testRandomMatrixEigenValue3() { | ||
assertEquals(ExpressionParser.parse("matrix(matrixrow(1))", null, null), | |||
Evaluator.evaluate("randomMatrixEigenvalue('ZZ', '1', '[1]', '[1]')", | |||
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap)); | |||
} | } | ||
@Test(expected= | @Test | ||
public void testRandomMatrixEigenValueWithONECharacter(){ | public void testRandomMatrixEigenValueWithInput() { | ||
assertEquals(ExpressionParser.parse("matrix(matrixrow(1,0,0), matrixrow(0,1,0), matrixrow(0,0,1))", null, null), | |||
Evaluator.evaluate("randomMatrixEigenvalue('QQ', '3', '[var=a]', '[var=a]')", | |||
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap)); | |||
} | |||
@Test | |||
public void testRandomMatrixEigenValueWithVariables() { | |||
assertEquals(ExpressionParser.parse("matrix(matrixrow(1,0,0), matrixrow(0,1,0), matrixrow(0,0,1))", null, null), | |||
Evaluator.evaluate("randomMatrixEigenvalue('QQ', '3', '[pos=1]', '[pos=1]')", | |||
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap)); | |||
} | |||
@Test(expected = ParserException.class) | |||
public void testRandomMatrixEigenValueWithONECharacter() { | |||
Evaluator.evaluate("randomMatrixEigenvalue(ab, ab, ab, ab)", randomMatrixEigenvalueExerciseVariableMap, | |||
randomMatrixEigenvalueFillInVariableMap); | |||
fail(); | |||
} | } | ||
@Test(expected= | @Test(expected = FunctionInvalidArgumentTypeException.class) | ||
public void testRandomMatrixEigenValueWithEmptyStringArgument() { | public void testRandomMatrixEigenValueWithEmptyStringArgument() { | ||
Evaluator.evaluate("randomMatrixEigenvalue('', '', '', '')", randomMatrixEigenvalueExerciseVariableMap, | |||
randomMatrixEigenvalueFillInVariableMap); | |||
fail(); | |||
} | } | ||
@Test(expected= | @Test(expected = FunctionInvalidNumberOfArgumentsException.class) | ||
public void testRandomMatrixEigenValueWithEmptyArgument() { | public void testRandomMatrixEigenValueWithEmptyArgument() { | ||
Evaluator.evaluate("randomMatrixEigenvalue()", randomMatrixEigenvalueExerciseVariableMap, | |||
randomMatrixEigenvalueFillInVariableMap); | |||
fail(); | |||
} | } | ||
@Test(expected=UndefinedExerciseVariableException.class) | @Test(expected = UndefinedExerciseVariableException.class) | ||
public void testRandomMatrixEigenValueWithoutExerciseVariable() { | public void testRandomMatrixEigenValueWithoutExerciseVariable() { | ||
Evaluator.evaluate("randomMatrixEigenvalue('[var=j]', '[var=j]', '[var=j]', '[var=j]')", | |||
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap); | |||
fail(); | |||
} | } | ||
@Test(expected=UndefinedFillInVariableException.class) | @Test(expected = UndefinedFillInVariableException.class) | ||
public void testRandomMatrixEigenValueWithoutInput() { | public void testRandomMatrixEigenValueWithoutInput() { | ||
Evaluator.evaluate("randomMatrixEigenvalue('[pos=42]', '[pos=42]', '[pos=42]', '[pos=42]')", | |||
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap); | |||
fail(); | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Version vom 19. September 2017, 07:38 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]
@BeforeClass
public static void beforeTest() throws FunctionNotImplementedException, UndefinedFillInVariableException,
UndefinedExerciseVariableException, ParserException, ErroneousFillInVariableException,
ErroneousExerciseVariableException {
randomMatrixEigenvalueFillInVariableMap.put(1, ExpressionParser.parse("'[1,1,1]'", null, null));
randomMatrixEigenvalueExerciseVariableMap.put("a", ExpressionParser.parse("'[1,1,1]'", null, null));
}
@Test
public void testRandomMatrixEigenValue1() {
assertEquals(ExpressionParser.parse("matrix(matrixrow(1,0,0), matrixrow(0,1,0), matrixrow(0,0,1))", null, null),
Evaluator.evaluate("randomMatrixEigenvalue('QQ', '3', '[1,1,1]', '[1,1,1]')",
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap));
}
@Test
public void testRandomMatrixEigenValue2() {
assertEquals(ExpressionParser.parse("matrix(matrixrow(1,0), matrixrow(0,1))", null, null),
Evaluator.evaluate("randomMatrixEigenvalue('RR', '2', '[1,1]', '[1,1]')",
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap));
}
@Test
public void testRandomMatrixEigenValue3() {
assertEquals(ExpressionParser.parse("matrix(matrixrow(1))", null, null),
Evaluator.evaluate("randomMatrixEigenvalue('ZZ', '1', '[1]', '[1]')",
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap));
}
@Test
public void testRandomMatrixEigenValueWithInput() {
assertEquals(ExpressionParser.parse("matrix(matrixrow(1,0,0), matrixrow(0,1,0), matrixrow(0,0,1))", null, null),
Evaluator.evaluate("randomMatrixEigenvalue('QQ', '3', '[var=a]', '[var=a]')",
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap));
}
@Test
public void testRandomMatrixEigenValueWithVariables() {
assertEquals(ExpressionParser.parse("matrix(matrixrow(1,0,0), matrixrow(0,1,0), matrixrow(0,0,1))", null, null),
Evaluator.evaluate("randomMatrixEigenvalue('QQ', '3', '[pos=1]', '[pos=1]')",
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap));
}
@Test(expected = ParserException.class)
public void testRandomMatrixEigenValueWithONECharacter() {
Evaluator.evaluate("randomMatrixEigenvalue(ab, ab, ab, ab)", randomMatrixEigenvalueExerciseVariableMap,
randomMatrixEigenvalueFillInVariableMap);
fail();
}
@Test(expected = FunctionInvalidArgumentTypeException.class)
public void testRandomMatrixEigenValueWithEmptyStringArgument() {
Evaluator.evaluate("randomMatrixEigenvalue('', '', '', '')", randomMatrixEigenvalueExerciseVariableMap,
randomMatrixEigenvalueFillInVariableMap);
fail();
}
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testRandomMatrixEigenValueWithEmptyArgument() {
Evaluator.evaluate("randomMatrixEigenvalue()", randomMatrixEigenvalueExerciseVariableMap,
randomMatrixEigenvalueFillInVariableMap);
fail();
}
@Test(expected = UndefinedExerciseVariableException.class)
public void testRandomMatrixEigenValueWithoutExerciseVariable() {
Evaluator.evaluate("randomMatrixEigenvalue('[var=j]', '[var=j]', '[var=j]', '[var=j]')",
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap);
fail();
}
@Test(expected = UndefinedFillInVariableException.class)
public void testRandomMatrixEigenValueWithoutInput() {
Evaluator.evaluate("randomMatrixEigenvalue('[pos=42]', '[pos=42]', '[pos=42]', '[pos=42]')",
randomMatrixEigenvalueExerciseVariableMap, randomMatrixEigenvalueFillInVariableMap);
fail();
}
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