배열의 곱셈과 덧셈을 다섯번 반복하는 소스인데요 수정좀 해주세요
활력초
질문 제목 : 배열의 곱셈과 덧셈 다섯번 반복하는소스인데요 수정좀 해주세요 질문 요약 :아래는 교수님이 이런식으로 하라고 알려주신거에요
Repeat the following computation five times.
for (i=0;i 5; i++){
y = Ax + b;
x = y;
}
Here, y, A, x, and b are matrices as follows:
A = { {1,2,3}, {4,5,6}, {7,8,9}}; // 3x3 matrix
x = {1.1, 1.2, 1.3}; //3x1 matrix
b = {110, 128, 100}; // 3x1 matix
y ={0}; // 3x1 matrix, initialized as 0.0;질문 내용 :제가 작성한 소스입니다. 수점좀 부탁드려요
#include stdio.h
int main(void)
{
double A[3][3] = { {1,2,3}, {4,5,6}, {7,8,9}}; // 3x3 matrix
double x[1][3] = {1.1, 1.2, 1.3}; //3x1 matrix
double b[1][3] = {110, 128, 100}; // 3x1 matix
double y[1][3] ={0};// 3x1 matrix, initialized as 0.0;
int i;
printf(Base A\n);
print(A, AY);
printf(\n);
printf(Base x\n);
print(x, xY);
printf(\n);
printf(Base b\n);
print(b, bY);
printf(\n);
printf(Base y\n);
print(y, yY);
printf(\n);
for(i = 0 ; i 5 ; i++)
{
multi(y, A, x, xY);
add(y, b, bY);
equal(x, y, yY);
}
printf(Result A\n);
print(A, AY);
printf(\n);
printf(Result x\n);
print(x, xY);
printf(\n);
printf(Result b\n);
print(b, bY);
printf(\n);
printf(Result y\n);
print(y, yY);
printf(\n);
return 0;
}
void print(double A[][3], int n)
{
int i, j;
for(i = 0 ; i X ; i++)
{
for(j = 0 ; j n ; j++)
{
printf(%.1lf , A[j][i]);
}
printf(\n);
}
}
void equal(double A[][3], double B[][3], int Cy)
{
int i, j;
for(i = 0 ; i X ; i++)
{
for(j = 0 ; j Cy ; j++)
{
A[j][i] = B[j][i];
}
}
}
void add(double A[][3], double B[][3], int Cy)
{
int i, j;
for(i = 0 ; i X ; i++)
{
for(j = 0 ; j Cy ; j++)
{
A[j][i] += B[j][i];
}
}
}
void multi(double A[][3], double B[][3], double C[][3], int Cy)
{
int i, j, z, result = 0;
for(i = 0 ; i X ; i++)
{
for(j = 0 ; j X ; j++)
{
for(z = 0 ; z Cy ; z++)
{
A[z][i] += B[j][i]*C[z][j];
}
}
}
}