|
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 22
|
|
Решение СНАУ методом Ньютона29.07.2014, 18:19. Показов 7149. Ответов 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
Написать решение СНУ Методом Ньютона
Решение квадратного уравнения методом Ньютона Решение системы нелинейных уравнений методом Ньютона (С/С++) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
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.
В качестве источника данных. . .
|