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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
silverserfer
-123 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 12
#1

Двумерные массивы (СЛАУ). Привести систему к треугольному виду - C++

30.12.2012, 01:24. Просмотров 2261. Ответов 22
Метки нет (Все метки)

Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы.С помощью допустимых преобразований привести систему к треугольному виду. Найти количество строк, среднее арифметическое элементов которых меньше данной величины.

Незнаю как решить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2012, 01:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двумерные массивы (СЛАУ). Привести систему к треугольному виду (C++):

С помощью допустимых изменений привести систему к треугольному виду... - C++
Надо выполнить вот это задание ": Коефіцієнти системи лінійних рівнянь задані у вигляді прямокутної матриці. З допомогою допустимих...

Привести вектор к треугольному виду - C++
Я решаю систему лин. уравнений одной малоизвестной модификацией метода Гаусса. В чем суть: => есть вектор с таким содержимым: 1...

Привести матрицу к треугольному виду - C++
Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы. С помощью допустимых преобразований привести систему к...

Как привести матрицу к треугольному виду - C++
Нужно привести матрицу к треугольному виду, можно написать прогу , а то какие нашел не работают ни черта

Задача: привести матрицу к треугольному виду - C++
Блин, я никак не разберусь, может тут кто знает? Задание: Дана квадратная матрица размера m*n. С помощью допустимых преобразований...

Как привести матрицу к треугольному виду по методу гауса? - C++
Может у кого есть прога? Нужна срочно!

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
30.12.2012, 03:13 #2
эта задача на 90% не на программирование а на линейную алгебру. Её не могли тебе в школе задать. Значит в институте проспал тему. Легче это спросить у математиков, а не программистов. Хотя программистам и положено знать лин.алгебру, конечно, всё-равно задача мало что имеет с программированием общего.
silverserfer
-123 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 12
30.12.2012, 03:57  [ТС] #3
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
эта задача на 90% не на программирование а на линейную алгебру. Её не могли тебе в школе задать. Значит в институте проспал тему. Легче это спросить у математиков, а не программистов. Хотя программистам и положено знать лин.алгебру, конечно, всё-равно задача мало что имеет с программированием общего.
А кто сказал что мне её в школе задали интересно)). Я в универе вообще то учусь.

Добавлено через 2 минуты
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
эта задача на 90% не на программирование а на линейную алгебру. Её не могли тебе в школе задать. Значит в институте проспал тему. Легче это спросить у математиков, а не программистов. Хотя программистам и положено знать лин.алгебру, конечно, всё-равно задача мало что имеет с программированием общего.
с программированием она как раз имеет много общего потому как она по методу гаусса решается , а программу составить надо эту, и при том есть много подобных сайтов решения таких задач. Но мне нужно на с++ написать её.
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
30.12.2012, 04:19 #4
алгоритм Гаусса. задача, решенная 100500 раз. в интернете полно реализаций и статей с кусками кода

Добавлено через 9 минут
например
http://iproc.ru/parallel-programming/lection-4/
-=ЮрА=-
Заблокирован
Автор FAQ
30.12.2012, 15:17 #5
Цитата Сообщение от silverserfer Посмотреть сообщение
с программированием она как раз имеет много общего потому как она по методу гаусса решается , а программу составить надо эту, и при том есть много подобных сайтов решения таких задач. Но мне нужно на с++ написать её.
- лови Методом Гаусса решить систему n линейных алгебраических уравнений код на Си с полными пояснениями, думаю перебить в С++ труда не составит...
silverserfer
-123 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 12
31.12.2012, 11:46  [ТС] #6
Мне нужно написать программу мою а не ту которую мне предлагают скопировать!!!! не надо кидать сюда исходники которые типа ясны , нужно составить именно под моё условие задачи программу, кто может написать помогите плиз.
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
31.12.2012, 12:11 #7
ого какой вы наглец, а вы проявите хоть каплю творческого индивидуализма, и из кусков кода составте свою, если не можете(а скорее всего не хотите) то вам врятли кто будет помогать, после таких заявлений, по крайней мере бесплатно,вы не первый и не последний первак лоботряс
silverserfer
-123 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 12
31.12.2012, 13:00  [ТС] #8
Цитата Сообщение от Nixy Посмотреть сообщение
ого какой вы наглец, а вы проявите хоть каплю творческого индивидуализма, и из кусков кода составте свою, если не можете(а скорее всего не хотите) то вам врятли кто будет помогать, после таких заявлений, по крайней мере бесплатно,вы не первый и не последний первак лоботряс
ей богу я не лоботряс , не получается у меня придумать алгоритм правильно, я два дня уже бьюсь а собирать из куском не вариант а чужие разбирать это мазохизм, потому как там вообзе задача про одно и всего ненужного для моей задачи напихано
palva
2610 / 1832 / 262
Регистрация: 08.06.2007
Сообщений: 6,989
Записей в блоге: 4
31.12.2012, 13:14 #9
А зачем придумывать алгоритм? Нужно взять готовый Алгоритм Гаусса. Он опять-таки подробно расписан в учебниках по линейной алгебре, и в интернете можно найти. Если есть конкретные вопросы, то можно конечно, спросить на форуме. Но если с нуля, то что мы здесь гурьбой будем в спешке объяснять? Только запутаем. Логичнее взять солидный учебник, где каждая фраза за десятилетия переизданий отлилась в граните.
nonedark2008
905 / 644 / 132
Регистрация: 28.07.2012
Сообщений: 1,738
31.12.2012, 13:17 #10
Цитата Сообщение от silverserfer Посмотреть сообщение
не получается у меня придумать алгоритм правильно
И не нужно ничего придумывать. Метод Гаусса как раз подразумевает приведение системы к треугольному виду. Вы бы хоть поинтересовались на счет того, что предлагают. А чужой код разбирать - это не мазохизм, а отличный способ понять реализацию задачи в рамках языка. Тем более, если код хорошо оформлен.
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
31.12.2012, 13:18 #11
А если вы учитесь на программиста, то разбирать чужой код это ваша обязаность, причем даже плохо написанный.
silverserfer
-123 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 12
31.12.2012, 13:29  [ТС] #12
Цитата Сообщение от nonedark2008 Посмотреть сообщение
И не нужно ничего придумывать. Метод Гаусса как раз подразумевает приведение системы к треугольному виду. Вы бы хоть поинтересовались на счет того, что предлагают. А чужой код разбирать - это не мазохизм, а отличный способ понять реализацию задачи в рамках языка. Тем более, если код хорошо оформлен.
Вот в том то и дело что код вообще не читабелен почти!

Добавлено через 2 минуты
Цитата Сообщение от Nixy Посмотреть сообщение
А если вы учитесь на программиста, то разбирать чужой код это ваша обязаность, причем даже плохо написанный.
Я вам могу сказать одно , что я только учусь , и задача это вообще не моя , я свои задачи все решил и сдал уже и получил зачет , а моему одногруппнику меньше повезло у него были проблемы с призывом но сейчас учится и он пропустил пары эти по языку и ему дали 4 задчаи решить , сам он не может я решил ему помочь , 4 задачи я решил но вот эту я не могу решить, хотя как её решить на листе я знаю!
nonedark2008
905 / 644 / 132
Регистрация: 28.07.2012
Сообщений: 1,738
31.12.2012, 13:52 #13
Цитата Сообщение от silverserfer Посмотреть сообщение
Вот в том то и дело что код вообще не читабелен почти!
Самой первой ссылкой вам предлагали сайт с хорошим разъяснением и замечательным примером шаблонной функции.
sandye51
программист С++
682 / 584 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
31.12.2012, 13:52 #14
Приведение матрицы к вехрнему треугольному виду)
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
59
60
61
62
63
64
65
66
67
68
69
70
71
//
//  main.cpp
//
//  Created by Ilya Lavrenov on 12/31/12.
//
 
#include <iostream>
#include <emmintrin.h>
 
// приведение матрицы к треугольному виду
void to_triangle(double** matrix, unsigned int size)
{
    // y - ведущая строка
    for (unsigned int y0 = 0; y0 < size; ++y0)
    {
        if (matrix[y0][y0] == 0.0)
            return;
        
        // вычитаемые строки
        for (unsigned int y1 = y0 + 1; y1 < size; ++y1)
        {
            // нахождение коээфициента
            double _k = matrix[y1][y0] / matrix[y0][y0];
            
            unsigned int x = y0;
#ifdef __SSE2__
            __m128d k = _mm_load1_pd(&_k);
            for ( ; x <= size - 2; x += 2)
            {
                __m128d r0 = _mm_loadu_pd(matrix[y0] + x);
                __m128d r1 = _mm_loadu_pd(matrix[y1] + x);
                r0 = _mm_mul_pd(k, r0);
                r1 = _mm_sub_pd(r1, r0);
                _mm_storeu_pd(matrix[y1] + x, r1);
            }
#endif
            for ( ; x < size; ++x)
                matrix[y1][x] -= matrix[y0][x] * _k;
        }
    }
}
 
int main(int argc, const char * argv[])
{
    double** matrix = NULL;
    unsigned int size = 0u;
    
    std::cout << "Введите размер матрицы" << std::endl;
    std::cin >> size;
    
    matrix = new double*[size];
    for (unsigned int y = 0u; y < size; ++y)
        matrix[y] = new double[size];
    
    std::cout << "Введите матрицу размером " << size << "x" << size << ": " << std::endl;
    for (unsigned int y = 0u; y < size; ++y)
        for (unsigned int x = 0u; x < size; ++x)
            std::cin >> matrix[y][x];
    
    to_triangle(matrix, size);
    
    std::cout << "Ответ: " << std::endl;
    for (unsigned int y = 0u; y < size; ++y)
    {
        for (unsigned int x = 0u; x < size; ++x)
            std::cout << matrix[y][x] << " ";
        std::cout << std::endl;
    }
    
    return 0;
}
nonedark2008
905 / 644 / 132
Регистрация: 28.07.2012
Сообщений: 1,738
31.12.2012, 13:55 #15
sandye51, плохой пример. Вы бы еще предложили с использованием сторонней библиотеки... Хопа, решение задачи тремя строчками >_>
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.12.2012, 13:55
Привет! Вот еще темы с ответами:

Привести матрицу к треугольному виду Гауссом (не могу найти работающий код) - C++
Нужен код для приведения матрицы к треугольному виду (матрица статическая, целочисленная). Пробовал гуглить, в том числе и тут....

Как привести матрицу к верхнему треугольному виду? С++ (Имеется код нахождения нижней треуг. матрицы) - C++
Нахождение нижней треуг. матрицы: for (i=0, k=nn-1; i&lt;nn&amp;&amp;k&gt;=0; i++, k--) for (j=0; j&lt;i;...

Свести матрицу к треугольному виду - C++
for (int i = 1; i &lt; N; ++i) for (int k = i; k &lt; N; ++k) for (int j = N-1; j &gt;= 0; --j) if (mas !=0 &amp;&amp; mas !=0 &amp;&amp; mas != 0)...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.12.2012, 13:55
Ответ Создать тему
Опции темы

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