Giriş
En sık kullanılan iki trigonometrik fonksiyonlar, sine
ve cosine
(ya da sin
ve cos
kısa), matris değerli bir fonksiyonu olarak uzatılabilir. Matris değerli analogları hesaplamanın bir yolu şöyledir:
Bu iki önemli trigonometrik kimliği düşünün:
Bu kimlikleri kullanarak sin
ve için aşağıdaki denklemleri türetebiliriz cos
:
Matris üstel tüm kare matrisler için var ve ile verilir:
burada bir 0 birim matristir I ile aynı boyutlara sahip A . Matris üstel kullanarak, bu iki trigonometrik fonksiyon (ve böylece diğer tüm trigonometrik fonksiyonlar) matrislerin fonksiyonu olarak değerlendirilebilir.
Meydan okuma
Bir kare matris verilen bir çıkış değerleri, sin(A)
ve cos(A)
.
kurallar
- Giriş ve çıkış uygun, makul bir formatta (2D dizi, dilinizin matris formatı, vb.) Olabilir.
- Tek bir program, iki bağımsız program, tek bir işlev veya iki işlev yazabilirsiniz. İki işlev yazmayı seçerseniz, aralarında kod paylaşılabilir (içe aktarma ve yardımcı işlevler gibi).
- Giriş matrisinin değerleri her zaman tamsayı olur.
- Çözümünüzde kayan nokta tutarsızlığı nedeniyle doğruluk sorunları olabilir. Dilinizde sihirli sonsuz hassasiyet değerleri varsa, çözümünüz mükemmel bir şekilde çalışmalıdır (sonsuz zaman ve / veya bellek gerektireceği gerçeğini göz ardı ederek). Ancak, bu büyülü sonsuz kesinlik değerleri bulunmadığından, sınırlı kesinlikten kaynaklanan yanlışlıklar kabul edilebilir. Bu kural, çıktıda belirli bir miktarda hassasiyet gerektirmesinden kaynaklanan komplikasyonları önlemek için uygulanmaktadır.
- Matris argümanları (hiperbolik trig fonksiyonları dahil) için trigonometrik fonksiyonları hesaplayan yapılara izin verilmez. Diğer matris yerleşimlerine (çarpma, üs alma, köşegenleştirme, ayrışma ve matris üstel gibi) izin verilir.
Test Durumları
Biçim: 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]]
Daha fazla okuma
Math.SE'deki bu mükemmel soru , trigonometrik fonksiyonların matris değerli analoglarının bazı alternatif türevlerini içerir.
(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 ile aldım , kontrol edebilir misin?