소개
가장 일반적인 두 삼각 함수, sine
및 cosine
(또는 sin
과 cos
짧은 경우), 행렬 값의 함수로 확장 될 수있다. 행렬 값 아날로그를 계산하는 한 가지 방법은 다음과 같습니다.
다음과 같은 두 가지 중요한 삼각 정체성을 고려하십시오.
이러한 아이덴티티를 사용하여 sin
와에 대한 다음 방정식을 도출 할 수 있습니다 cos
.
행렬 지수는 모든 정사각형 행렬 존재에 의해 주어진다 :
여기서 0 항등 행렬이며 I 과 동일한 치수 . 행렬 지수를 사용하여이 두 삼각 함수 (및 다른 모든 삼각 함수)는 행렬의 함수로 평가할 수 있습니다.
도전
정사각 행렬 A가 주어지면 sin(A)
및 의 값을 출력합니다 cos(A)
.
규칙
- 입력 및 출력은 편리하고 합리적인 형식 (2D 배열, 언어 매트릭스 형식 등) 일 수 있습니다.
- 단일 프로그램, 2 개의 독립 프로그램, 단일 기능 또는 2 개의 기능을 작성할 수 있습니다. 두 함수를 작성하도록 선택하면 코드가 두 함수 (예 : 가져 오기 및 도우미 함수)간에 공유 될 수 있습니다.
- 입력 행렬의 값은 항상 정수입니다.
- 부동 소수점 부정확의 결과로 솔루션에 정확도 문제가있을 수 있습니다. 언어에 마법의 무한 정밀도 값이있는 경우 솔루션은 완벽하게 작동해야합니다 (무한 시간 및 / 또는 메모리가 필요하다는 사실을 무시하고). 그러나 이러한 마법의 무한 정밀도 값은 존재하지 않기 때문에 정밀도가 제한되어 부정확 한 부분이 허용됩니다. 이 규칙은 출력에서 특정 정도의 정밀도를 요구하여 발생하는 복잡한 문제를 피하기 위해 마련되었습니다.
- 행렬 인수 (쌍곡선 삼각 함수 포함)에 대한 삼각 함수를 계산하는 내장은 허용되지 않습니다. 다른 행렬 내장 (예 : 곱셈, 지수화, 대각 화, 분해 및 행렬 지수)이 허용됩니다.
테스트 사례
체재: A -> sin(A), cos(A)
[[0]] -> [[0]], [[1]]
[[0, 2], [3, 5]] -> [[-0.761177343863758, 0.160587281888277], [0.240880922832416, -0.359709139143065]], [[0.600283445979886, 0.119962280223493], [0.179943420335240, 0.900189146538619]]
[[1, 0, 1], [0, 0, 0], [0, 1, 0]] -> [[0.841470984807897, -0.158529015192103, 0.841470984807897], [0, 0, 0], [0, 1, 0]], [[0.540302305868140, -0.459697694131860, -0.459697694131860], [0, 1, 0], [0, 0, 1]]
[[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1]] -> [[0.841470984807897, 0, 0, 0, 0], [0, 0.841470984807897, 0, 0, 0], [0, 0, 0.841470984807897, 0, 0], [0, 0, 0, 0.841470984807897, 0], [0, 0, 0, 0, 0.841470984807897]], [[0.540302305868140, 0, 0, 0, 0], [0, 0.540302305868140, 0, 0, 0], [0, 0, 0.540302305868140, 0, 0], [0, 0, 0, 0.540302305868140, 0], [0, 0, 0, 0, 0.540302305868140]]
[[-3, 2, -6], [3, 0, 4], [4, -2, 7]] -> [[-0.374786510963954, 0.135652884035570, -1.35191037980742], [1.14843105375406, 0.773644542790111, 1.21625749577185], [1.21625749577185, -0.135652884035570, 2.19338136461532]], [[4.13614256031450, -1.91289828483056, 5.50873853927692], [-2.63939111203107, 1.49675144828342, -3.59584025444636], [-3.59584025444636, 1.91289828483056, -4.96843623340878]]
추가 자료
Math.SE에 대한이 훌륭한 질문 에는 삼각 함수의 행렬 값 아날로그에 대한 대체 파생물이 포함됩니다.
(ignoring the fact that it would require infinite time and/or memory)
sin([[1, 0, 1], [0, 0, 0], [0, 1, 0]]) = {{0.841, -0.158, 0.841}, {0, 0, 0}, {0, 1, 0}}
Mathematica와 함께 왔는데 확인할 수 있습니까?