Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 26

-nan ind при решении сл

26.11.2018, 23:10. Показов 5148. Ответов 4

Студворк — интернет-сервис помощи студентам
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
#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    float A[10][10];
    float U[10][10];
    float b[10], x[10], y[10];
    int n, k;
    int i, j;
    float temp;
    cout << "Введите размерность матрицы " << endl;
    cin >> n;
label:
    cout << "Введите элементы матрицы " << n << "x" << n << endl;
    for (i = 0; i < n; i++)
        for (j = 0; j < n; j++)
        {
            cin >> A[i][j];
        }
    for (i = 0; i < n; i++)
        for (j = 0; j < n; j++)
        {
            U[i][j] = 0;
        }
    //проверка на симметричность
    for (i = 0; i < n; i++)
        for (j = 0; j < n; j++)
        {
            if (A[i][j] != A[j][i])
            {
                cout << "матрица не симетрична" << endl;
                goto label;
            }
        }
    cout << "введите елементы вектора b " << n << "x" << n << endl;
    for (i = 0; i < n; i++)
    {
        cin >> b[i];
    }
 
    for (int i = 0; i < n; i++)
    {
        temp = 0;
        for (int k = 0; k < i; k++)
            temp = temp + U[k][i] * U[k][i];
        U[i][i] = sqrt(A[i][i] - temp);
        for (j = i; j < n; j++)
        {
            temp = 0;
            for (k = 0; k < i; k++)
                temp = temp + U[k][i] * U[k][j];
            U[i][j] = (A[i][j] - temp) / U[i][i];
        }
    }
    for (i = 0; i < n; i++) {
        for (j = 0; j < n; j++) {
            cout << U[i][j] << " ";
        }
        cout << endl;
    }
    for (i = 0; i < n; i++)
    {
        temp = 0;
        for (int k = 0; k < i; k++)
            temp = temp + U[k][i] * y[k];
        y[i] = (b[i] - temp) / U[i][i];
    }
    for (i = n - 1; i >= 0; i--)
    {
        temp = 0;
        for (int k = i + 1; k < n; k++)
            temp = temp + U[i][k] * x[k];
        x[i] = (y[i] - temp) / U[i][i];
    }
    for (i = 0; i < n; i++)
        cout << "x" << i << "= " << x[i] << endl;
    system("pause");
}
[/CPP]
Исходные данные такие:
Матрица 123 214 341, вектор -3 -5 5.
На выходе получаю:
1 2 3
0 -nan - nan
0 0 -nan
x0=nan
x1=nan
x2=nan.
Я понимаю что nan означает что получилось не число, но не пойму что не так.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.11.2018, 23:10
Ответы с готовыми решениями:

Ошибка -nan(ind) и nan
Доброго времени суток форумчане! Решаю задачу, в которой необходимо найти площадь треугольника по координатам его вершин. Все значения не...

-nan(ind)
Что такое -nan(ind) и как это исправить? #define _CRT_SECURE_NO_WARNINGS #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

-nan(ind)
нужно вычислить значение функции, вроде сделал все проверки, но все равно при вводе отрицательного float (например: -0.25) выводит...

4
75 / 59 / 31
Регистрация: 20.03.2017
Сообщений: 351
27.11.2018, 08:48
MysteryMC, ставь точки останова и смотри где это у тебя появляется.
Обычно NaN появляется, если было что-то из этого:

- все математические операции, содержащие NaN в качестве одного из операндов;
- деление нуля на ноль;
- деление бесконечности на бесконечность;
- умножение нуля на бесконечность;
- сложение бесконечности с бесконечностью противоположного знака;
- вычисление квадратного корня отрицательного числа;
- логарифмирование отрицательного числа.
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 26
27.11.2018, 11:45  [ТС]
Вот что у меня получилось, я поставил останову на вычисление квадратного корня. Но я не пойму почему у меня такие значения К и U[i][k]
0
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 26
27.11.2018, 11:47  [ТС]
Не загрузилось вложение
Миниатюры
-nan ind при решении сл  
0
75 / 59 / 31
Регистрация: 20.03.2017
Сообщений: 351
27.11.2018, 12:32
MysteryMC, в строке 48
C++
1
U[i][i] = sqrt(A[i][i] - temp);
Получается что при второй итерации ты извлекаешь корень из отрицательного числа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.11.2018, 12:32
Помогаю со студенческими работами здесь

Ошибка -nan(ind)
Как исправить? #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { int V, T; double g=9.8, a; cout...

Выдаёт -nan(ind)
Header.h файл#pragma once double f(double x); double h(double a, double b, int n); double hi(int i, int n, double a, double b); ...

Ошибка -nan (ind)
Не пойму, как избавится от этой ошибки #include &quot;pch.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using...

Ошибка nan(ind)
Помогите, пожалуйста. Что за ошибка nan(ind) в момент когда y должен быть равен 0 #include &quot;stdafx.h&quot; #include...

Ошибка -nan<ind>
#include &quot;pch.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;Russian&quot;); ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru