1 | |
Корни уравнения сложной функции. Метод Ньютона. (Нужен только совет)10.06.2015, 18:24. Показов 1626. Ответов 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. Метод простой итерации и метод Ньютона. Вычислить корни уравнения, используя метод простой итерации, метод Ньютона Найти корни уравнения на указанном промежутке с заданной точностью (метод Ньютона) Найти приближенно все (в том числе комплексные) корни уравнения f(x)=0 с заданной точностью (метод Ньютона) |
11.06.2015, 02:51 | 2 |
Сообщение было отмечено Arcor как решение
Решение
Судя по вашей записи уравнения эллипса, вы поворачиваете оси эллипса на угол против часовой стрелки, а затем сдвигаете его центр в точку .
Во-первых, обозначения. У вас два эллипса и у каждого два радиуса. Лучше бы пользоваться традиционными обозначениями для полуосей и вместо - чёрт ногу сломит... Метод решения: Первый эллипс вы записываете в параметрической форме через угол - угол отклонения радиус-вектора из нового центра в точку эллипса от правого конца большой полуоси (которая наклонена): А второй эллипс в каноническом виде Дальше перебираете значения угла с какой-то там дискретностью, скажем, 0,01 радиана. Полученную при каждом значении угла пару координат первого эллипса подставляете в каноническое уравнение второго эллипса. Если точка лежит внутри эллипса, левая часть будет <1,а если вне - то >1. Вам нужно запомнить пары значений угла , при котором меняется знак сравнения с 1. Вот вам и концы интервала для метода Ньютона. Как нашли первую точку - продолжаете перебирать дальше, пока не обойдёте весь первый эллипс. Т.о., метод Ньютона применяется для нахождения . Подставляете найденное значение этого угла в параметрическое уравнение первого эллипса и получаете координаты (x,y) пересечения. Причём все возможные. Единственный нюанс - можно пропустить касание эллипсов. Лечится только повышением уровня дискретности перебора угла .
2
|
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
|
|
11.06.2015, 09:24 | 3 |
Сообщение было отмечено Arcor как решение
Решение
Другой вариант.
1) Несколько точек одного из эллипсов используем в качестве начальных для метода. 2) Например, для точек phi=0o, 90o, 180o, 270o применяем метод Ньютона. Если нашли меньше 4 решений, для начальных точек 45o, 135o, ... применяем метод. И т.д.
1
|
4217 / 3412 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
|
|
11.06.2015, 10:57 | 4 |
0
|
11.06.2015, 11:32 [ТС] | 5 |
ну это то само собой
я сделал это следующим образом если за 100 итераций ничего не найдено было и ошибка поиска растет - то прекратить поиск Добавлено через 28 минут ну я сразу сказал, что я не математик, тут уж простите за несоответствие в написании обозначений не плохо, но будет очень долго вот приблизительно то, что я делал, но я точки брал которые не лежали на эллипсе, а просто произвольные в той округе всем спасибо, будем биться дальше Добавлено через 4 минуты Не по теме: что-то все куда-то уехало при цитировании, не могу больше изменить сообщение, поправьте пожалуйста
0
|
11.06.2015, 11:32 | |
11.06.2015, 11:32 | |
Помогаю со студенческими работами здесь
5
Найти корни уравнения методом Ньютона Найти корни уравнения методом Ньютона Найти корни уравнения методом Ньютона Найти корни уравнения методом Ньютона Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |