3行3列の行列 A に対して、Aの2乗, Aの3乗 を求めよ。
3行3列の行列 A に対して、Aの2乗, Aの3乗 を求めよ。
という問題で
#include <stdio.h>
#define N 3
int A[N][N];
int A_2[N][N]; /* 行列Aを2乗したもの */
int A_3[N][N]; /* 行列Aを3乗したもの */
int main()
{
int i,j,k,l;
/* 3行3列の係数行列Aの成分を入力 */
printf("係数行列Aを%d行%d列で入力してください\n", N, N);
for( i=0; i<N; i++)
{
for( j=0; j<N; j++)
{
printf("A[%d][%d]=", i+1, j+1);
scanf("%d", &A[i][j]);
}
}
ここまでがあたえられえているのですが、単純にA_2=A×Aとしてみたのですが、セグメントエラーが出てしまいうまく出力できませんでした。
A_2とA_3の計算方法とあたえられているプログラムの動作を教えてください。
よろしくお願いします
お礼
回答ありがとうございます. 気を悪くさせて申し訳ありません. 以後気をつけます. |a^2 +bc ab+bd| |1 2| |ac+bd bc+d^2| = |3 4| としたところ, |a b| |0.5537 + 0.4644i 0.8070 - 0.2124i| |c d| = |1.2104 - 0.3186i 1.7641 + 0.1458i| となり,matlabの解と一致しました. ありがとうございました. あ(・∀・)り(・∀・)が(・∀・)と(・∀・)う!