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

Умножить вектор строку на вектор матрицу - C++

Восстановить пароль Регистрация
 
Beeeeetlejjuice
0 / 0 / 0
Регистрация: 12.10.2015
Сообщений: 18
19.05.2016, 11:10     Умножить вектор строку на вектор матрицу #1
Вот код, подключены QT5 библиотеки, нужно написать функцию для умножения вектор строку B на матрицу C

#include "Matrixes.h"
#include <math.h>
#include <QApplication>

QTextCodec *pCodec = QTextCodec::codecForName("Windows-1251"); //1
using namespace BigMatrix;

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
try
{
QString FileName = QFileDialog::getOpenFileName(NULL,
Rus("Открытие файла с исходными данными"), "",
Rus("Текстовый файл(*.txt)"), NULL, QFileDialog::Option::ReadOnly); //2
if (FileName.isEmpty())
throw Error(Rus("Передумали работать"), Error::ErrOK);
QFile File(FileName); //3
File.open(QIODevice::ReadOnly);
if (!File.isOpen()) throw
Error(Rus("Файл исходных данных ") + FileName +
Rus(" не открылся!"), Error::ErrFileOpen);
Stream Stream(&File); //4
Matrix a(Stream);
Stream.readLine();
a.Show();

int N = a.RowCount();
int M = a.ColumnCount();
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
if (a(i,j) <= a(j,i))
{
double B = a(i,j);
a(i,j) = a(j,i);
a(j,i) = B;
}
else a(i,j) = sqrt((abs(sin(a(j,i)))));
}
}

double P = 1.0;
for (int j = 1; j < N; j++)
{
double D = 0.0;
for (int i = 0; i < N; i++)
{
D += sqrt(a(i,j));
}
P *= D / N;
}

Matrix C(N, N);


for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j = j + 2)
C(i,j) = exp(sin(P * a(i,j)));
for (int j = 1; j < N; j = j + 2)
C(i,j) = sqrt(P * (abs(cos(a(i,j)))));
}
C.Show();

do
{
FileName = QFileDialog::getSaveFileName(NULL,
Rus("Сохранение результатов расчета"), "", Rus("Текстовый файл(*.txt)"));
if (FileName.isEmpty())
if (QMessageBox::question(NULL, Rus("Файл не выбран"), Rus("Не хотите сохранять?")) == QMessageBox::Yes)
return 0; //5
else
continue;
File.setFileName(FileName); //6
File.open(QIODevice::WriteOnly); //7
if (!File.isOpen())
{
QMessageBox::critical(NULL, Rus("Ошибка!"), Rus("Файл вывода результатов ") +
FileName + Rus(" не открылся!"));
continue;
}
} while (FileName.isEmpty());
(~a).Save(Stream); //8
C.Save(Stream);
}
catch (Error Err)
{
Err.showMsg();
return Err.GetError();
}
catch (std::bad_alloc)
{
QMessageBox::critical(NULL, Rus("Ошибка!"),
Rus("Недостаточно памяти для создания объекта"));
return Error::NoMemory;
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2016, 11:10     Умножить вектор строку на вектор матрицу
Посмотрите здесь:

Найти обратную матрицу и умножить ее на вектор C++
C++ Дано матрицу D[4,4] и вектор V[4].
C++ Перемножить матрицу и вектор
Умножить квадратную матрицу на вектор C++
в матрице А(n x m) найти первый столбец, не содержащий отрицательных элементов, и умножить его как вектор на матрицу А C++
C++ Матрицу произвольного размера преобразовать в вектор
Умножить матрицу 10х10 на вектор из 10 элементов C++
C++ Умножить вектор-строку на матрицу

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 02:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru