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

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

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

Студворк — интернет-сервис помощи студентам
У меня есть система линейных уравнений. В ней 4000 уравнений.
Киньте плиз код для её решения. Желательно, чтобы он был максимально быстрым.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.07.2011, 15:58
Ответы с готовыми решениями:

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

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

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

152
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
05.08.2011, 16:41
Студворк — интернет-сервис помощи студентам
Я за вводить писал всмысле из матрицы вводить. Ведь ввод А занимает кучу времениО_о
Ок, я работать, вечером привееду результаты в 2008
1
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
05.08.2011, 16:43  [ТС]
Теперь тот же косяк и с матрицей коэффициентов))
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
05.08.2011, 16:57
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Введением EPS мы можем что то выграть, но не факт
А как еще сравнивать double с нулем?
А если не сравнивать, то работать будет только с матрицами без нулевых элементов.
Чтобы работало с любыми матрицами, находят опорный элемент. У вас я этого не увидел.
Хотя, возможно, плохо смотрел.
0
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
05.08.2011, 17:20  [ТС]
Кстати, может кто знает какой нить матпакет, который сможет решить эту систему? что то типа mathlab?
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
05.08.2011, 17:32
hello19, ну а чем, собственно, matlab не подходит? Или scilab? Разумеется, надо использовать инструментарий для Sparse Matrix.
0
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
05.08.2011, 17:35  [ТС]
scilab уже юзаю... хотелось бы чтобы пошустрее решало что-то...
Что касается матлаба, то никак не могу найти бесплатную версию... везде платить)
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
05.08.2011, 20:37
Цитата Сообщение от hello19 Посмотреть сообщение
scilab уже юзаю... хотелось бы чтобы пошустрее решало что-то...
hello19, sсilab матрицу из #30 решает меньше секунды. Надо ещё шустрее?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
05.08.2011, 22:20
https://www.cyberforum.ru/cpp/thread3119.html - копался по форуму. А вобще всерьёз подумываю об испытании матричного метода решения СЛАУ
Вот что удалось откопать
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <iostream>
#include <time.h>
using namespace std;
const int n = 4;
void vivod(int**, int);
void del(int**, int**, int, int, int);
long Determinant(int**, int);
void main()
{
    time_t t;
    srand(time(&t));
    int** a = new int*[n];
    for(int i = 0; i < n; i++)
        a[i] = new int[n];
    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j ++)
            a[i][j] = rand() % 10;
    vivod(a, n);
    long dt = Determinant(a, n);
    cout << "Determinant=" << dt <<endl;
    for(int i = 0; i < n; i++)
        delete[] a[i];
    delete[] a;
}
void vivod(int** a, int n)
{
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
            cout << a[i][j] <<'\t';
        cout << endl;
    }
}
void del(int** a, int** b, int m, int i, int j)
{
    int di = 0;
    int dj;
    for(int ki = 0; ki < m - 1; ki++)
    {
        if(ki == i) 
            di = 1;
        dj = 0;
        for(int kj = 0; kj < m - 1; kj++)
        {
            if(kj == j)
                dj = 1;
            b[ki][kj] = a[ki + di][kj + dj];
        }
    }
}
long Determinant(int** a, int n)
{
    int** b = new int*[n];
    for(int i = 0; i < n; i++)
        b[i] = new int[n];
    if(n < 1)
    {
        cout << "determinanta net" <<endl;
        return 0;
    }
    else
        if(n == 1)
            return a[0][0];
        else
            if(n == 2)
                return a[0][0] * a[1][1] - a[0][1] * a[1][0];
            else
            {
                int d = 0;
                int k = 1;
                
                for(int i  = 0; i < n; i++)
                {
                    del(a, b, n, i, 0);
                    d += k * a[i][0] * Determinant(b, n - 1);
                    k--;
                }
                return d;
            }
    for(int i = 0; i < n; i++)
        delete[] b[i];
    delete[] b;
    
    return 0;
}
Добавлено через 4 минуты
Сейчас сдесь смотрю http://alglib.sources.ru/matrixops/general/det.php

Добавлено через 37 секунд
Сейчас сдесь смотрю http://alglib.sources.ru/matrixops/general/det.php
2
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
06.08.2011, 20:44  [ТС]
ммм.... интересность
0
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
08.08.2011, 10:30  [ТС]
Я на самом деле тоже уже на alglib скачивал.. что-то у меня с ним не срослось)
Кстати, интересную особенность заметил. Помнишь ту мою проблему со считыванием файла?
Так вот, как только появляется косяк со считыванием из файла с расширением txt нужно просто его содержимое копирнуть в другой файл с расширением txt. Вообще понятия не имею почему и как это, но... работает.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
08.08.2011, 14:50
Цитата Сообщение от hello19 Посмотреть сообщение
Так вот, как только появляется косяк со считыванием из файла с расширением txt нужно просто его содержимое копирнуть в другой файл с расширением txt. Вообще понятия не имею почему и как это, но... работает.
возможно связано с кодировкой, ума не приложу. А косяки с файлами которые из форума сохраняешь или с твоими собстенными. Если с тему что сюда выкладывал - возможно редактор загрузки изменил в них кодировку
1
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
08.08.2011, 14:52  [ТС]
с моими...
можно как нить вообще избавиться от этого? я имею ввиду от того, чтобы по 10 раз пересохранять содержимое файла?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
08.08.2011, 16:19
Система решена!После реализации алгоритма вычёркивания строк и столбцов, метод Гаусса начал обрабатывать систему где-то за 2 секунды, решение занимает около 10 секунд. Сжатие матрицы сделал посредством обычных присваиваний, как оказалось работа memcpy приводила к потере строк, в результате скорость алгоритма немножко пострадала, зато считает правильно и довольно быстро!
В архивах - сам cpp-шник и Матрицы А В а также результат расчёта сохранённый в Х.txt
Вложения
Тип файла: rar SLAU8.cpp.rar (1.6 Кб, 19 просмотров)
Тип файла: rar ABX.rar (28.8 Кб, 14 просмотров)
1
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
08.08.2011, 16:21  [ТС]
Сейчас посмотрим что там и как
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
08.08.2011, 16:25
Давай давай, напишешь как оттестируешь!
1
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
08.08.2011, 16:26  [ТС]
Интересно интересно... просто я решил туже систему на матпакете scilib и результаты вообще не такие))))))
кстати, почему матрица А с таким непонятным расширением?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
08.08.2011, 16:32
Цитата Сообщение от hello19 Посмотреть сообщение
кстати, почему матрица А с таким непонятным расширением?
Я её через свой конвертер переганял из 25 Мб-ной, кстати по запаре не тот файл с А бросил, вот он inpA, просто переименовал СЛУ1 - Коэффициенты. В программе юзаю именно её смотри код в срр-шнике
C++
1
2
3
4
5
6
if(bContinue)
    if(!(f = fopen(/*"A.txt.tmp"*/"inpA.txt","rb+")))
    {
        printf("ERROR OPEN A.TXT : %s\r\n",strerror(GetLastError()));
        bContinue = false;
    }
А результаты легко проверить подстановкой, не забывай что если в scilib вводил А с ноликами на главной диагонали, без вычёркиваний, решение не точным выйдет...Если элемент ноль - его нужно вычёркивать - этим и могу объяснить различие результатов. Можешь ввести проверку и перемножить А на Х
Вложения
Тип файла: rar inpA.rar (19.4 Кб, 11 просмотров)
1
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
08.08.2011, 16:36  [ТС]
Наличие этих нулевых строчек по идее ни как не сказывается на результате.
В матпакете я решил систему порядка 3638 и 3635(без плохих строчек)
и результаты совпали (хотя есть отличия, но они где-то в 8 знаке после запятой)
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
08.08.2011, 16:40
Сейчас доделываю код проверки inpA*X - B если будут величины гораздо меньше нуля - посчиталось правильно, ещё напишу...
1
3 / 4 / 1
Регистрация: 13.07.2011
Сообщений: 313
08.08.2011, 16:41  [ТС]
я сейчас вручную прорешал 3 уравнения и... кароч ваще не сходится ни с одним результатом))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.08.2011, 16:41

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

Решить систему линейных уравнений вида Ax=b методом Зейделя
2)Решить систему линейных уравнений вида Ax=b методом Зейделя 6.9 0,0319 0,039 0,461 0,0191 6,0 0,0333 0,405 0,0134 0,0205 5,1...

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

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

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


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

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru