Автор: alex_izm 20.10.2007, 23:29
Здравствуйте, товарисчи!
Есть у мну уравнение вот такое:
(a*(p4x-p3x)+p3x-a*(p2x-p1x)+p1x)^+(a*(p4y-p3y)+p3y-a*(p2y-p1y)+p1y)^ - b^ = 0
данные переменные в нем: b, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y;
Нужно решить это уравнение относительно "a"
не знаю как здесь поставить степень, поэтому значек "^" означает - "в квадрате"
Заранее благодарен!
Автор: venja 21.10.2007, 5:36
Переобозначьте комбинации параметров новыми буквами, получите квадратное уравнение относительно "а", напишите формулу для корней.
Автор: Руководитель проекта 21.10.2007, 6:58
В USA тоже на «олбанском» общаются?
Автор: alex_izm 21.10.2007, 14:42
Цитата(venja @ 21.10.2007, 5:36)

Переобозначьте комбинации параметров новыми буквами, получите квадратное уравнение относительно "а", напишите формулу для корней.
Нет, здесь немного все сложней, чем просто квадратное уравнение. (По крайней мере мне так кажется).
Давайте начнем с того, как я пришел к этой функции и почему я запостил это в тему по графикам и исследованию функций.
А началось все вот с такой задачи: в системе координат имеются две окружности с центрами в точках
P1 и P3 и с радиусами
R1 и R2. Окружность 1 перемещается из точки
P1 в точку
P2 за временную единицу равную 1 (1 сек, минута, час, не имеет значения). вторая окуржность в это же самое время и за то же самое время перемещается из точки
P3 в точку
P4. Координаты этих точек соответственно
(P1x, P1y),(P2x, P2y),(P3x, P3y),(P3x, P3y).
Вопрос: пересекуться ли эти окружности, и если да, то в какой момент времени?отсюда я вывел функцию которая находит расстояние между центрами этих двумх окружностей в данный момент времени. Если это расстояние <= сумме радиусов двух окружностей, то окружности пересекаются.
Получилась эта функция таким образом:
положение окружности "1" в момент времени "a" - точка PW1
положение окружности "2" в момент времени "a" - точка PW2
PW1x = a*(P2x-P1x)+P1x;
PW1y = a*(P2y-P1y)+P1y;
PW2x = a*(P4x-P3x)+P3x;
PW2y = a*(P4y-P3y)+P3y;а далее, по теореме Пифагора, просто находим расстояние "b" между двумя точками PW1 и PW2
b
=корень((PW2x-PW1x)^ + (PW2y-PW1y)^);то есть:
(PW2x-PW1x)^ + (PW2y-PW1y)^ - b^ = 0;далее меняем PW1x, Pw1y, PW1x, Pw1y на то чему они равны, и получаем наше уравнение:
(a*(p4x-p3x)+p3x-a*(p2x-p1x)+p1x)^+(a*(p4y-p3y)+p3y-a*(p2y-p1y)+p1y)^-b^=0если
"b" = R1+R2 (расстояние между центрами окружностей в момент пересечения равно сумме радиусов) то нужно найти "
a" - момент когда произойдет это пересечение.
может быть так, что пересечения не будет вовсе. Или например если длина отрезка P1-P2 равна длине отрезка P3-P4 и они параллельны, то это вообще получается функция прямой.
Я написал небольшую прогу, которая моделирует эту функцию. Если интересно ее можно скачать отсюда: http://www.aanddgr.com/files2/colfunc.exe
( вирусов нету!

)
Для просторы, не стал включать окружности, просто расстояние между двумя точками в двух отрезках. Обратите внимание как меняется функция в зависимости от положения точек. Работает програ просто, в первом белом квадратике нужно задать четырьмя точками два отрезка, и во втором квадратике строится график.
Спасибо еще раз!
Цитата(Руководитель проекта @ 21.10.2007, 6:58)

В USA тоже на «олбанском» общаются?
Нет, здесь, как бы это, на английском разговаривают

а я не русский, поэтому использую олбанский как язык межнационального общения, чтоб никому не было обидно! Я же не шовинист какой-нибудь!
Автор: A_nn 21.10.2007, 15:20
Там в начале Вы минус потеряли в обеих скобках перед р1х и р1у, но это мелочи. А вообще venja прав, там получается просто квадратное уравнение (несмотря на такую страшную формулу). Приведите в скобках подобные слагаемые (относительно а), сделайте замену (например р4х-р3х-р2х+р3х=А, это будет коэффициент перед а в первой скобке, и т.д.).
Автор: alex_izm 21.10.2007, 16:47
Цитата(A_nn @ 21.10.2007, 15:20)

Там в начале Вы минус потеряли в обеих скобках перед р1х и р1у, но это мелочи. А вообще venja прав, там получается просто квадратное уравнение (несмотря на такую страшную формулу). Приведите в скобках подобные слагаемые (относительно а), сделайте замену (например р4х-р3х-р2х+р3х=А, это будет коэффициент перед а в первой скобке, и т.д.).
Точно, блин, минусы потерял

.
Попробую сделать как вы сказали.
Спасибо!
Автор: Dimka 21.10.2007, 17:45
Цитата(alex_izm @ 21.10.2007, 20:47)

Точно, блин, минусы потерял

.
Попробую сделать как вы сказали.
Спасибо!
Не морочте себе голову, такие задачи можно и нужно решать с помощью компьютера, а не ручных преобразований, в которых можно ошибиться и вся работа пойдет "коту под хвост"
Автор: alex_izm 21.10.2007, 23:58
Цитата(Dimka @ 21.10.2007, 17:45)

Не морочте себе голову, такие задачи можно и нужно решать с помощью компьютера, а не ручных преобразований, в которых можно ошибиться и вся работа пойдет "коту под хвост"
Вот спосибо огромное!
а с помощью чего это делалось, и где можно это достать?
можно будет такую же гифку сделать но с исправленными минусами?
(a*(p4x-p3x)+p3x-a*(p2x-p1x)-p1x)^ + (a*(p4y-p3y)+p3y-a*(p2y-p1y)-p1y)^ - b^ = 0И еще обратил внимание, что прога разделяет p4x на p4*x, p1y на p1*y итд. на самом деле это одна переменная. Я программист
так что можно будет решение сделать на вот такое уравнение (опять относительно "a")?
(a*(f-e)+e-a*(d-c)-c)^ + (a*(j-i)+i-a*(h-g)-g)^ - b^ = 0Спасибо
Автор: alex_izm 22.10.2007, 22:02
Цитата(Dimka @ 22.10.2007, 5:18)

Прога называется Maple.
Будем искать!
А пока, ну если не трудно, сделай пожалуйста еще один гиф с решением на то упрощенное уравнение, что я в предыдущем сообщении написал.
Автор: alex_izm 25.10.2007, 16:11
Все, нашел Maple и решил - таки! Вставил решение в программу, и все работает. Находит точку пересечения.
Вот какое решение получилось, если кому интересно (смотрим прикрепленный файл). Руками бы я его никогда правильно не решил!
Прикрепленные файлы
f1.rtf ( 40.83 килобайт )
Кол-во скачиваний: 22
Автор: Dimka 25.10.2007, 17:28
Теперь вместо букв подставляйте цифры и все.
Если хотите, могу Вам скинуть книжку по основным командам математического пакета. 83кб в архиве.