Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 5
1

Найти произвольную четвертую точку если известны координаты точек ABC и расстояние от них до неизвестной точки

14.12.2015, 21:46. Показов 1840. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста в пятницу зачет а надо сделать задание. Дано три точки A(x1;y1) B(x2;y2) C(x3;y3). Нужно найти произвольную четвертую точку если известны координаты точек ABC и расстояние от них до не известной точки. Не известная точка M(x;y)
то есть расстояние и точки вводятся, но только как?
Вот формулы системой
(x-x1)2+(y-y1)2=r12
(x-x2)2+(y-y2)2=r22
(x-x3)2+(y-y3)2=r32
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2015, 21:46
Ответы с готовыми решениями:

Найти координаты точек С, если известны координаты точек А
в треугольнике ОАВ проведена медиана ОС. Найти координаты точек С, если известны координаты точек А...

Найти точку B, зная: необходимое расстояние для перемещения с точки A, направление и координаты точки A
Известно: Vector3 A = new Vector3(x,y,z); // С какой точки двигаться float b = distance; // На...

Найти площадь треугольника abc, если известны координаты его вершин
Помогите решить задачу по геометрии :найти площадь треугольника abc если известны координаты его...

Заданы координаты 10 точек.Найти точку самую дальнюю от начала координат и найти расстояние.
Заданы координаты 10 точек.Найти точку самую дальнюю от начала координат и найти расстояние.

13
Эксперт по математике/физике
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
15.12.2015, 07:22 2
Если расстояния от точек до искомой точки разные, то точного решения может не быть и я предлагаю решать задачу методом наименьших квадратичных отклонений.
Если расстояния от точек до искомой точки одинаковые, то это задача определения центра описанной окружности и эта точка единственная и существует, если точки A B C не лежат на одной прямой.
Поэтому определитесь с заданием:
Вы пишете
Цитата Сообщение от _broni_ Посмотреть сообщение
и расстояние от них до не известной точки
а в системе у Вас r1 r2 r3
0
373 / 343 / 42
Регистрация: 14.07.2015
Сообщений: 2,890
15.12.2015, 09:13 3
Лучший ответ Сообщение было отмечено _broni_ как решение

Решение

Цитата Сообщение от SSC Посмотреть сообщение
а в системе у Вас r1 r2 r3
Ну так это и есть расстояния от A,B и С до М.
_broni_, решите систему численно и будет вам счастье.

Да, по-моему система легко сводится к системе двух линейных алгебраических уравнений.
1
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 5
15.12.2015, 18:13  [ТС] 4
Расстояние не равное от известных точек до не известной точки . Мне нужен синтаксис как вводить координаты и как объединить уравнения в систему.
0
373 / 343 / 42
Регистрация: 14.07.2015
Сообщений: 2,890
15.12.2015, 18:26 5
Лучший ответ Сообщение было отмечено _broni_ как решение

Решение

Цитата Сообщение от _broni_ Посмотреть сообщение
Расстояние не равное от известных точек до не известной точки
Не понял. Расстояния, которые вам даны, это расстояния от чего до чего?
Какой тут синтаксис? Вводите х1, у1 и т.д. Составляете матрицу коэффициентов А и вектор правой части b. Решаете [x,y]=A\b.
Уравнения ваши это и так система, куда дальше объединять?
1
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 5
15.12.2015, 21:42  [ТС] 6
Мне наверное инпут, для ввода пользователем но как? Дано расстояние от A до M, B до M, C до M,. Ну и точки A B C . расстояние и точки должен ввести пользователь .
вот уже готовое решение.
у=(r^2-a^2-b^2-2ax)/-2b
x=(r^2-a^2-b^2+2by)/2a
Подскажите как ввести и вывести . не работал ранее в матлабе
0
Модератор
1700 / 1552 / 520
Регистрация: 13.09.2015
Сообщений: 5,370
15.12.2015, 21:57 7
Лучший ответ Сообщение было отмечено _broni_ как решение

Решение

Цитата Сообщение от _broni_ Посмотреть сообщение
Мне наверное инпут, для ввода пользователем но как?
Matlab M
1
2
x1=input('Введите значение x1 ');
y1=input('Введите значение y1 ');
ну и так далее
0
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 5
15.12.2015, 22:51  [ТС] 8
а формулы как эти записать? ошибку выбивает
у=(r^2-a^2-b^2-2ax)/-2b
x=(r^2-a^2-b^2+2by)/2a
0
Эксперт по математике/физике
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
16.12.2015, 07:46 9
Цитата Сообщение от _broni_ Посмотреть сообщение
Дано расстояние от A до M, B до M, C до M,.
Вы пишете что у Вас 3 расстояния, следовательно они могут быть разные, а в формуле просто r.

Цитата Сообщение от _broni_ Посмотреть сообщение
вот уже готовое решение.
Это конечно замечательно, но что такое a b x y?
0
373 / 343 / 42
Регистрация: 14.07.2015
Сообщений: 2,890
16.12.2015, 08:50 10
_broni_, вот, еще вчера написал
Matlab M
1
2
3
4
5
6
7
8
9
x1=0;y1=0;
x2=1;y2=1;
x3=2;y3=0;
r1=sqrt(5);r2=1;r3=sqrt(5);
A=[2*(x1-x2),2*(y1-y2);...
   2*(x1-x3),2*(y1-y3)]
b=[x1^2-x2^2+y1^2-y2^2+r2^2-r1^2;...
   x1^2-x3^2+y1^2-y3^2+r3^2-r1^2]
X=A\b
Решить можно и вручную, но так быстрее. Ответ получается правильный только, если задать разумные условия, при которых задача будет иметь решение.
1
Эксперт по математике/физике
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
16.12.2015, 13:09 11
Цитата Сообщение от bobah16 Посмотреть сообщение
Ответ получается правильный только, если задать разумные условия,


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

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
clear all;
clc;
close all;
%x = input('Введите х: '); 
x1=0;y1=0;
x2=1;y2=1;
x3=2;y3=0.3;
r1=sqrt(5);r2=1;r3=sqrt(5);
A=[2*(x1-x2),2*(y1-y2);...
   2*(x1-x3),2*(y1-y3)];
b=[x1^2-x2^2+y1^2-y2^2+r2^2-r1^2;...
   x1^2-x3^2+y1^2-y3^2+r3^2-r1^2];
X=A\b;
 
alf=0:pi/180:2*pi;
r1x=r1*cos(alf)+x1; r1y=r1*sin(alf)+y1;
plot(r1x,r1y,'g');
hold on
r2x=r2*cos(alf)+x2; r2y=r2*sin(alf)+y2;
plot(r2x,r2y,'g');
r3x=r3*cos(alf)+x3; r3y=r3*sin(alf)+y3;
plot(r3x,r3y,'g');
 
plot([x1 x2],[y1 y2],'b', [x3 x2],[y3 y2],'b', [x1 x3],[y1 y3],'b', X(1),X(2),'rx');
Еще раз повторяюсь, для данной задачи надо использовать поиск решения методом наименьшего квадратичного отклонения, причем после получения решения выполнить анализ точности полученных r1 r2 r3 с первоначально заданными.
Миниатюры
Найти произвольную четвертую точку если известны координаты точек ABC и расстояние от них до неизвестной точки  
1
373 / 343 / 42
Регистрация: 14.07.2015
Сообщений: 2,890
16.12.2015, 13:24 12
Цитата Сообщение от SSC Посмотреть сообщение
Правда в 99,99% случаев условия будут не "разумные", а "правильный ответ" будет получаться без всяких предупреждений.
Я думаю условия у ТС будут разумные в задаче. Т.к. задавать расстояния, при которых задача не имеет аналитического решения это мягко говоря странно. И еще более странно искать решение при таких данных задачи с помощью МНК.
Вон ТС уже даже готовое решение привел, а значит подразумевается, что условия корректные.
1
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 5
18.12.2015, 11:52  [ТС] 13
SSC, спасибо большое! "А" . Дайте ваши реквизиты я заплачу вам за задачку !
0
Эксперт по математике/физике
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
18.12.2015, 12:13 14
Вариант с поиском по с методом наименьшего квадратичного отклонения
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
function reshenie
clear all;
clc;
close all; 
global x1 x2 x3 y1 y2 y3 r1 r2 r3
x1=0;y1=0;
x2=1;y2=1;
x3=2;y3=0.3;
r1=sqrt(5);r2=1;r3=sqrt(5);
%r3=1.98;
A=[2*(x1-x2),2*(y1-y2);...
   2*(x1-x3),2*(y1-y3)];
b=[x1^2-x2^2+y1^2-y2^2+r2^2-r1^2;...
   x1^2-x3^2+y1^2-y3^2+r3^2-r1^2];
X=A\b;
 
alf=0:pi/180:2*pi;
r1x=r1*cos(alf)+x1; r1y=r1*sin(alf)+y1;
plot(r1x,r1y,'g');
hold on
r2x=r2*cos(alf)+x2; r2y=r2*sin(alf)+y2;
plot(r2x,r2y,'g');
r3x=r3*cos(alf)+x3; r3y=r3*sin(alf)+y3;
plot(r3x,r3y,'g');
plot([x1 x2],[y1 y2],'b', [x3 x2],[y3 y2],'b', [x1 x3],[y1 y3],'b', X(1),X(2),'rx');
% Решение методом наименьшего квадратичного отклонения
% Стартовая точка
M0=[ (x1+x2+x3)/3, (y1+y2+y3)/3 ];
[M, mif]=fminsearch(@RunModel, M0);
plot(M(1),M(2),'ro');
dX=max( [abs(((X(1)-x1)^2+(X(2)-y1)^2)^(1/2)-r1)/r1, ...
     abs(((X(1)-x2)^2+(X(2)-y2)^2)^(1/2)-r2)/r2, ...
     abs(((X(1)-x3)^2+(X(2)-y3)^2)^(1/2)-r3)/r3] );
 
dM=max( [abs(((M(1)-x1)^2+(M(2)-y1)^2)^(1/2)-r1)/r1, ...
     abs(((M(1)-x2)^2+(M(2)-y2)^2)^(1/2)-r2)/r2, ...
     abs(((M(1)-x3)^2+(M(2)-y3)^2)^(1/2)-r3)/r3] );
str=sprintf('Максимальная относительная ошибка 1 метода = %f',dX);
disp(str);
str=sprintf('Максимальная относительная ошибка 2 метода = %f',dM);
disp(str);
end
 
function [ Cel ] = RunModel( M )
    global x1 x2 x3 y1 y2 y3 r1 r2 r3
    % Относительное Отклонение
    Cel=(((M(1)-x1)^2+(M(2)-y1)^2-r1^2)/r1)^2;
    Cel=Cel+(((M(1)-x2)^2+(M(2)-y2)^2-r2^2)/r2)^2;
    Cel=Cel+(((M(1)-x3)^2+(M(2)-y3)^2-r3^2)/r3)^2;
end
Результат в случае невязки расстояний более точный.
Телефон для буноса МТС 89-879-66-32-31
1
18.12.2015, 12:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2015, 12:13
Помогаю со студенческими работами здесь

Найти координаты точки, зная расстояние до других точек
Здравствуйте! Нужна помощь в решении задачи. Сам даже не знаю с чего подступить, совсем геометрию...

Найти координаты второй точки, зная первую точку и расстояние между ними
Здравствуйте Знаю, что вопрос наверное из курса по математике 8-ого класса, но что-то меня...

Найти координаты точек отрезка если известны координаты концов отрезка
Отрезок АВ разделен на 5 равных частей точками С,D,Е,F найти координаты точек D,С если известны...

У квадрата ABCD на плоскости известны координаты двух противоположных вершин - точек A и C. Найти координаты точек B и
У квадрата ABCD на плоскости известны координаты двух противоположных вершин - точек A и C. Найти...

Найти высоты треугольников ABC, ABD, ACD, если даны координаты точек A, B, C, D
Описать процедуру Heights(Ax,Ay,Bx,By,Cx,Cy,hA,hB,hC), находящую высоты hA, hB, hC треугольника...

Используя функции найти площадь треугольников ABC, ABD, ACD, если даны координаты точек
Используя функции Leng и Perim, описать функцию Area (xA, yA, xB, yB, xC, yC) действительного типа,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru