Как отделить корни для системы нелинейных уравнений аналитическим методом

введите сюда описание изображенияЯ хочу рисовать треугольники в Windows forms зная длины трех сторон. Для того, чтобы его нарисовать нужно три точки. Две из них есть: (0,0) и (Длинна одной из сторон(l1), 0). Задача найти третью. Ее координаты есть пересечение двух окружностей: одна с центром (0,0) и радиусом l2(Длинна любой из оставшихся сторон), а вторая с центром в (l1, 0) и радиусом l3(Последняя сторона). Получим систему:

y^2 + x^2 = l2^2

y^2 + (x - l1)^2 = l3^2

У системы два корня, нужен с положительной ординатой. Я решаю ее методом Ньютона, но работает (разумеется) только с должным приближением к этому корню. А как найти приближение численно ума не приложу. Для одного НУ проще некуда, а для СНУ понятия не имею, прошу помощи в этом вопросе.


Ответы (1 шт):

Автор решения: MBo

Никаких приближений же не нужно. Перепишу с другими обозначениями, поскольку эти l* нечитабельны

Пусть длины а, b, c
Координаты (0,0), (a,0), (x,y)

x^2 + y^2 = b^2
(a-x)^2 + y^2 = c^2

y^2 = b^2 - x^2
(a-x)^2 + b^2 - x^2 = c^2
a^2 - 2ax + b^2 = c^2
x = (a^2 + b^2 - c^2) / 2a
y = + sqrt(b^2 - x^2)
→ Ссылка