Подстроение алгоритма определителя25.08.2012, 15:12. Показов 2217. Ответов 16
Метки нет (Все метки)
Доброго времени суток уважаемые форумчане! Мне уже надоело искать нормальный и рабочий алгоритм для вычисления определителя. Есть два кода: первый - мой, для решения СЛАУ методом Гаусса, а второй - это рабочий для вычисления определителя (считает все верно), проблема в том, что не могу второй алгоритм подстроить под мою программу, матрицы размером 3x3 уже считает неверно....прошу вашей помощи.
Основная часть кода моей программы:
0
|
|||||||||||
| 25.08.2012, 15:12 | |
|
Ответы с готовыми решениями:
16
Оптимизация алгоритма вычисления определителя матрицы Улучшение алгоритма вычисления определителя матрицы, порядка n>3 Программа реализации алгоритма нахождения определителя 3го порялка |
|
163 / 163 / 68
Регистрация: 23.02.2011
Сообщений: 392
|
|
| 25.08.2012, 18:03 | |
|
В вашей программе массив имеет тип int, а во второй - double, измените.
1
|
|
| 25.08.2012, 19:10 [ТС] | |
|
edward_jonson, если поменять в моей программе обьявление массива через тип double, то считает правильно для матриц порядком меньше трех :-(
0
|
|
|
163 / 163 / 68
Регистрация: 23.02.2011
Сообщений: 392
|
|||||||||||||||||||||
| 25.08.2012, 19:37 | |||||||||||||||||||||
|
Nuclear_Razor, а
и ещё в 12 -
1
|
|||||||||||||||||||||
| 25.08.2012, 19:56 [ТС] | ||||||
|
edward_jonson, аахахах боже мой! Как я мог ввод упустить! Спасибо! Сейчас проверю!
Добавлено через 13 минут edward_jonson, определитель считает теперь правильно. Но корни СЛАУ стал выдавать неверно. В чем может быть ошибка? Код:
0
|
||||||
|
163 / 163 / 68
Регистрация: 23.02.2011
Сообщений: 392
|
|
| 25.08.2012, 20:23 | |
|
Вы уверены, что ваш код для решения СЛАУ методом Гаусса был работоспособен? Если хотите, могу вам скинуть рабочий, переделаете его под себя. Для алгоритма не есть хорошо, что изменение типа данных ставит под вопрос его корректность.
1
|
|
| 25.08.2012, 20:27 [ТС] | |
|
edward_jonson, да-да конечно! Я проверял матрицы 6x7 и 10x10 и все считалось верно! Но это было до того как я решил усовершенствовать программу, то есть тогда массив а был целочисленный...а теперь они оба double, и видать из-за этого считает все неверно...точнее где-то в сортировке идет неправильный подсчет, т.к. матрицу преобразований уже выводить неправильно. Это очень сильно меня напрягает, потому что программу почти месяц пишу.
А он совсем уж мудреный? Я просто вообще физик , и знаю только самый минимум в C++Добавлено через 48 секунд edward_jonson, они - это "а" и "b", второй массив - "b" для проверки и вывода корней нужен.
0
|
|
|
163 / 163 / 68
Регистрация: 23.02.2011
Сообщений: 392
|
||||||
| 25.08.2012, 21:17 | ||||||
|
Я вам к рабочему коду с определителем добавил рабочий код с гауссом, но используя динамические массивы + матрица будет квадратной (для не квадратной искать определитель не получится, да и гаусс будет давать бесконечное кол-во решений, а для вектора свободных членов введен свой одномерный массив). Вам лишь осталось добавить обработку ситуаций, когда нет корней и т.п.
ЗЫ: возможныая причина появления ошибок у вас - сама матрица изменяется во время нахождения корней и определителя(поэтому нужна резервная матрица), и использование abs вместо fabs для вещественных чисел.
1
|
||||||
| 25.08.2012, 22:13 [ТС] | |
|
edward_jonson, посмотрю сейчас и отпишусь в любом случае! У меня программа для широкого круга пользователей, так что все равно придется все расписывать и проверять.
Добавлено через 21 минуту edward_jonson, отлично), вернулись к моей первоначальной программе. Корни находит правильно, а определитель нет.
0
|
|
|
163 / 163 / 68
Регистрация: 23.02.2011
Сообщений: 392
|
|
| 25.08.2012, 22:30 | |
|
Nuclear_Razor, Ну вы приведите пример исходных данных при котором результат неверен. Я для 3-го порядка проверял - всё ок.
0
|
|
| 25.08.2012, 22:43 [ТС] | |
|
edward_jonson, вот ссылка на пример решения в онлайне:
онлайн решение Если ввести исходные данные, используя ваш шаблон кода, то программа считает неправильно только определитель. Ссылка не открывается, вот условие: Условие 4x 1 + 8x 2 - 5x 3 + 4x 4 = 5 4x 1 +11x 2 +12x 3 + 5x 4 = -9 23x 1 + 3x 2 + 6x 3 + 4x 4 = 11 34x 1 + 2x 2 - 8x 4 = 0 Определитель тут матрицы без столбца свободных членов: -43496 А ваша программа вычисляет такой: -66820
0
|
|
|
163 / 163 / 68
Регистрация: 23.02.2011
Сообщений: 392
|
|
| 25.08.2012, 22:46 | |
|
Ссылка не пашет.
0
|
|
| 25.08.2012, 22:47 [ТС] | |
|
edward_jonson, предыдущий ответ исправил сразу как раз из-за ссылки
0
|
|
|
163 / 163 / 68
Регистрация: 23.02.2011
Сообщений: 392
|
|
| 25.08.2012, 23:27 | |
|
Nuclear_Razor, Вот чёрт
в строке 49 описка, там массив Am, а не AИменно: fabs(Am[y][j])
1
|
|
| 25.08.2012, 23:53 [ТС] | |
|
edward_jonson, Окей! Сейчас исправлю и проведу парочку тестов, в любом случае отпишусь.
Добавлено через 18 минут edward_jonson, все пока отлично. Правда числа с плавающей запятой неточно вычисляет (погрешности у корней ~ 0,2), а у определителя погрешность ~ 10 единиц. Кстати, что за столбец b, когда матрица приводиться к треугольному виду? Что-то я уже совсем все забыл. В интернете немного порылся, слишком много муры, может вы помните?)
0
|
|
|
163 / 163 / 68
Регистрация: 23.02.2011
Сообщений: 392
|
|
| 25.08.2012, 23:58 | |
|
После = элементы, это и есть столбец свободных членов b
Этот столбец вводится вместе с основной матрицей, и он не только где треугольный вид, можете его вывести вместе с исходной матрицей для наглядности. А вообще советую получше почитать про СЛАУ
1
|
|
| 26.08.2012, 03:13 [ТС] | |
|
edward_jonson, я знаю про столбец свободных членов), просто если вы имеете ввиду, что он и выводиться...то это не так.
Думаю что с десятичными числами можно пока повременить, я пока не у кого не видел и не слышал чтобы в матрицах были такие числа. Везде целые были только. А программа и рассчитана как раз на студентов. Провел четыре теста (1x1 2x2 4x4 6x6) все успешно, везде были как нулевые элементы так и положительные\отрицательные числа. Добавлено через 3 часа 7 минут edward_jonson, все отлично работает! Спасибо большое за вашу помощь!
0
|
|
| 26.08.2012, 03:13 | |
|
Помогаю со студенческими работами здесь
17
Реализуйте на практике 2 алгоритма поиска и 2 алгоритма сортировки. Результаты сравните
Составить блок – схему алгоритма и определить, что выводится в результате выполнения следующего алгоритма сравнения исходный и рекуррентного алгоритма, время алгоритма
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|