|
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 22
|
|
Решение СНАУ методом Ньютона29.07.2014, 18:19. Показов 7115. Ответов 25
Метки нет (Все метки)
Нужно написать программу для решения систем нелинейных алгебраических уравнений методом Ньютона. Наибольшая сложность заключается в том что на время запуска программы не ясно сколько будет этих уравнений и сколько будет неизвестных. Сам метод Ньютона я понимаю, а вот как это всё реализовать слабо представляю, так как с программированием знаком поскольку-постольку, а программа нужна для научной работы совсем по другой специальности)) Можете подсказать хоть общий план действий, с чего начать... и если есть что-то подобное, поделиться хоть какими-то исходниками) Заранее спасибо)
0
|
|
| 29.07.2014, 18:19 | |
|
Ответы с готовыми решениями:
25
Решение СНАУ методом Ньютона Метод Ньютона в решении СНАУ Решение уравнения методом Ньютона |
|
10 / 10 / 0
Регистрация: 23.07.2014
Сообщений: 52
|
|
| 29.07.2014, 18:48 | |
|
dfg, ТЗ четкое есть?
0
|
|
|
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 22
|
|
| 29.07.2014, 19:58 [ТС] | |
|
В консоли пользователь вводит систему нелинейных уравнений и относительную погрешность, вектор начальных приближений должен состоять из нулей. Ну вот собственно и всё ТЗ)
0
|
|
|
|
||
| 29.07.2014, 19:59 | ||
|
Вообще вам надо в раздел фриланс
![]() Меня смущает требование
0
|
||
|
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 22
|
|||
| 29.07.2014, 20:07 [ТС] | |||
|
Я так понимаю, что уравнения пользователь должен вводить в виде строки, а потом эти строки должны с помощью парсинга ложиться в динамический массив. Далее по конечно-разностному методу находится производные из которых формироваться матрица Якоби - двухмерный динамический массив. Ну и каким-то методом, скажем Крамера, находиться корни уже линейных уравнений.
Добавлено через 2 минуты А прям целый парсер с помощью бинарного дерева и рекурсивного спуска вполне возможен) Добавлено через 2 минуты
0
|
|||
|
|
||||
| 29.07.2014, 20:09 | ||||
|
0
|
||||
|
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 22
|
|
| 29.07.2014, 20:22 [ТС] | |
|
Ну смотрите, наверное меня бы устроил и вариант без парсинга, то есть вводить эти уравнения не в консоли а в самом коде, но чтобы как-то по быстрому что-ли) потому что системы будут считаться большие, типа там 40 уравнений и 40 неизвестных и если каждый раз объявлять переменные, вводить эту кучу уравнений, потом ещё где-то по дороге что менять слишком много времени будет уходить..
0
|
|
|
|
|
| 29.07.2014, 20:28 | |
|
dfg, тогда проще всего сделать так. Опишите требования к самой функции решения СНАУ (что принимает, что возвращает), хотя бы на словах. Мало ли как вам будет удобно. А затем продумайте, как вы в неё передадите саму систему: руками, вводом из консоли или чтения каких-нибудь входных файлов с описанием. Просто потому что сама задача естественно разбивается на две.
0
|
|
|
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 22
|
||
| 29.07.2014, 20:41 [ТС] | ||
|
0
|
||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|||
| 29.07.2014, 21:12 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 22
|
|
| 29.07.2014, 21:47 [ТС] | |
|
Ну вообще схема такая: дифференциальные уравнения -> численные методы -> СНАУ. Но мне сказали начать с конца, так как с первыми двумя этапами пока не всё ясно.
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 29.07.2014, 21:58 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 22
|
|||||||
| 29.07.2014, 22:41 [ТС] | |||||||
0
|
|||||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 29.07.2014, 22:58 | ||
|
Количество переменных не нужно запрашивать - сколько пользователь введет различных имен, столько и будет переменных. Введенные данные нужно сложить в вектор уравнений, каждое уравнение - это вектор членов. Каждый член - это структура, членами которой являются имя переменной (а точнее индекс, так как мы имена пронумеруем), коэффициент и степень.
0
|
||
|
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 22
|
||||||
| 30.07.2014, 00:13 [ТС] | ||||||
|
как-то так?
0
|
||||||
|
|
|
| 30.07.2014, 17:53 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 22
|
|
| 30.07.2014, 19:38 [ТС] | |
|
А чтобы предложили Вы?
0
|
|
|
|
|
| 30.07.2014, 20:24 | |
|
dfg, я не знаю специфику вашей области. Навскидку могу предложить Matlab или Mathematica (в принципе, любой подобный инструмент) - графики рисуют, уравнения решают, лепота. Если охота самому строчить код (а не должно), то уж лучше Питон - по краней мере, будет быстрее, и есть куча либ опять же для рисования, решения уравнений численно и символьно и т.п. Зачем изобретать свои велосипеды?
0
|
|
|
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 22
|
|
| 30.07.2014, 21:59 [ТС] | |
|
моя область - это строительная механика, матлаб всё-таки не совсем то, хотелось бы сделать отдельную программу
0
|
|
|
|
||||||
| 31.07.2014, 05:39 | ||||||
|
dfg, зачем? Вы так для каждой задачи будете отдельную программу делать? Кэп подсказывает: компьютер нам нужен для решения конкретных задач. Конкретно эта задача великолепно решается матлабом: формочки для ввода данных рисуются в 2 щелчка, потом расчёт опять же в 3 строки кода и рисование ещё в одну. А вы хотите какие-то парсеры писать.
Если же сами уравнения будет готовить какая-то другая программа, то вот да простят меня любители чистоты кода, но вы можете просто заинклудить файл с исходными уравнениями. То есть первая программа сформирует вам файл input, в котором напишет что-то типа
Но всё же, поверьте: освоить матлаб (или любую подобную софтину) многократно проще и полезней. А разве ваши маткады и автокады так не умеют?
0
|
||||||
| 31.07.2014, 05:39 | |
|
Помогаю со студенческими работами здесь
20
Написать решение СНУ Методом Ньютона
Решение квадратного уравнения методом Ньютона Решение системы нелинейных уравнений методом Ньютона (С/С++) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|