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

Помогите исправить программу решения системы уравнений - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Объясните код http://www.cyberforum.ru/cpp-beginners/thread1203177.html
Задача Улитка. Улитка ползёт по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь спускаясь на b метров. На какой день улитка доползёт до вершины шеста? Программа получает на вход натуральные числа h, a, b и должна вывести одно натуральное число. Гарантируется, что a>b. При решении этой задачи нельзя пользоваться условной инструкцией if и циклами. int...
C++ Программа, которая будет работать с персональными данными 5 сотрудников малого предприятия Добрый вечер! Я изучать С++ начал, дошел до массивов и попалась задача вот такого содержания: "Программа, которая будет работать с персональными данными 5 сотрудников малого предприятия. Программа должна для каждого сотрудника хранить следующую информацию: • Фамилия • Имя • Отчество • Пол • Год рождения • Должность • Заработная плата http://www.cyberforum.ru/cpp-beginners/thread1203176.html
C++ Сортировка слиянием: подсчитать количество перестановок
Привет всем. Дана задача: подсчитать количество перестановок при сортировке массива. Нужен быстрый алгоритм, желательно алгоритм сортировки слиянием. Вот код: #include <stdio.h> #include <conio.h> void Merge(int *A, int first, int last) { int middle, start, final, j; int *mas=new int; middle = (first + last) / 2; start = first;
C++ Вставка элемента в массив после последнего положительного
Нужно сделать программу, которая бы вставляла после последнего положительного элемента массива заданное значение, в противном случае вывести "ошибку". Что-то не получается. Посмотрите и подскажите, где ошибка? #include <iostream.h> #include <conio.h> #include <stdlib.h> #include <time.h> void main () { int mas, i, a, b; cout<<"Vvedite chislo: "; cin >>a;
C++ Работа с переменными http://www.cyberforum.ru/cpp-beginners/thread1203133.html
В универе дали задание сделать что-то типо текстового редактора, выполняющего три функции: 1. Повышение регистра первых букв слов 2. Добавление в конец текста нового текста 3. Вставка в конец текста новый текст из файла Исходный текст вводится в начале, а затем на выбор предаставляются эти функции, причем порядок использования неважен и количество использования тоже не ограничено. То есть...
C++ Получить все n-элементные последовательности из нулей и единиц содержащие ровно m единиц (m<=n) Получить все n-элементные последовательности из нулей и единиц содержащие ровно m единиц (m<=n) Помогите, пожалуйста подробнее

Показать сообщение отдельно
A7X
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 15
09.06.2014, 01:02     Помогите исправить программу решения системы уравнений
Выводит неопределенность

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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# include <stdio.h>
#include <iostream>
# include <math.h>
#include <conio.h>
#include <locale.h>
 
using namespace std;
 
void Iteration( double **A, double *b, double *x1, int n);
int F(int n, double *x1, double *x2);
void Full_1(double *A, int n);
void Full_2(double **A,int n);
 
int main(){
 
    // Значения для проверки:
 
    //const int n = 3;
    //double A[n][n] = { { 6.0, -1.0, -1.0 }, { -1.0, 6.0, -1.0 }, { -1.0, -1.0, 6.0 } };
    //double b[n] = { 11.0, 32.0, 42.0 };
    //double x1[n] = { 4.0, 4.0, 4.0 };
 
    int n;
    cout << "Enter n:" << endl;
    cin >> n;
 
    double **A = new double*[n];
    for (int i=0 ; i < n ; i++) 
        A[i] = new double[n];
 
    double *b = new double[n];
    double *x1 = new double[n];
 
    cout << "Enter A:" << endl;
    Full_2(A, n);
    cout << "Enter b:" << endl;
    Full_1(b, n);
    cout << "Enter x0:" << endl;
    Full_1(x1, n);
    
 
    Iteration( A, b, x1, n);
 
    _getch();
    return 0;
}
 
void Iteration( double **A, double *b, double *x1, int n){
 
    double *x2 = new double[n];
    for (int i=0 ; i < n ; i++) 
        x2[i] = 0;
 
    for (int i = 0; i < n; i++){
        double s = 0;
        for (int j = 0; j < n; j++)
            s = s + A[i][j] * x1[j];
        s = s - A[i][i] * x1[i];
        x2[i] = (1.0 / A[i][i]) * (b[i] - s);
    }
 
    int f = F(n, x1, x2);
 
    while ( f == 1){
        for (int i = 0; i < n; i++){
            double t = x2[i];
            double s = 0;
            for (int j = 0; j < n; j++)
                s = s + A[i][j] * x1[j];
            s = s - A[i][i] * x1[i];
            x2[i] = (1.0 / A[i][i]) * (b[i] - s);
            x1[i] = t;
        }
        f = F(n, x1, x2);
    }
 
    cout << "х:" << endl;
    for (int i = 0; i < n; i++)
        cout << x2[i] << endl;
 
}
 
// Условие выполнения итерации
 
int F(int n, double *x1, double *x2){
    double eps = 0.001;
    double max = fabs(x2[0] - x1[0]);
    for (int i = 1; i < n; i++){
        if (fabs(x2[i] - x1[i]) > max)
            max = fabs(x2[i] - x1[i]);
    }
    if (max > eps)
        return 1;
    else
        return 0;
 
}
 
//Инициализация массива:
 
void Full_1(double *A, int n){
    for (int i = 0; i < n; i++)
        scanf_s("%f", &A[i]);
}
 
void Full_2(double **A,int n){
    for (int i = 0 ; i < n ; i++)
        for (int j = 0 ; j < n ; j++)
            scanf_s("%f", &A[i][j]);
}
Миниатюры
Помогите исправить программу решения системы уравнений  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru