roboforum.ru

Технический форум по робототехнике.

Задачка по математике

Все здесь

Задачка по математике

Сообщение blindman » 17 сен 2009, 12:26

Есть 5 векторов - A, B, C, D, E.
A+B=E
C+D=E

Векторы A и B, C и D попарно ортогональны. Если посмотреть на рисунок - векторы C и D - зеркальное отражение векторов A и B относительно вектора E.

Требуется найти 2 ортогональных вектора одинаковой длины, используя эти 5 векторов в качестве исходных данных. Допустимые операции - сложение векторов и умножение вектора на действительную константу.
Вложения
vectors.png
vectors.png (5.67 КиБ) Просмотров: 1557
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Задачка по математике

Сообщение Duhas » 17 сен 2009, 12:30

мммм, а A+D n B+C

Добавлено спустя 52 секунды:
не катит ли ? ) так если на глазок ? )
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Задачка по математике

Сообщение blindman » 17 сен 2009, 12:37

Неа. Если сделать A намного длиннее B то будет видно что не катит
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Задачка по математике

Сообщение Duhas » 17 сен 2009, 12:38

ну тогда не будет зеркальности ))) я на ней основывался (
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Задачка по математике

Сообщение blindman » 17 сен 2009, 12:41

Мне кажется, что решения нет, но познаний в математике не хватает чтобы доказать.

Можно ввести ещё один вектор F перпендикулярный E, такой что |E|/|F| = |A|/|B|, или |E|/|F| = |B|/|A|
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Задачка по математике

Сообщение Duhas » 17 сен 2009, 12:48

2E-B-C and 2E-A-D ? ))
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Задачка по математике

Сообщение =DeaD= » 17 сен 2009, 13:07

А константу можно брать из длин векторов и всяко хитро рассчитывать? :) а то так-то задачу тупо можно разрешить, введя систему координат из исходной точки.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Задачка по математике

Сообщение blindman » 17 сен 2009, 13:29

Нет, нельзя. Всё что есть - описано в первом посте. Ну и можно ещё один вектор ввести. Никакой тригонометрии и прочих хитростей. Чтобы были понятнее ограничения - векторы представляют собой синусоидальные сигналы одной частоты, обработать их надо операционными усилителями. Угол между векторами AE (и соответственно другие) зависит от частоты и заранее неизвестен, измерить его нет возможности
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Задачка по математике

Сообщение =DeaD= » 17 сен 2009, 13:41

Т.е. запрещено умножение на неизвестные до выдачи самих векторов числа - так?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Задачка по математике

Сообщение blindman » 17 сен 2009, 14:00

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

Это всё должно быть реализовано в схеме на ОУ и резисторах. ОУ - сложение, резисторы - умножение на константу. Больше ничего
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Задачка по математике

Сообщение =DeaD= » 17 сен 2009, 14:48

Я думаю в лоб надо решать так:
1. Понятно что все вершины лежат на окружности;
2. Понятно что при заданном векторе E (его можно считать горизонтальным, проходящим через центр окружности), вся фигура определяется положением точки стыковки векторов A и B на окружности, это тупо угол от 0 до Pi (если в радианах);
3. Понятно, что искомые вектора могут быть только вида x1*A+y1*C+z1*E и x2*A+y2*C+z2*E;

Дальше можно тупо попробовать найти x1,y1,z1,x2,y2,z2, чтобы при любом заданном угле эти вектора были перпендикулярны.

Добавлено спустя 11 минут 22 секунды:
Попробовать разрешить в лоб?

Добавлено спустя 11 минут 10 секунд:
Поправка в формулах выше - x1*A+y1*C+z1*E конечно же, т.к. B=E-A, т.е. они линейно зависимы.

А вообще возьмём для удобства (моего :)) x1*E/2+y1*A+z1*C

Если вектора записывать (dx,dy), а угол принять z, тогда:

1. Вектор E: (2,0);
2. Вектор A: (cos(z)+1,sin(z));
4. Вектор C: (cos(z)+1,-sin(z));

Получаем систему:

F1=x1*E/2+y1*A+z1*C=(x1*2+y1*(1+cos(z))+z1*(1+cos(z)),y1*sin(z)-z1*sin(z))
F2=x2*E/2+y2*A+z2*C=(x2*2+y2*(1+cos(z))+z2*(1+cos(z)),y2*sin(z)-z2*sin(z))
F1*F2 должно быть =0 при любых z, получаем:

(x1+y1*(1+cos(z))+z1*(1+cos(z)),y1*sin(z)-z1*sin(z))*(x2+y2*(1+cos(z))+z2*(1+cos(z)),y2*sin(z)-z2*sin(z))=
(x1+y1*(1+cos(z))+z1*(1+cos(z)))*(x2+y2*(1+cos(z))+z2*(1+cos(z)))+(y1*sin(z)-z1*sin(z))*(y2*sin(z)-z2*sin(z))=0

Развернем последнее:

(x1+y1*(1+cos(z))+z1*(1+cos(z)))*(x2+y2*(1+cos(z))+z2*(1+cos(z)))+(y1*sin(z)-z1*sin(z))*(y2*sin(z)-z2*sin(z))=0

Раскроем скобки:

Добавлено спустя 3 минуты 48 секунд:
Обозначим для этого пока dos(z)=1+cos(z)

(x1+y1*dos(z)+z1*dos(z))*(x2+y2*dos(z)+z2*dos(z))+(y1*sin(z)-z1*sin(z))*(y2*sin(z)-z2*sin(z))=0

получим:

x1*x2+x1*y2*dos(z)+x2*y1*dos(z)+y1*y2*dos^2(z)+y1*y2*sin^2(z)-y1*z2*sin^2(z)-y2*z1*sin^2(z)+z1*z2*sin^2(z)=0

Добавлено спустя 2 минуты 6 секунд:
x1*x2+(x1*y2+x2*y1)*dos(z)+y1*y2*dos^2(z)+(y1*y2-y1*z2-y2*z1+z1*z2)*sin^2(z)=0

Добавлено спустя 8 минут 56 секунд:
Теперь вспомним, что такое dos(z)=1+cos(z):

x1*x2+(x1*y2+x2*y1)*(1+cos(z))+y1*y2*(1+2cos(z)+cos^2(z))+(y1*y2-y1*z2-y2*z1+z1*z2)*(1-cos^2(z))=0

Получаем сгруппировав вокруг степеней cos(z) всё:

(x1*x2+x1*y2+x2*y1+y1*y2+y1*y2-y1*z2-y2*z1+z1*z2) +
(x1*y2+x2*y1+2*y1*y2)*cos(z) +
(y1*y2-y1*y2+y1*z2+y2*z1-z1*z2)*cos^2(z) = 0

Упрощаем:

(x1*x2+x1*y2+x2*y1+2*y1*y2-y1*z2-y2*z1+z1*z2) +
(x1*y2+x2*y1+2*y1*y2)*cos(z) +
(y1*z2+y2*z1-z1*z2)*cos^2(z) = 0

или

(x1+y1)*(x2+y2)+(y1-z1)*(y2-z2) +
(x1*y2+x2*y1+2*y1*y2)*cos(z) +
(y1*z2+y2*z1-z1*z2)*cos^2(z) = 0

Интуиция подсказывает мне, что надо иметь нулевые коэффициенты при всех степенях cos(z), чтобы при любых z это было нулём :)

Добавлено спустя 59 секунд:
Т.е. имеем систему:
1) (x1+y1)*(x2+y2)+(y1-z1)*(y2-z2) =0
2) x1*y2+x2*y1+2*y1*y2 =0
3) y1*z2+y2*z1-z1*z2 =0

Разрешима ли она относительно x1,y1,z1,x2,y2,z2 ?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Задачка по математике

Сообщение Master » 17 сен 2009, 14:58

Разрешима ли она относительно x1,y1,z1,x2,y2,z2 ?

Система имеет решение только если кол-во неизвестных равно кол-ву уравнений.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: Задачка по математике

Сообщение blindman » 17 сен 2009, 15:01

А условие равенства модулей векторов, которые должны получиться - учтено?
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Задачка по математике

Сообщение =DeaD= » 17 сен 2009, 15:15

Блин, забыл еще условие одинаковости длины :) слона то мы и не заметили :)

Добавлено спустя 12 секунд:
Ога, забыл :)

Добавлено спустя 1 минуту 3 секунды:
Master писал(а):Система имеет решение только если кол-во неизвестных равно кол-ву уравнений.

Полная фигня :)

Пример: Система "x+y+z=0" имеет не то что решение, а дофига решений :)

Добавлено спустя 4 минуты 2 секунды:
В общем еще уравнения:
F1*F1=F2*F2 должны быть :)

И что-то мне лень их выписывать :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Задачка по математике

Сообщение Master » 17 сен 2009, 15:34

Система "x+y+z=0"

Это не система :) это одно уравнение
x+y+z=0
x*y*z=5
x/y=z
вот это уже система и она имеет решение, или не имеет.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

След.

Вернуться в Свободное общение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2