32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 837
|
||||||
1 | ||||||
Умножение матриц по Винограду19.09.2011, 08:29. Показов 13534. Ответов 38
Метки нет (Все метки)
Для вариантов, предусматривающих решение систем линейных уравнений, умножение матриц и вычисление их определителей, размерность матрицы коэффициентов и ее элементы вводятся пользователем.
Необходимо реализовать следующие положения: для вариантов по темам «матрицы», «системы линейных уравнений»: реализовать генерацию данных случайным образом; включить в функциональность программы оценку времени выполнения алгоритма; оценить время работы алгоритма для матриц размерностей от 5 до 100 (верхний предел может быть больше), результаты измерений записать в файл; при этом время теста должно быть соизмеримо со временем принятия лабораторной работы; на основании данных теста из файла вывести график зависимости времени работы программы от размерности матрицы, сделать выводы. Само задание Решение систем линейных уравнений методом исключения Гаусса с выбором главного элемента по столбцу. Умножение матриц с использованием алгоритма Винограда. может кто знает хотя бы одно задание помогите пожалуйста разобраться Добавлено через 15 минут вот что то нашел ну скорее всего это не то Умножение матриц по Винограду Если посмотреть на результат умножения двух матриц, то видно, что каждый элемент в нем представляет собой скалярное произведение соответствующих строки и столбца исходных матриц. Можно заметить также, что такое умножение допускает предварительную обработку, позволяющую часть работы выполнить заранее. Рассмотрим два вектора V = (v1, v2, v3, v4) и W = (w1, w2, w3, w4). Их скалярное произведение равно: V • W = v1w1 + v2w2 + v3w3 + v4w4. Это равенство можно переписать в виде: V • W = (v1 + w2)(v2 + w1) + (v3 + w4)(v4 + w3) - v1v2 - v3v4 - w1w2 - w3w4. Вы сами можете без труда проверить эквивалентность двух последних выражений. Кажется, что второе выражение задает больше работы, чем первое: вместо четырех умножений мы насчитываем их шесть, а вместо трех сложений - десять. Менее очевидно, что выражение в правой части последнего равенства допускает предварительную обработку: его части можно вычислить заранее и запомнить для каждой строки первой матрицы и для каждого столбца второй. На практике это означает, что над предварительно обработанными элементами нам придется выполнять лишь первые два умножения и последующие пять сложений, а также дополнительно два сложения. Вот как выглядит полный алгоритм Винограда для умножения матрицы G размером a x b на матрицу H размером b x c. Результат записывается в матрицу R размером a x c.
0
|
19.09.2011, 08:29 | |
Ответы с готовыми решениями:
38
Умножение матриц (не работает для неквадратных матриц) Умножение матриц Си Умножение двух матриц Умножение неквадратных матриц |
fasked
|
02.10.2011, 21:28
Умножение матриц по Винограду
#21
|
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
02.10.2011, 21:47 | 23 |
программа не собралась - запускать нечего
0
|
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 837
|
|
02.10.2011, 22:20 [ТС] | 24 |
все удалил из папки все равно такая же ошибка
Добавлено через 8 минут так что еще добавить Добавлено через 21 минуту такую же ошибку выдает
0
|
3564 / 2711 / 347
Регистрация: 11.03.2009
Сообщений: 6,240
|
|
02.10.2011, 23:51 | 26 |
zmei89, в нижнем окошке выводится отчет о построении, в конце явственно читается, что есть ошибки. Поподробнее, что за ошибки?
0
|
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 837
|
|
03.10.2011, 09:17 [ТС] | 27 |
вот и ошибки
0
|
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 837
|
|
03.10.2011, 09:26 [ТС] | 29 |
Visual Studio 2010
0
|
Заблокирован
|
|
03.10.2011, 09:46 | 30 |
- с этого надо было начинать построение задания.
1 - е код приведенный мной написан на Си и имеет старый стиль заголовков (include <stdlib.h> а не include <cstdlib>) 2 - е даже здесь по форуму встречал кучу топиков о неправильном или кривом инсталлировании 10-ки, а также её неправильной настройке. Единсвенное что могу сделать перправить код под С++, думаю тогда 10-ка его откомпилирует без проблем, поождите перу минут...
0
|
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 837
|
|
03.10.2011, 09:47 [ТС] | 31 |
Переправте пожалуйста!
0
|
Заблокирован
|
||||||
03.10.2011, 09:53 | 32 | |||||
Вот подогнал под С++
0
|
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 837
|
|
03.10.2011, 13:59 [ТС] | 33 |
так же ошибки
0
|
3564 / 2711 / 347
Регистрация: 11.03.2009
Сообщений: 6,240
|
|
03.10.2011, 14:15 | 35 |
0
|
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 837
|
|
03.10.2011, 14:22 [ТС] | 36 |
fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "StdAfx.h"" в источник.
1>
0
|
Заблокирован
|
||||||
03.10.2011, 15:04 | 37 | |||||
zmei89, пробуйте с std::
C++ код
1
|
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 837
|
|
05.10.2011, 16:51 [ТС] | 38 |
а можете не много пояснить код просто не все понятно
0
|
32 / 7 / 1
Регистрация: 10.09.2010
Сообщений: 837
|
|
28.11.2011, 16:40 [ТС] | 39 |
а как применить для кода программы
включить в функциональность программы оценку времени выполнения алгоритма; оценить время работы алгоритма для матриц размерностей от 5 на 5 (верхний предел может быть больше), результаты измерений записать в файл; при этом время теста должно быть соизмеримо со временем принятия лабораторной работы; на основании данных теста из файла вывести график зависимости времени работы программы от размерности матрицы, сделать выводы все файле Excele должно быть
0
|
28.11.2011, 16:40 | |
28.11.2011, 16:40 | |
Помогаю со студенческими работами здесь
39
Параллельное умножение матриц Умножение квадратных матриц Умножение матриц большого размера Не правильно происходит умножение матриц Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |