Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2011, 00:53   #1
sasha502
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 23
По умолчанию умножение матрици на её же транспонированную

не пойму как перемножить матрицы

Код:
 for(k=0; k<sk;k++)
		for(j=0; j<3;j++)
		{
		//a++;
		b[k][0] = 1;
		b[k][1] = 3*k+1;
		b[k][2] = 5*k+k+2;
		}
						for(k=0; k<sk;k++)
						{
						for(j=0; j<3;j++)
						printf("%11g",b[k][j]);
						printf("\n");
						}
	 printf("\nMatrix B Transpon:\n");						
						for(k=0; k<3;k++)
						{
						for(j=0; j<sk;j++)
						printf("%11g",b[j][k]);
						printf("\n");
						}
в каком направление копать?
sasha502 вне форума Ответить с цитированием
Старый 28.11.2011, 03:45   #2
sasha502
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 23
По умолчанию

Код:
  for(int k = 0; k < 3; k++){
    for(int j = 0; j < sk; j++){
      for(int h = 0; h < 3; h++){
        c[k][j] += b[k][h] *b[h][j];
		}}}
 	for(int h=0; h<3;h++){
		for(int j=0; j<3;j++)
		printf("%13g", c[k][j]);
		printf("\n");
		}
не работает (заполняет матрицу последним элементом )

получается что то вроде этого
Код:
Matrix B:
          1          1          2
          1          4          8
          1          7         14
          1         10         20
          1         13         26

Matrix BT:
          1          1          1          1          1
          1          4          7         10         13
          2          8         14         20         26

Matrix BTxB:
           26           26           26
           26           26           26
           26           26           26

Последний раз редактировалось sasha502; 28.11.2011 в 03:49.
sasha502 вне форума Ответить с цитированием
Старый 29.11.2011, 00:26   #3
sasha502
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 23
По умолчанию

всё проблему решил, перепутал местами элементы
sasha502 вне форума Ответить с цитированием
Старый 29.11.2011, 02:00   #4
sasha502
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 23
По умолчанию

ан нет

Код:
	a=0;
	for(int i=0; i<sk;i++){
	a++;
		for(int j=0; j<3;j++){
		b[i][0] =1*a;
		 b[i][1] =2*a*a;
		 b[i][2] =3*a*a*a;
		/*  b[i][0] =1*a;
		 b[i][1] =cos(0.01*a);
		 b[i][2] =sin(0.01*a);*/
		}	
	}
/* печатаем массив B*/
printf("\nMatrix B:\n");
	for(int i=0; i<sk;i++){
		for(int j=0; j<3;j++)
		printf("%13g", b[i][j]);
		printf("\n");
	}
	/* печатаем массив B траспонированную матрицу*/
	printf("\nMatrix BT:\n");						
	for(int i=0; i<3;i++){
		for(int j=0; j<sk;j++)
		printf("%13g", b[j][i]);
		printf("\n");
	}
	printf("\n");	
	



	printf("\nMatrix BTxB:\n");						
  for(int i = 0; i < 3; i++){
    for(int j = 0; j < 3; j++){
	c[i][j] =0;
      for(int k = 0; k < sk; k++){
        c[i][j] += b[k][j] * b[i][k];
		}}}
 	for(int i=0; i<3;i++){
		for(int j=0; j<3;j++)
		printf("%13g", c[i][j]);
		printf("\n");
		}
выдаёт результат
Код:
Matrix B:
            1            2            3
            2            8           24
            3           18           81
            4           32          192
            5           50          375

Matrix BT:
            1            2            3            4            5
            2            8           18           32           50
            3           24           81          192          375


Matrix BTxB:
           62          536         3678
          192         1496         9468
          458         3336        19770
а если подставлять значения в программы для подсёта произведения матриц то BTxB


Код:
55	450	2937
450	3916	26550
2937	26550	184635
подскажите где ошибка
sasha502 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
транспонирование матрици sasha502 Помощь студентам 12 19.11.2011 14:33
умножить матрици alexz29 Общие вопросы C/C++ 1 11.12.2009 13:18
Поворот матрици(С++) Lemo Помощь студентам 1 21.10.2009 19:31
матрици Forro Паскаль, Turbo Pascal, PascalABC.NET 5 14.04.2008 20:31
Pascal. Матрици. ProPaL Помощь студентам 9 10.02.2008 01:13