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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DiaDiaDia
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 14
#1

Умножение матриц - C++

22.12.2014, 05:19. Просмотров 433. Ответов 1
Метки нет (Все метки)

Здравствуйте помогите пожалуйста, не понимаю почему не получается перемножить матрицы.
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
#include "stdafx.h"
 
#include <iostream>
#include <ctime>
#include <cmath>
 
using namespace std;
 
int main()
{
double x[4][3]={{0,1,1},{1,2,1},{-1,0,-1},{1,-1,-1}};
double xx[3][4]={{-0.09,0.27,-0.27,0.45},{0,0.5,0.5,0},{0.27,-0.32,-0.68,-0.36}};
double b[1][4]={1,1,1,1};
double m=1;
 
double w[1][3];
 for(int i=0;i<4;i++)
 { for(int j=0;j<1;j++)
    {      w[i][j]=0;
    for (int l=0;l<3;l++)
        {
            w[i][j]=w[i][j]+xx[i][l]*b[l][j];
        }
    }
}      
    system("pause");
}
Добавлено через 38 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double x[4][3]={{0,1,1},{1,2,1},{-1,0,-1},{1,-1,-1}};
double xx[3][4]={{-0.09,0.27,-0.27,0.45},{0,0.5,0.5,0},{0.27,-0.32,-0.68,-0.36}};
double b[4][1]={{1},{1},{1},{1}};
double m=1;
 
double w[3][1];
double e[4][1];
for(int i=0;i<3;i++)
 { for(int j=0;j<1;j++)
    {    w[i][j]=0;
    for (int l=0;l<3;l++)
        {
            w[i][j]=w[i][j]+xx[i][l]*b[l][j];
        }
    }
Немного исправила но все равно считается неверно(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2014, 05:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Умножение матриц (C++):

Умножение треугольных матриц«Методы обработки разреженных матриц» - C++
Нужно перемножить треугольные матрицы в обычном виде и в свёрнутом. С обычным проблем нет. Доступ к элементам свёрнутой матрицы...

Умножение матриц - C++
Написал программу умножения матриц, вот отдельная функция, подскажите как протестировать на матрицы высоких порядков 1000, 1500, все...

Умножение матриц - C++
Решил немного вспомнить матрицы // Перемножение двух матриц минора. cout&lt;&lt;&quot;Сейчас мы перемножим матрицы.\n\n&quot;; ...

Умножение матриц - C++
Доброго всем времени суток! Нужна Ваша помощь. Задали сделать задачку на C++ в консоли - умножение матриц 10 на 10 с помощью...

Умножение матриц - C++
надо получить матрицу А*В

Умножение матриц - C++
Найти результат умножения матрицы A, размером NA на MA, на матрицу B, размером NB на MB,. Ввод с консоли, на первой строке вводятся целые...

1
Fulcrum_013
699 / 764 / 74
Регистрация: 14.12.2014
Сообщений: 6,036
Завершенные тесты: 3
22.12.2014, 06:24 #2
Потому что считаешь первый элемент и записываешь его в исходную матрицу. когда считаешь второй то вместо исходного в первом элементе используется уже вычесленный элемент результата. Сделай отдельную матрицу под результат.
пример:
C++
1
2
3
4
5
6
7
8
9
10
TMatrix operator *(TMatrix& m1, TMatrix& m2) {
       TMatrix R;
    for (int i = 0; i < MatrixSize; i++)
        for (int j = 0; j < MatrixSize; j++) {
            R[i][j] = 0;
            for (int k = 0; k < MatrixSize; k++)
                R[i][j] += m1[i][k] * m2[k][j];
        }
         return R;
}
Добавлено через 50 минут
А не матрица у тебя отдельная. Только у тебя получается что ты пытаешься умножить вектор b на матрицу xx. в результате будет вектор длиной 4 а не матрица.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2014, 06:24
Привет! Вот еще темы с ответами:

Умножение матриц - C++
Плиз помогите с написанием программы умножения матриц, дело в том что матрица задана линейным массивом, вот что у меня получилось void...

Умножение матриц - C++
Задача такая : Для заданой квадратической матрицы А заданого порядка n найти произведение А * В, где элементы матрицы В узнаются за...

Умножение матриц - C++
Ребят помогите пожалуйста!!! Требуется написать программку умножения матриц,значения в матрице генерировать случайным образом число...

Умножение матриц - C++
complex &lt;double&gt; c; for (int r = 0; r &lt; 4; r++) for (int col = 0; col &lt; 8; col++) for (int i =...


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

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

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