![]() |
|
Корни уравнения сложной функции. Метод Ньютона. (Нужен только совет)10.06.2015, 18:24. Показов 1689. Ответов 4
Метки нет Все метки)
(
Приветствую всех
![]() Ребята нужен совет. В общем я пишу программу, один кусочек ее, это найти точки пересечения двух эллипсов, повернутых и сдвинутых отдносительно начала координат, с точки зрения программирования естественно нету вопросов, вопрос с точки зрения математики. вот имеем такую функцию(надеюсь при переносе сюда, не ошибся нигде) сдвиги по х и по у радиусы ну и синусы с косинусами угла осуществляют поворот.. Решаю я все это дело Методом Ньютона.. все хорошо все красиво и главное быстро решается, за 10-15 итераций находится с точностью до 10^-6 берем производные по 2 переменным(х, у), первой и второй функции эллипса, составление матрицы, решение системы уравнений, нахождение приближения х и у, и повторение алгоритма пока не будет достигнута определенная точность, ну вы в курсе, что я тут... проблема вся в том заключается, для того, чтобы искать корни уравнения этим методом, необходимо некое стартовое значение а так как корней может быть 1-4: 1(соприкосновение) 2(пересечение) 3(пересечение + соприкосновение) 4(двойное пересечение) необходимо как-то задавать стартовые значения 4 раза, т.е. предугадывать желательно значение в окресности реальной точки пересечения, так как пользователь не должен принимать участия в решении задачи, я имею ввиду, не должен задавать некие приближения. Я не знаю как сделать, может есть какое-то математическое определение для данной проблемы, выбор некой точки... я попробовал примерно таким алгоритмом искать, но не очень получилось хорошо: берется центральная точка эллипса, того эллипса, который находится левее первого, к ней прибавляем максимальный радиус по х и по у, для верности берем масимально отдаленное расстояние. иными словами так ставим далекую точку в 1 квадранте, так же же для 2 квадранта, чтобы искать в другую сторону и так далее, для всех 4 квадрантов. Вот вроде бы логически верно. Но работает для случая, когда центральные точки эллипсов находтся недалеко друг от друга, в других случаях находятся те точки, которые уже были найдены, находятся по второму, а то и по третьему разу, вот собственно и возникает трудность с нахождением всех Буду благодарен совету, или другому методу решения
0
|
10.06.2015, 18:24 | |
Ответы с готовыми решениями:
4
Mathcad. Локализировать корни уравнения f(x) = 0. Метод простой итерации и метод Ньютона. Вычислить корни уравнения, используя метод простой итерации, метод Ньютона Найти корни уравнения на указанном промежутке с заданной точностью (метод Ньютона) |
![]() ![]() |
|
11.06.2015, 02:51 | |
![]() Решение
Судя по вашей записи уравнения эллипса, вы поворачиваете оси эллипса на угол
Во-первых, обозначения. У вас два эллипса и у каждого два радиуса. Лучше бы пользоваться традиционными обозначениями для полуосей Метод решения: Первый эллипс вы записываете в параметрической форме через угол А второй эллипс в каноническом виде Дальше перебираете значения угла Т.о., метод Ньютона применяется для нахождения
2
|
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
|
|
11.06.2015, 09:24 | |
![]() Решение
Другой вариант.
1) Несколько точек одного из эллипсов используем в качестве начальных для метода. 2) Например, для точек phi=0o, 90o, 180o, 270o применяем метод Ньютона. Если нашли меньше 4 решений, для начальных точек 45o, 135o, ... применяем метод. И т.д.
1
|
![]() |
|
11.06.2015, 11:32 [ТС] | |
ну это то само собой
![]() я сделал это следующим образом если за 100 итераций ничего не найдено было и ошибка поиска растет - то прекратить поиск Добавлено через 28 минут ну я сразу сказал, что я не математик, тут уж простите за несоответствие в написании обозначений ![]() не плохо, но будет очень долго вот приблизительно то, что я делал, но я точки брал которые не лежали на эллипсе, а просто произвольные в той округе всем спасибо, будем биться дальше ![]() Добавлено через 4 минуты Не по теме: что-то все куда-то уехало при цитировании, не могу больше изменить сообщение, поправьте пожалуйста
0
|
11.06.2015, 11:32 | |
Помогаю со студенческими работами здесь
5
Найти приближенно все (в том числе комплексные) корни уравнения f(x)=0 с заданной точностью (метод Ньютона)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
|
Многопоточное программирование в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
|
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
|
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
|
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
|
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
|
Образование и практика
Igor3D 21.03.2025
Добрый день
А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
|
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
|
Async/await в Swift: Асинхронное программирование в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
|
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
|