Уравнение окружности проходящей через три данные точки

Уравнение окружности проходящей через три данные точки

Написать уравнение окружности, проходящей через три точки: (0, 1); (2, 0); (3, -1).

Искомое уравнение имеет вид (xa) 2 + (yb) 2 = r 2 . Поскольку окружность проходит через заданные точки, координаты каждой из этих точек удовлетворяют уравнению окружности. Подставляя поочередно в искомое уравнение координаты данных точек, получим три уравнения для определения a, b и r. Вот эти уравнения:

Возьмем уравнения первое и второе, а потом первое и третье. Правые части этих уравнений между собой равны, значит, равны и левые их части, и мы получаем

Раскрывая скобки и упрощая, будем иметь

Отсюда . Подставляя эти значения a и b в первое из уравнений системы, получим . Искомое уравнение имеет вид

или после упрощений x 2 + y 2 + 3x + 9y — 10 = 0.

Уравнение окружности, проходящей через три заданные точки

Этот онлайн калькулятор выводит уравнение окружности, проходящей через три заданные точки

Этот онлайн-калькулятор находит окружность, проходящую через три заданные точки. Калькулятор находит центр, радиус и уравнение окружности, и строит окружность на графике. Методы, использованные для нахождения центра и радиуса окружности, описаны ниже под калькулятором.

Уравнение окружности, проходящей через три заданные точки

Первая точка

Вторая точка

Третья точка

Центр

Как найти окружность, проходящюю через три заданные точки

Давайте вспомним как выглядит уравнение окружности в стандартной форме:

Так как все три точки принадлежат одной окружности, мы можем записать систему уравнений

Значения , и мы знаем. Давайте сделаем подстановку с неизвестными переменнами a, b и c.

Теперь у нас есть три линейных уравнения для трех неизвестных — составим систему уравнений соответствующую матричной форме:

Мы можем решить эту систему уравнений, используя, к примеру, Гауссово исключение. (подробнее прочитать об этом можно здесь — Решение системы линейных алгебраических уравнений методом Гаусса ). «Нет решений» — означает, что точки коллинеарны и окружность через них провести нельзя.

Координаты центра окружность и ее радиус относится к подобному решению

Зная центр и радиус, мы можем получить уравнение окружности, используя этот калькулятор — Уравнение окружности по заданному центру и радиусу в различных формах

Уравнение окружности, когда заданы три точки на окружности

Даны три координаты, которые лежат на окружности, (x1, y1) , (x2, y2) и (x3, y3) . Задача состоит в том, чтобы найти уравнение окружности, а затем распечатать центр и радиус окружности.
Уравнение окружности в общем виде: x² + y² + 2gx + 2fy + c = 0, а в форме радиуса (x — h) ² + (y -k) ² = r² , где (h, k) — центр круг и г радиус.

Примеры:

Input: x1 = 1, y1 = 0, x2 = -1, y2 = 0, x3 = 0, y3 = 1
Output:
Centre = (0, 0)
Radius = 1
The equation of the circle is x 2 + y 2 = 1.

Input: x1 = 1, y1 = -6, x2 = 2, y2 = 1, x3 = 5, y3 = 2
Output:
Centre = (5, -3)
Radius = 5
Equation of the circle is x 2 + y 2 -10x + 6y + 9 = 0

Подход. Поскольку мы знаем, что все три точки лежат на окружности, поэтому они будут удовлетворять уравнению окружности, и, поместив их в общее уравнение, мы получим три уравнения с тремя переменными g , f и c, и при дальнейшем решении мы можем получить значения. Мы можем вывести формулу для получения значений g, f и c как:

Putting coordinates in eqn of circle, we get:
x1 2 + y1 2 + 2gx1 + 2fy1 + c = 0 – (1)
x2 2 + y2 2 + 2gx2 + 2fy2 + c = 0 – (2)
x3 2 + y3 2 + 2gx3 + 2fy3 + c = 0 – (3)

From (1) we get, 2gx1 = -x1 2 – y1 2 – 2fy1 – c – (4)
From (1) we get, c = -x1 2 – y1 2 – 2gx1 – 2fy1 – (5)
From (3) we get, 2fy3 = -x3 2 – y3 2 – 2gx3 – c – (6)

Subtracting eqn (2) from eqn (1) we get,
2g( x1 – x2 ) = ( x2 2 -x1 2 ) + ( y2 2 – y1 2 ) + 2f( y2 – y1 ) – (A)

Now putting eqn (5) in (6) we get,
2fy3 = -x3 2 – y3 2 – 2gx3 + x1 2 + y1 2 + 2gx1 + 2fy1 – (7)

Now putting value of 2g from eqn (A) in (7) we get,
2f = ( ( x1 2 – x3 2 )( x1 – x2 ) +( y1 2 – y3 2 )( x1 – x2 ) + ( x2 2 – x1 2 )( x1 – x3 ) + ( y2 2 – y1 2 )( x1 – x3 ) ) / ( y3 – y1 )( x1 – x2 ) – ( y2 – y1 )( x1 – x3 )

Similarly we can obtain the values of 2g :
2g = ( ( x1 2 – x3 2 )( y1 – x2 ) +( y1 2 – y3 2 )( y1 – y2 ) + ( x2 2 – x1 2 )( y1 – y3) + ( y2 2 – y1 2 )( y1 – y3 ) ) / ( y3 -y1 )( y1 – y2 ) – ( x2 – x1 )( y1 – y3 )

Putting 2g and 2f in eqn (5) we get the value of c and know we had the equation of circle as x 2 + y 2 + 2gx + 2fy + c = 0

Ниже приведена реализация вышеуказанного подхода:

// C ++ реализация подхода
#include

using namespace std;

// Функция для поиска круга на
// в котором лежат данные три пункта

void findCircle( int x1, int y1, int x2, int y2, int x3, int y3)

int x12 = x1 — x2;

int x13 = x1 — x3;

int y12 = y1 — y2;

int y13 = y1 — y3;

int y31 = y3 — y1;

int y21 = y2 — y1;

int x31 = x3 — x1;

int x21 = x2 — x1;

int sx13 = pow (x1, 2) — pow (x3, 2);

int sy13 = pow (y1, 2) — pow (y3, 2);

int sx21 = pow (x2, 2) — pow (x1, 2);

int sy21 = pow (y2, 2) — pow (y1, 2);

int f = ((sx13) * (x12)

/ (2 * ((y31) * (x12) — (y21) * (x13)));

int g = ((sx13) * (y12)

/ (2 * ((x31) * (y12) — (x21) * (y13)));

int c = — pow (x1, 2) — pow (y1, 2) — 2 * g * x1 — 2 * f * y1;

// уравнение круга: x ^ 2 + y ^ 2 + 2 * g * x + 2 * f * y + c = 0

// где центр (h = -g, k = -f) и радиус r

// как г ^ 2 = ч ^ 2 + к ^ 2 — с

int sqr_of_r = h * h + k * k — c;

float r = sqrt (sqr_of_r);

int x1 = 1, y1 = 1;

int x2 = 2, y2 = 4;

int x3 = 5, y3 = 3;

findCircle(x1, y1, x2, y2, x3, y3);

// Java реализация подхода

// Функция для поиска круга на
// в котором лежат данные три пункта

static void findCircle( int x1, int y1,

int x12 = x1 — x2;

int x13 = x1 — x3;

int y12 = y1 — y2;

int y13 = y1 — y3;

int y31 = y3 — y1;

int y21 = y2 — y1;

int x31 = x3 — x1;

int x21 = x2 — x1;

int sx13 = ( int )(Math.pow(x1, 2 ) —

int sy13 = ( int )(Math.pow(y1, 2 ) —

int sx21 = ( int )(Math.pow(x2, 2 ) —

int sy21 = ( int )(Math.pow(y2, 2 ) —

int f = ((sx13) * (x12)

/ ( 2 * ((y31) * (x12) — (y21) * (x13)));

int g = ((sx13) * (y12)

/ ( 2 * ((x31) * (y12) — (x21) * (y13)));

int c = -( int )Math.pow(x1, 2 ) — ( int )Math.pow(y1, 2 ) —

2 * g * x1 — 2 * f * y1;

// уравнение круга: x ^ 2 + y ^ 2 + 2 * g * x + 2 * f * y + c = 0

// где центр (h = -g, k = -f) и радиус r

// как г ^ 2 = ч ^ 2 + к ^ 2 — с

int sqr_of_r = h * h + k * k — c;

double r = Math.sqrt(sqr_of_r);

DecimalFormat df = new DecimalFormat( «#.#####» );

System.out.println( «Centre = (» + h + «,» + k + «)» );

System.out.println( «Radius = » + df.format(r));

public static void main (String[] args)

int x1 = 1 , y1 = 1 ;

int x2 = 2 , y2 = 4 ;

int x3 = 5 , y3 = 3 ;

findCircle(x1, y1, x2, y2, x3, y3);

// Этот код предоставлен chandan_jnu

# Python3 реализация подхода

from math import sqrt

# Функция, чтобы найти круг на
# в котором лежат данные три балла


источники:

http://planetcalc.ru/8116/

http://espressocode.top/equation-of-circle-when-three-points-on-the-circle-are-given/