|
8 / 6 / 2
Регистрация: 03.05.2016
Сообщений: 242
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ошибка с импортом методов классов для численного решения ОДУ 5 порядка20.05.2022, 20:25. Показов 777. Ответов 2
Коллеги, уважаемые форумчане, привествую! Возникла в общем проблема следующего характера. Пробую написать так чказать программу решатель ОДУ 5 порядка, используя принципы ООП. Ноебходимо реализовать несколько численных схем решения, чтобы потом можно было решать ОДУ и сравнить результаты решения.
Каждая из численных схем реализована в виде отдельного класса, который наследует методы суперкласса ODE_Solver - по сути в нем осуществляется проверка, что передаваемая функция (правая часть уравнения является вектором или скаляром, также прописан сам цикл прохода по узлам, в которых отыскивается решение ОДУ. Каждя численная схема реализована в виде класса, при этом, содежит только метод solve_st. В качетсве примера рассмотрим реализацию прямой схемы Эйлера для решения ОДУ 5 степени с начальными условиями y0.Ниже представлена реализация класса ODE_SolverODS.py
Непосредственно реализация класса численной схемы Эйлера FEES.py
Непосрественно пытаюсь вызвать теперь схему решателя и передать в нее ОДУ пятого порядка def f(u,x):test.py
Исходная задача: При вызове требуемой схемы решателя я получаю странную ошибку следующего типа:
1) Каким образом решить подобную ошибку, потому что я не понимаю, как исправить цикличную ссылку при попытке подключения фйла с классом и методами класса? 2) Каким образом можно реализовать класс Problem с исходной задачей и передавать требуемые аргументы, а также вернуть массив погрешности работы решателя? 3) Насколько правильно в данном случае реализованы остальные методы решателя? RKS.py
RKFS.py
ADS.py
AMS.py
Насколько корректна такая передача функции правой части ОДУ в методы решателя? Я заранее очень благодарен, уважаемые форумчане! К сожалению, в разделе научные вычисления активность невысокая, но такая задача не является простым тривиальным примером, и если рассматривать и изучать численные методы, то как правило задачи в иностранной да и нашей литературе более простого характера. Добавлено через 5 часов 9 минут Да, воплне возможно, что надо вызвать без импорта из файла import FE, однако все равно в этом случае вызвать требуемый метод не получается, иначе говоря я получаю вполне логично, что выдает исключение raise NotImplementedError, посокльку не реализовано никаких методов, они в другом классе.Тогда каким образом вызвать мне эти методы? Добавлено через 1 час 18 минут Хорошо, проблему с вызовом функции удалось решить, потому что неправильно создавал в тестовом файле сам экземпляр. Вот как надо было в данном случае осуществлять вызов:
Добавлено через 1 час 56 минут Так, понял в чем была ошибка, тогда вопрос следующий, в результате я понял, что мой объект FE не имеет атрибута u, в таком случае я получаю ошибку:
solve_st из класса FE?
0
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 20.05.2022, 20:25 | |
|
Ответы с готовыми решениями:
2
Применение методов правых и левых прямоугольников для решения задач численного интегрирования Найти максимум численного решения системы ОДУ ОДУ: Несовпадение аналитической асимптотики и численного решения |
|
8 / 6 / 2
Регистрация: 03.05.2016
Сообщений: 242
|
||||||||||||||||
| 21.05.2022, 21:15 [ТС] | ||||||||||||||||
|
В целлом разобрался с ошибкой, и теперь вопрос состоит в следующем. Методы
ES и RKS (схема Эйлера и схема Рунге-Кутта 4 порядка работают правильно), однако, остальные схемы не работают, решил объединить схемы Адамса-Башфорта и Адамса-Моултона в одну, поскольку тогджа она является более уточняющей и является модификацией численной схемы Рунге-Кутта. Тогда при вызове возникает следующая проблема. Вызываю данный метод:
0
|
||||||||||||||||
|
8 / 6 / 2
Регистрация: 03.05.2016
Сообщений: 242
|
||||||||||||||||||||||||||
| 23.05.2022, 21:34 [ТС] | ||||||||||||||||||||||||||
|
Удалось решить псоледнюю ошибку и таким образом продолжить работу. В итоге, прише к тому, что надо попробовать написать в итоге уже непосредственно отельный класс, в котором инициализировать непосредственно само ОДУ и вектор для передачи начальных условий
ProblemProblem
и написать итоговый класс, в котором можно уже вызывать функцию вывода решения, построения графика, вычисления ошибки, т.е. класс SolverSolver
Таким образом, вызов решателя и функций класса Solver будут иметь вид:Solver
Непосредственно код самой схемы решателя ODE_Solver такой же: ODE_Solver
При запуске я получаю следующего рода ошибку:
0
|
||||||||||||||||||||||||||
| 23.05.2022, 21:34 | |
|
Помогаю со студенческими работами здесь
3
Метод Эйлера для решения ОДУ первого порядка Разработать подпрограмму для решения ОДУ методом Рунге-Кутта 4-го порядка Составить процедуру численного решения задачи Коши для дифференциального уравнения 1-го порядка методом Милна
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|