Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 14.12.2019
Сообщений: 19

Значение обращается в NaN

21.06.2022, 00:46. Показов 701. Ответов 4

Студворк — интернет-сервис помощи студентам
По неизвестной причине элементы массива обращаются в NaN после работы с ним по методу Гаусса-Жордана.
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
            double[,] A = new double[3, 3];
            double[] B = new double[3];
            double[] C;
            for (int i = 2; i < ApprX.Count; i += 2)
            {
                
                for (int j = 0; j < A.GetLength(0); j++)
                {
                    for (int v = 0; v < A.GetLength(1); v++)
                    {
                        A[j, v] = Math.Pow(ApprX[i - 2 + j], 2 - v);
                    }
                    B[j] = ApprY[i - 2 + j];
                }
                C = Matrix.GaussJordan(A, B);
                double d=C[1];
 
                for (int j = Array.IndexOf(X, ApprX[i - 2]); j < Array.IndexOf(X, ApprX[i]); j++)
                {
                    YResult.Add(C[0] * Math.Pow(X[j], 2) + C[1] * X[j] + C[2]);
                }
            }
            YResult.Add(ApprY.Last());
            return YResult;
Это заполнение массива и их дальнейшее использование.
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
public static double[] GaussJordan(double[,] system, double[] freeMembers)
        {
            var result = new double[freeMembers.Length];
            double Multi1, Multi2;
            for (int k = 0; k < system.GetLength(0); k++)
            {
                for (int j = k + 1; j < system.GetLength(0); j++)
                {
                    Multi1 = system[j, k] / system[k, k];
                    for (int i = k; i < system.GetLength(0); i++)
                        system[j, i] = system[j, i] - Multi1 * system[k, i];
 
                    freeMembers[j] = freeMembers[j] - Multi1 * freeMembers[k];
                }
            }
            for (int k = system.GetLength(0) - 1; k >= 0; k--)
            {
                Multi1 = 0;
                for (int j = k; j < system.GetLength(0); j++)
                {
                    Multi2 = system[k, j] * result[j];
                    Multi1 += Multi2;
                }
                result[k] = (freeMembers[k] - Multi1) / system[k, k];
            }
            return result;
        }
Используемый метод Гаусса-Жордана

В скрины кинул визуал ошибки.
Миниатюры
Значение обращается в NaN   Значение обращается в NaN  
Изображения
   
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.06.2022, 00:46
Ответы с готовыми решениями:

Вывести значение параметра, когда он обращается в ноль
У меня есть алгоритм,который определяет координаты бомбы при сбросе. Очевидно по высоте она должна быть в нуле. Так вот вопрос как мне...

Последнее значение массива x, после применения функции обращается в 0
#include &lt;stdio.h&gt; #include &lt;math.h&gt; double fun1(const double x); double fun2(const double x); void transform(const double...

Mathcad Express Prime 6 Не удалось построить график. Замените комплексные значение и значение NaN на вещественные числа
Здравствуйте, конечный график не получается выстроить, не знаю в чем моя ошибка. Догадываюсь, что наверное в условиях с if проблема....

4
0 / 0 / 0
Регистрация: 14.12.2019
Сообщений: 19
21.06.2022, 00:53  [ТС]
Точно известно, что при таких значениях решение имеется: 0.234 | 1.075 | 0 (примерное решение)
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
21.06.2022, 02:50
Лучший ответ Сообщение было отмечено AlexGul как решение

Решение

AlexGul, 0/0 даст NaN, деление у вас в методе GaussJordan, смотрите при каких условиях получаются нули в числителе и знаменателе.
1
0 / 0 / 0
Регистрация: 14.12.2019
Сообщений: 19
21.06.2022, 19:32  [ТС]
Да, я это тоже заметил и пофиксил.
Но все равно интересно, почему элементы массивов А и B принимали значение NaN после вызова ф-ции
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
21.06.2022, 19:55
AlexGul, потому что во время вызова функции они перезаписывались на NaN из-за нулей в числителе и знаменателе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.06.2022, 19:55
Помогаю со студенческими работами здесь

значение NaN
Здраствуйте, скажите почему не выполняется условие result==NaN, ведь в переменной result находится значение NaN var randSimbol...

Выдаёт значение nan
Пожалуйста, подскажите где у меня ошибка, во всех файлах, в которые я вывожу ниже, отображается значение nan. У меня скорее всего где-то...

Приравнять значение к Nan
Всем привет) При вычислении, например, корня из отрицательного числа Паскаль выдаёт NaN. Вопрос: можно ли как-нибудь сделать проверку...

Заменить на NaN каждые пять строк до и после NaN
Здравствуйте! Я работаю с движениями глаз, на данный момент мне нужно обработать данные для одного эксперимента. Проблема довольно...

Пропадает значение переменной в NaN
&lt;script type=&quot;text/javascript&quot;&gt; $.ajax({ url:...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru