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

Создать СЛАУ размерности 1000х1000 в С++, чтобы система имела только одно решение - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Класс "Студия звукозаписи" http://www.cyberforum.ru/cpp-beginners/thread1701126.html
Помогите написать программу. При выполнении лабораторной работы требуется создать шаблон класса-контейнера, реализующего динамическую структуру данных заданного типа и выполнить требуемую обработку. Выполнение лабораторной работы следует осуществлять с учетом следующих требований: Динамическую структуру требуется определить в виде шаблонного класса, реализующего заданное поведение. Тип...
C++ Глюк при вводе через консоль Как можно обеспечить правильный ввод? При вводе цифр все нормально, а вот когда ввести символ или строку то прога слетает. Вот код : #include <iostream> #include <cstdlib> #include <windows.h> http://www.cyberforum.ru/cpp-beginners/thread1701113.html
C++ Определить в заданной последовательности целых чисел количество чисел Фибоначчи
Выполнить задания, если задана последовательность целых чисел длиной n. Определить в заданной последовательности целых чисел количество чисел Фибоначчи. Пожалуйста, если можете, помогите , вообще не пойму как ее решать((
C++ Segmentation fault
Почему при таком варианте происходит Segmentation fault? vec3f trace(const Scene& scene, const Ray& ray) { const RenderObject* renderObject = scene.getIntersectedObject(ray); if (renderObject) { return renderObject->getColor(intersectionPoint); }
C++ Создать список, k-ый элемент которого содержит сумму первых k введенных чисел http://www.cyberforum.ru/cpp-beginners/thread1701079.html
C клавиатуры вводится несколько целых чисел.Создать список,к-й элемент которого содержит сумму первых к введенный чисел.
 

Показать сообщение отдельно
nokiago
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 38
04.04.2016, 16:23  [ТС]     Создать СЛАУ размерности 1000х1000 в С++, чтобы система имела только одно решение
Nick Alte, у меня получилось создать единичную матрицу, матрицу свободных членов и через большое количество итераций заполнить матрицу, которая имеет только одно решение.
я создал матрицу 1000х1000 и вектор B в 1000 элементов, который равен [1,2,...,1000]. Соответственно, у меня есть сейчас найденные x1,...,x1000. (x1 = 1, x2 = 2, x1000 = 1000).
Я правильно мыслю, что по преобразованию строк в матрице 1000х1000 и той же строки в векторе B, решения (x1=1,x2=2,...,x1000=1000), если я захочу решить эту матрицу, мои искомые x1,...,x1000 останутся прежними?

и ещё один вопрос, можно ли как-то сделать так, чтобы коэффициенты в матрице и в векторе были не такими огромными или не такими маленькими (потому что записываются числа у меня с е+006 или е-007 и т.д.).
привожу код, где создается и записывается эта матрица и вектор

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
// matrica.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include<time.h>
#include<stdlib.h>
#include <fstream>
 
#define n 1000
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    srand(time(NULL));
    double tab[n][n];
    
    double B[n];
    for(int i=0;i<n;i++) {
        B[i]=i+1;
    }
    
 
    int i=0, j=0;
 
    for (i=0; i<n; i++)
    {
        for (j=0; j<n; j++) {
            if (i==j) 
            {tab[i][j]=1;}               
            else 
            {tab[i][j]=0;}
        }
    }
 
        double K;
        int N2,N1;
 
        for(int i=0;i<10000;i++) {
        K=(0.1+rand()%1);
        N1=rand()%n;
        N2=rand()%n;
 
        for(int ii = 0; ii < n; ++ii)
        {
            if(N1 != N2) {
                tab[N2][ii] += tab[N1][ii] * K;
                if(ii==0) {B[N2] = B[N2] + B[N1]*K;}
            }
        }
        }
 
        ofstream f;
 
        for(int i=0;i<n;i++) {
        f.open("e:\\b_matrix.txt", ios_base::app);
        f<<B[i]<<" ";
        f.close();
        }
 
 
        for(int i=0;i<n;i++) {
        for(int j=0;j<n;j++) {
            f.open("e:\\matrix.txt", ios_base::app);
            f<<tab[i][j]<<" ";
            f.close();
        }
            f.open("e:\\matrix.txt", ios_base::app);
            f<<"\n";
            f.close();
    }
 
    system("pause");
    return 0;
}
 
Текущее время: 00:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru