Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Best-pm07
..:::BesT:::..
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
#1

Правильно ли программа делает расчеты? - C++

13.06.2009, 21:51. Просмотров 724. Ответов 8
Метки нет (Все метки)

Условие:
Дани векторы X и Y с n координатами и кваратные матрицы А и В, размерности n X n. Найти вектор Z=A*Y+A*Y

Почему я создал эту тему: я хочу узнать правильно я записал эту строчку в программе чтобы умножить матрицу на вектор

C++
1
Z[i]=A[i][j]*X[i]+B[i][j]*Y[i];
вот и вся программа:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream.h>
#include <stdlib.h>
 
void main()
{
     const int n = 5;
     int A[n][n], B[n][n];
     int X[n], Y[n], Z[n];
     int i, j;
 
cout << "=====Вектор X:=====\n";
 
for (i=0; i<n; i++){
X[i] = rand()%10;
cout.width(3);
cout << X[i];          }
cout << endl;
 
cout << "=====Вектор Y:=====\n";
 
for (i=0; i<n; i++){
Y[i] = rand()%10;
cout.width(3);
cout << Y[i];          }
cout << endl;
 
cout << "=====Матрица А:=====\n";
 
for (i=0; i<n; i++){
for (j=0; j<n; j++){
A[i][j] = rand()%10;
cout.width(3);
cout << A[i][j];}
cout << endl;}
 
cout << "=====Матрица B:=====\n";
 
for (i=0; i<n; i++){
for (j=0; j<n; j++){
B[i][j] = rand()%10;
cout.width(3);
cout << B[i][j];}
cout << endl;}
 
cout << "=====Вектор Z:=====\n";
 
for (i=0; i<n; i++){
Z[i]=A[i][j]*X[i]+B[i][j]*Y[i];   // правильные ли тут расчеты? просто есть определенные методы умножения векторов на матрицу
cout.width(3);
cout << Z[i];}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2009, 21:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Правильно ли программа делает расчеты? (C++):

Не правильно работает программа - C++ Builder
Программа работает, но не так как надо =) хочу записывать в поля структуры данные по очереди:сначала в i, а потом в q. Но что-то не так ...

Не работает правильно программа - C++ Builder
Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения...

Расчеты - C++ Builder
Народ нужна помощь задача такая; В обменный пункт принесли некоторую сумму денег в рублях. Какую сумму получит клиент в долларах:...

Расчеты в StringGrid - C++ Builder
Нужно сложить значения &quot;да&quot; всего столбца. помогите

Не правильно работает программа при запуске из cmd - Visual C++
Программа должна делать два основных действия - создавать файл и отправлять его по ftp. FTP средствами c++, я не понял совсем, поэтому...

Программа делает не совсем то, что нужно - C++ WinAPI
Задача выглядит так: Работа со строками. Одна строка - текст. Текст должен состоять из нескольких предложений и должен быть оформлен по...

8
AndruL
7 / 7 / 0
Регистрация: 01.03.2009
Сообщений: 33
14.06.2009, 19:53 #2
Так протестируй её элементарно, перемножать матрицы можно где угодно, mathcad, maple, matlab... Тем более с матрицами 5 на 5 можно и ручками проверить
1
Best-pm07
..:::BesT:::..
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
14.06.2009, 22:05  [ТС] #3
я просто незнаю как перемножать вектора на матрицы
0
CyBOSSeR
Эксперт С++
2303 / 1673 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.06.2009, 22:09 #4
google.ru в помощь...
1
Best-pm07
..:::BesT:::..
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
14.06.2009, 23:23  [ТС] #5
искал уже, но не понял, ну может есть уже тот кто понимает?
0
CyBOSSeR
Эксперт С++
2303 / 1673 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
14.06.2009, 23:49 #6
В приложениях скриншот из Mathcad'а.
Я думаю алгоритм будет ясен.
Ну или на С++:
C++
1
2
3
for(int i = 0; i < n; ++i)
  for(int j = 0; j < m; ++j)
    result[i] += matrix[i][j] * vector[j];
matrix - исходная матрица
vector - исходный вектор
result - результирующий вектор
n - количество строк матрицы и размер результирующего вектора
m - количество столбцов матрицы и размер исходного вектора
1
Миниатюры
Правильно ли программа делает расчеты?  
Best-pm07
..:::BesT:::..
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
15.06.2009, 21:46  [ТС] #7
нет, расчеты, которые производит программа не правильные, кто-нибудь помогите составить программу, которая

Перемножит матрицу А с вектором X + перемножит матрицу B с вектором Y

Добавлено через 14 минут 13 секунд
Все, разобрался в перемножении оказывается все просто:

C++
1
2
3
4
for(i = 0; i < n; i++){
    Z[i]=0;
    for(j = 0; j < n; j++){
     Z[i] += B[i][j] * Y[j];}
0
CyBOSSeR
Эксперт С++
2303 / 1673 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
15.06.2009, 21:54 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
void main()
{
  const int n = 5;
  int A[n][n], B[n][n];
  int X[n], Y[n], Z[n];
  int i, j;
 
  cout << "=====Вектор X:=====\n";
 
  for (i=0; i<n; i++){
    X[i] = rand()%10;
    cout.width(3);
    cout << X[i];          }
  cout << endl;
 
  cout << "=====Вектор Y:=====\n";
 
  for (i=0; i<n; i++){
    Y[i] = rand()%10;
    cout.width(3);
    cout << Y[i];          }
  cout << endl;
 
  cout << "=====Матрица А:=====\n";
 
  for (i=0; i<n; i++){
    for (j=0; j<n; j++){
      A[i][j] = rand()%10;
      cout.width(3);
      cout << A[i][j];}
    cout << endl;}
 
  cout << "=====Матрица B:=====\n";
 
  for (i=0; i<n; i++){
    for (j=0; j<n; j++){
      B[i][j] = rand()%10;
      cout.width(3);
      cout << B[i][j];}
    cout << endl;}
 
  for(i = 0; i < n; ++i)
    Z[i] = 0;
 
  cout << "=====Вектор Z:=====\n";
 
  for(i = 0; i < n; ++i)
    for(j = 0; j < n; ++j)
      Z[i] += A[i][j] * X[j] + B[i][j] * Y[j];
 
  for(int i = 0; i < n; ++i)
    cout << Z[i] << endl;
}
Результат на скриншотах.

Опоздал...
1
Миниатюры
Правильно ли программа делает расчеты?  
Изображения
 
Best-pm07
..:::BesT:::..
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
15.06.2009, 23:56  [ТС] #9
спасибо большое, но сделал уже
0
15.06.2009, 23:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2009, 23:56
Привет! Вот еще темы с ответами:

Программа работает правильно только в режиме отладки - C++ WinAPI
Если запускаю программу через f5 , все отлично отрабатывает...если через Ctrl + f5, возникают ошибки в ходе работы с программой, сама она...

почему не делает расчеты в "с="? код с++ - C++
запускать запускает, а расчет &quot;с &quot; не делает в чем причина? помогите, буду признательна) #include &lt;iostream&gt; #include...

Программа производит расчеты только по одному из двух введенных значений - C++
Подскажите как сделать что бы я вручную вводил значение radius и он выдавал ответ. Сейчас он почему-то просит 2 раза ввести число но...

Что делает программа - C++
Объясните пожалуйста пошагово что делает эта программа #include &lt;stdio.h&gt; #include &lt;fstream&gt; #include &lt;iostream&gt; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru