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

Решение системы методом Гаусса и разбор ошибок - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ задача найти преимущества использования контенеров vec и set http://www.cyberforum.ru/cpp-beginners/thread660256.html
Пока не нашел особо больших кординальных преимуществ set'a . В учебнике предлагают решить такой пример: Вводим слово-исключение, если такого в контенере нет -> забиваем в конт. Потом вводим текст и удаляем слова исключения, если найдутся... Не знаю, я только одно пока отличие нашел, это find, у векторя ее наверно нет (или я про нее не знаю просто), поэтому приходится перебирать элементы по...
C++ Вывести порядковый номер последнего из тех его элементов Ак, которые удовлетворяют двойному неравенству 1) Дано целое число N (>0). Сформировать и вывести целочисленный массив размера N, содержащий степени двойки от первой до N-й: 2,4,8,16,..... 2) Дан целочисленный массив А размера 10. Вывести порядковый номер последнего из тех его элементов Ак, которые удовлетворяют двойному неравенству А1<Ak<A10. Если таких элементов нет, то вывести 0. 3) Дан массив А размера N. Сформировать новый массив... http://www.cyberforum.ru/cpp-beginners/thread660225.html
C++ Исправить ошибки
Здравствуйте помогите исправить ошибки , второй день мучаюсь , компилятор Дев С++ #include <stdio.h> #include <conio.h> #include <math.h> #include<stdlib.h> #include <cstdlib> #include <time.h> #include <iostream>
Конструктор копирования, деструктор при наследовании C++
Есть класс A и производный от него B. Написать конструктор копирования, деструкторы для обоих классов. class A { public: int *a; A() { a = new int; for(int i = 0; i < 10; i++) a = i; //cout << "A constr " << this << endl; }
C++ найти сумму модулей элементов массива, после первого отрицательного элемента и сделать замер времени http://www.cyberforum.ru/cpp-beginners/thread660212.html
помогите пожалуйста с задачей #include <iostream> #include <stdlib.h> #include <math.h> #include <time.h> using namespace std; int main()
C++ На циклы do while даны два действительных числа а1,а2,... . Известно, что а1>0 и что среди а2,а3,... есть хотя бы одно отрицательное число. Пусть а1,...,аn - члены данной пос-ти, предшествующие первому отрицательному члену( n заранее неизвестно). Получить: |a1-an|. подробнее

Показать сообщение отдельно
SlashX6
16 / 16 / 1
Регистрация: 16.03.2012
Сообщений: 430

Решение системы методом Гаусса и разбор ошибок - C++

29.09.2012, 17:21. Просмотров 1099. Ответов 4
Метки (Все метки)

Добрый вечер! Пару дней назад начал изучать C++ для выполнения данного задания. Задание заключается в следующем: "Решить систему равенств с точностью до 0,0001, используя метод Гаусса."
Почитав и посмотрев книжки/видео уроки, ринулся писать решения. На бумаге всё просто, а вот с программой нет.
Использую Microsoft Visual Studio 2010 для выполнения поставленной задачи. Visual Studio выдаёт ошибки и много, как я понял некоторые ошибки это просто глюки программы.

Не моглибы Вы помочь с решением. Именно вот такого "подробного" типа решением чтобы оно работало и была проверка(проверку думаю сам осилю сделать как и само решение методом Гаусса так как в и-нете есть материал.)?
Вот как решение выглядит на бумаге:

1 действие)
0,40x1 + 0,11x2 + 0,18x3 = 0,47
0,28x1 - 0,59x2 + 0,02x3 = 0,01
0,02x1 + 0,24x2 + 0,10x3 = 0,22

2 действие)
0,40x1 + 0,11x2 + 0,18x3 = 0,47 | : 0,40
0,28x1 - 0,59x2 + 0,02x3 = 0,01
0,02x1 + 0,24x2 + 0,10x3 = 0,22

3 действие)
x1 + 0,275x2 + 0,45x3 = 1,175 | * (-0,28) (-0,02)
0,28x1 - 0,59x2 + 0,02x3 = 0,01
0,02x1 + 0,24x2 + 0,10x3 = 0,22

4 действие)
x1 + 0,275x2 + 0,45x3 = 1,175
0,513x2 - 0,146x3 = -0,339 | : (-0,513)
-0,2455x2 - 0,091x3 = -0,2435

5 действие)
x1 + 0,275x2 + 0,45x3 = 1,175
x2 - 0,2846x3 = -0,6608 | * 0,2455
-0,2455x2 - 0,091x3 = -0,2435

6 действие)
x1 + 0,275x2 + 0,45x3 = 1,175
x2 - 0,2846x3 = -0,6608
0,0226x3 = 0,4055 | : 0,0226

7 действие)
x1 + 0,275x2 + 0,45x3 = 1,175
x2 - 0,2846x3 = -0,6608
x3 = 17,9438

Ответ: нету такого числа чтобы умножая на х3 получилось 17,9438. Последнее уравнение неверно.


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
/*
#include <iostream>
using namespace std;
int main()
 
{
    float x1, x2, x3, a, a1, a2;
        x1 = 0,40;
        x2 = -0,28;
        x3 = -0,02;
        a = 0,513;
        a1 = 0,2455;
        a2 = 0,0226;
    
    cout << "0,40x1 + 0,11x2 + 0,18x3 = 0,47 \n ";
    cout << "0,28x1 - 0,59x2 + 0,02x3 = 0,01 \n ";
    cout << "0,02x1 + 0,24x2 + 0,10x3 = 0,22 \n ";
        
    cout << " \n ";
    
    // 1 действие)
    cout << "0,40 " << "+" << 0,11 \ x1 << "+" << 0,18 \ x1 << "=" << 0,47 \ x1 <<  "| : 0,40 " ;
    cout << "0,28x1 - 0,59x2 + 0,02x3 = 0,01 \n ";
    cout << "0,02x1 + 0,24x2 + 0,10x3 = 0,22 \n ";
    
    cout << " \n ";
    
    // 2 действие)
    cout <<  "x1 + " << 0,11 * x2 << "x2 + " << 0,18 * x2 << "x3 = "<< 0,47 * x2 << "| * -0,28 " ;
    cout << "0,28x1 - 0,59x2 + 0,02x3 = 0,01 \n ";
    cout << "0,02x1 + 0,24x2 + 0,10x3 = 0,22 \n ";
    
    cout << " \n ";
    
    // 3 действие)
    cout <<  "x1 + " << 0,275 * x3 << "x2 + " 0,45 * x3 << "x3 = " <<1,175 * x3 << "| * -0,02 " ;
    cout << "0,28x1 - 0,59x2 + 0,02x3 = 0,01 \n ";
    cout << "0,02x1 + 0,24x2 + 0,10x3 = 0,22 \n ";
    
    cout << " \n ";
    
    // 4 действие)
    cout << " x1 + 0,275x2 + 0,45x3 = 1,175 \n ";
    cout <<       "0,513x1 " << "x2 - " << 0,146 \ a << "x3 = " << -0,339 \ a << "| : 0,513 ";
    cout << " x1 - 0,2455x2 - 0,091x3 = -0,2435 \n ";
    
    cout << " \n ";
    
    // 5 действие)
    cout << " x1 + 0,275x2 + 0,45x3 = 1,175 \n ";
    cout <<        << "x2 " -0,2846 \ a1 << "x3 = "-0,6608 \ a1 << "| : 0,2455";
    cout << "      -0,2455x2 - 0,091x3 = -0,2435 \n ";
    
    cout << " \n ";
    
    // 6 действие)
    cout << " x1 + 0,275x2 + 0,45x3 = 1,175 \n ";
    cout << "      x2 - 0,2846x3 = -0,6608 \n ";
    cout <<           0,0226 \ a2 << "x3 = " << 0,40553 \ a2 << "| : 0,0226" ;
    
    cout << " \n ";
    
    // 7 действие)
    cout << " x1 + 0,275x2 + 0,45x3 = 1,175 \n ";
    cout << "      x2 - 0,2846x3 = -0,6608 \n ";
    cout << "               x3 = 17,9438 \n ";
    
    cout << " \n ";
    cout << "Ответ: нету такого числа чтобы при умножении на х3 получалось 17б9438 ";
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru