С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.94/52: Рейтинг темы: голосов - 52, средняя оценка - 4.94
Stas0n
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
1

Решить систему алгебраических линейных неоднородных уравнени

22.07.2011, 15:58. Просмотров 9480. Ответов 152
Метки нет (Все метки)

У меня есть система линейных уравнений. В ней 4000 уравнений.
Киньте плиз код для её решения. Желательно, чтобы он был максимально быстрым.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.07.2011, 15:58
Ответы с готовыми решениями:

Решить систему линейных алгебраических уравнений
Решить CЛАУ 2A^tX=Y^2,где |2 1 5 6| |3| A= |5 2 2 6|...

Методом Гаусса решить систему n линейных алгебраических уравнений
Помогите пожалуйста написать на с++ методом Гаусса решить систему n линейных...

Решить систему алгебраических уравнений методом Гаусса
Решить систему алгебраических уравнений методом Гаусса: 6X1-X2-X3=11,33,...

Решить систему линейных неравенств
Нужно написать программу, решающую систему неравенств. Программа должна...

Решить систему линейных уравнений вида Ax=b методом Зейделя
2)Решить систему линейных уравнений вида Ax=b методом Зейделя 6.9 0,0319...

152
Stas0n
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
04.08.2011, 17:18  [ТС] 61
Я и не говорю, что скорость.. время)
0
grizlik78
Эксперт С++
2018 / 1499 / 206
Регистрация: 29.05.2011
Сообщений: 3,122
04.08.2011, 17:23 62
Нет, и не время.
Если алгоритм1 выполняет n^3 операций, то сложность его O(n^3)
Если алгоритм2 выполняет 1000*n^2 операций, то сложность его O(n^2)
Вопрос: какой из алгоритмов быстрее (требует меньше времени на решение задачи)?
0
Jupiter
Каратель
Эксперт С++
6570 / 3991 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
04.08.2011, 22:01 63
grizlik78, 1-й ?
0
grizlik78
Эксперт С++
2018 / 1499 / 206
Регистрация: 29.05.2011
Сообщений: 3,122
04.08.2011, 22:19 64
Так ведь от n зависит.
Для n < 1000 первый, для n > 1000 второй.
1
Stas0n
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
05.08.2011, 12:02  [ТС] 65
to Юра: скоро запущу прогу на шустрой машине.. посмотрим, что из этого выйдет)

Добавлено через 19 минут
Нароод! помогиет!!
Надо считать столбец свободных членов системы.
Решил просто проверить как работает. Считываю, записываю в массив, вывожу. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 int range;
    cin >> range;
    // Colum of free members
    double *free = new double[range];
    ifstream ifsf("B.txt");
    double q;
    int i = 0;
    int j = 0;
    while ( ifsf >> free[i] )
    {
        i++;
    }
    ifsf.close();
    ofstream ofs("B-0.txt");
    for ( int i = 0; i < range; i++ )
    {
        ofs << free[i] << endl;
    }
    ofs.close();
0
-=ЮрА=-
Заблокирован
Автор FAQ
05.08.2011, 12:35 66
Цитата Сообщение от hello19 Посмотреть сообщение
int i = 0;
Цитата Сообщение от hello19 Посмотреть сообщение
for ( int i = 0; i < range; i++ )
двойное объявление переменных, компилятор не ругался, сейчас запущу твой код, хотя имя для массива free мне ой как не нравиться, лучше не давать переменным названия аналогичные именам стандартных функций
1
Stas0n
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
05.08.2011, 12:38  [ТС] 67
Проблема не в переменных(

Добавлено через 39 секунд
Во время отладки - совершенно не заходит в while(((

Добавлено через 13 секунд
На самом деле довольно часто с этим сталкиваюсь
0
PointsEqual
ниначмуроФ
842 / 526 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
05.08.2011, 12:53 68
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
двойное объявление переменных, компилятор не ругался
и не будет, вторая i живет только в цикле.
0
-=ЮрА=-
Заблокирован
Автор FAQ
05.08.2011, 12:58 69
Твои данные в В.txt представлены не в том виде...

Добавлено через 29 секунд
Цитата Сообщение от PointsEqual Посмотреть сообщение
и не будет, вторая i живет только в цикле.
Будет, компилятор поменяй...
1
Stas0n
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
05.08.2011, 12:59  [ТС] 70
Что значит представлены не в том виде?? там просто столбец чисел.. считываю их как даблы..
0
-=ЮрА=-
Заблокирован
Автор FAQ
05.08.2011, 13:07 71
Цитата Сообщение от hello19 Посмотреть сообщение
Во время отладки - совершенно не заходит в while(((
- а совсем забыл, код вот так должен выглядеть, увидишь что из за неправельного представления данных
C++
1
ifsf>>mass[i];
не инициализирует mass
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
#include <iostream.h>
#include <fstream.h>
 
int main()
{
    int range;
    cin >> range;
    // Colum of free members
    double *mass = new double[range];
    ifstream ifsf("B.txt");
    int i = 0;
    int j = 0;
    while (i < range)
    {
        ifsf>>mass[i];
        cout<<mass[i]<<"\r\n";
        i++;
    }
    ifsf.close();
 
    ofstream ofs("B-0.txt");
    for (j = 0; j < range; j++ )
        ofs<<mass[i]<<"\r\n";
    ofs.close();
    return 0;
}
Добавлено через 4 минуты
Цитата Сообщение от hello19 Посмотреть сообщение
Что значит представлены не в том виде?? там просто столбец чисел.. считываю их как даблы..
Если В был записан в двоичном режиме то есть разница

Добавлено через 2 минуты
hello19, чем тебе не угодил мой строковый вариант считывания, он лишён геморов связанных с режимом записи файла?
2
Stas0n
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
05.08.2011, 13:29  [ТС] 72
Что то не работает((

Добавлено через 2 минуты
Кстати, проверил решение с помощью матпакета... вообщем оно не правильное/))))

Добавлено через 5 минут
Думаю сейчас посмотреть код, который кидал ..эээ.. какой-то товарись несколько постов назад... посмотрим что из этого выйдет.
0
PointsEqual
ниначмуроФ
842 / 526 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
05.08.2011, 13:34 73
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Будет, компилятор поменяй...
почему будет то?
0
Stas0n
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
05.08.2011, 13:45  [ТС] 74
to PointsEqual : предложи код, который нормально считывает...
а вообще я так дальше матрицу считываю... точно таким же методом...
0
bambino
194 / 20 / 5
Регистрация: 05.08.2010
Сообщений: 229
05.08.2011, 13:48 75
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Будет, компилятор поменяй...
Не будет! Мозги себе поминяй, ага.
0
Stas0n
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
05.08.2011, 13:52  [ТС] 76
ЭЭ, парни.. заканчивайте..
предложите лучше как делу помочь...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    int range;
    cout << "Please enter tne range os ypur system" << endl;
    cin >> range;
    // Colum of free members
    double *free = new double[range];
    ifstream ifsf("B.txt");
    double q;
    int i = 0;
    int j = 0;
    while ( i < range )
    {
        ifsf >> free[i];
        i++;
    }
    ifsf.close();
    ofstream ofs("B-0.txt");
    for ( int w = 0; w < range; w++ )
    {
        ofs << free[w] << endl;
    }
    ofs.close();
Самое забавное то, что точно такое же считывание работает, когда я считываю матрицу:
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
    int range;
    cout << "Please enter tne range os ypur system" << endl;
    cin >> range;
 
    // Allocate main matrix
    double **matrix = new double*[range];
    for (int i = 0; i < range; i++) 
    {
        matrix[i] = new double[range];
    }
 
    // adjacency matrix
    double **matrix2 = new double*[range];
    for (int i = 0; i < range; i++) 
    {
        matrix2[i] = new double[range];
    }
    // reading matrix from file
    ifstream ifs("A.txt");
 
    while ( ifs >> q )
    {
        matrix[i][j] = q;
        j++;
        if ( j % range == 0 ) { i++; j = 0;}
    }
    ifs.close();
0
-=ЮрА=-
Заблокирован
Автор FAQ
05.08.2011, 14:17 77
Цитата Сообщение от bambino Посмотреть сообщение
Не будет! Мозги себе поминяй, ага.
себе поминяй если ты не знаешь что такое повторное объявление то иди поучись, достали такие выскочки!
1
Миниатюры
Решить систему алгебраических линейных неоднородных уравнени  
grizlik78
Эксперт С++
2018 / 1499 / 206
Регистрация: 29.05.2011
Сообщений: 3,122
05.08.2011, 14:18 78
-=ЮрА=-, кто ж виноват, что ты достандартный компилятор используешь?
0
-=ЮрА=-
Заблокирован
Автор FAQ
05.08.2011, 14:20 79
Цитата Сообщение от hello19 Посмотреть сообщение
Самое забавное то, что точно такое же считывание работает, когда я считываю матрицу:
- она сформирована програмно а В скорее всего нет
1
bambino
194 / 20 / 5
Регистрация: 05.08.2010
Сообщений: 229
05.08.2011, 14:22 80
-=ЮрА=-, Иди учи С++ лучше, а именно про область видимости переменной, а не показуй тут всем свою тупизну.
http://liveworkspace.org/code/993a23bd2364fb491037c9871ea6d7d4
0
05.08.2011, 14:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2011, 14:22

Система линейных алгебраических уравнений
Помогите пожалуйта с програмой вопрос жизни и смерти!!! Мне нужно написать...

Система линейных алгебраических уравнений
Решить систему линейных алгебраических уравнений. Метод решения выбрать...

Система линейных алгебраических уравнений
помогите исправить ошибки! #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...


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

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

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