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

Матрица преобразования и точки

01.02.2017, 10:18. Показов 4296. Ответов 37
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам

Не по теме:

Если не в той подтеме написала, не ругайте


Добрый день. Нужна ваша помощь. Мне нужно решить задания, а я не знаю как их сделать:

1.задано точку (1, 2). найти матрицу преобразования, переводит заданную точку в точку (1, -2)
2.задано точку (1, 3). найти матрицу преобразования, переводит заданную точку в точку (-1, 3)
3.записать матрицу преобразования, которая будет отображать любую точку симметрично относительно оси Х
4.записать матрицу преобразования, которая будет отображать любую точку симметрично относительно оси В

Первых два я так поняла нужно через матрицу маштабирования делать или повороту. Но как решить где нужно каким делать я не знаю. А от как 3-4 я незнаю сделать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2017, 10:18
Ответы с готовыми решениями:

Найти работу силы по перемещению точки вдоль участка кривой от точки до точки
Найти работу силы f(x,y)=(2xy-4y)i - (x^2 -y)j по перемещению точки вдоль участка кривой x=3y^2 от...

Матрица оператора линейного преобразования
Дана матрица М линейного преобразования φ в базисе e1, e2. Найти матрицу преобразования φ в...

Матрица.Найти собственные значения и векторы преобразования
Найти собственные значения и собственные векторы преобразования,заданного матрицей А. A = (2 1 ...

Задана матрица линейного преобразования A трехмерного пространства
3)Задана матрица линейного преобразования A трехмерного пространства в некотором базисе e1,e2,e3....

37
5158 / 2770 / 465
Регистрация: 05.10.2013
Сообщений: 7,322
Записей в блоге: 148
02.02.2017, 13:51 2
Цитата Сообщение от dashaLuna Посмотреть сообщение
Первых два я так поняла нужно через матрицу маштабирования делать или повороту.
Я считаю, что нужно делать через матрицу переноса. У вас есть точка (x, y), которую нужно перенести в точку (x', y'). Причём все три задачи решаются с помощью матрицы переноса. Вам нужно её вывести.
0
Эксперт по математике/физике
505 / 465 / 100
Регистрация: 30.01.2017
Сообщений: 1,371
03.02.2017, 12:49 3
сюда
1
5158 / 2770 / 465
Регистрация: 05.10.2013
Сообщений: 7,322
Записей в блоге: 148
03.02.2017, 13:28 4
Цитата Сообщение от dashaLuna Посмотреть сообщение
1.задано точку (1, 2). найти матрицу преобразования, переводит заданную точку в точку (1, -2)
2.задано точку (1, 3). найти матрицу преобразования, переводит заданную точку в точку (-1, 3)
3.записать матрицу преобразования, которая будет отображать любую точку симметрично относительно оси Х
4.записать матрицу преобразования, которая будет отображать любую точку симметрично относительно оси В
Все 4 задания об одном и том же: о переносе точки. Задания 1 и 3 - это перенос точки относительно оси Y. Задания 2 и 4 - это перенос точки относительно оси X. Причём 1 и 2 - перенос точки с указанными координатами, а 3 и 4 - перенос точки в обобщённом виде.

От вас требуется вывод матрицы переноса, что я опишу ниже. Если вы не поймёте как выводится матрица переноса, то подставлять в уже готовую матрицу - это бестолковая затея. В математике нужно понимать, что откуда берётся, то есть выводится, тогда задачи решены.

Вывод матрицы переноса

И так. У нас есть точка (x, y). Нам нужно получить (x', y'). Уравнения записываются так:

Код
x' = x + Tx
y' = y + Ty
, где Tx и Ty - это перемещения по оси X и по оси Y соответственно (см. рисунок по спойлером ниже)

Кликните здесь для просмотра всего текста


Обозначим уравнения выше единицей в скобках (1)

В матричном виде уравнения (1) записываются так в обобщённом виде:

Код
|х'| =  |a b| |x|
|y'|    |c d| |y|
Перепишем в виде уранений, то есть раскроем умножение матрицы на вектор:

Код
x' = a * x + b * y
y' = c * x + d * y
Если уравнение выше сопоставить с (1), то нам не хватает размера матрицы для Tx и Ty, поэтому добавить размерность к векторам и матрице:

(2)
Код
|х'|   |a b с| |x|
|y'| = |d e f| |y|
|1 |   |g h k| |1|
Перепишем в виде уравнений:
Код
x' = a*x + b*y + c*1
y' = d*x + e*y + f*1
1 =  g*x + h*y + k*1
Для того, чтобы из уравнений выше получить уравнений (1) коэффициенты должны быть следующими:
a = 1, b = 0, c = Tx
d = 0, e = 1, c = Ty
g = 0, h = 0, k = 1 (тут должно просто выполняться равенство 1=1)

Подставим значения коэффициентов в уравнение (2)

(3):
Код
|х'|   |1 0 Tx| |x|
|y'| = |0 1 Ty| |y|
|1 |   |0 0 1 | |1|
Мы получили матрицу перемещения. Вот она:
Код
|1 0 Tx|
|0 1 Ty|
|0 0 1 |
Оформлю решение всех 4 задач.

(x, y) -> (x', y')

x' = x + Tx
y' = y + Ty

1) (1, 2) -> (1, -2)

1 = 1 + Tx
-2 = 2 + Ty

Tx = 1 - 1 = 0
Ty = -2 + (-2) = -4

Ответ:
Код
|1 0  0|
|0 1 -4|
|0 0  1|
2) (1, 3) -> (-1, 3)

-1 = 1 + Tx
3 = 3 + Ty

Tx = -1 + (-1) = -2
Ty = 3 - 3 = 0

Ответ:
Код
|1 0  0  |
|0 1  -2y|
|0 0  1  |
4) Симметрия относительно оси Y

x' = -x
y' = y

x' = x + Tx
y' = y + Ty

-x = x + Tx
y = y + Ty

Tx = -x + (-x) = -2x
Ty = y - y = 0

Ответ:
Код
|1 0  -2x|
|0 1  0  |
|0 0  1  |
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
03.02.2017, 13:44 5
Имхо, для задачи 3 переносить ничего не нужно
Код
1 0
0 -1
В задаче 4 тоже без переноса. Но лень возиться с тригонометрией...
1
5158 / 2770 / 465
Регистрация: 05.10.2013
Сообщений: 7,322
Записей в блоге: 148
03.02.2017, 14:41 6
Вы меня натолкнули на мысль, что все 4 задачи можно так же решить с помощью матрицы масштабирования, либо матрицы поворота. Матрицу поворота дольше выводить. А вот матрицу масштабирования даже быстрее, чем матрицу переноса.

Выводить матрицу масштабирования не буду. Покажу конечный результат:
Код
|Sx 0  0|
|0  Sy 0|
|0  0  1|
Уравнения масштабирования:
x' = Sx * x
y' = Sy * y

Уравнения в матричном виде:
Код
|х'|   |Sx 0  0| |x|
|y'| = |0  Sy 0| |y|
|1 |   |0  0  1| |1|
Решение всех 4 задач с помощью матрицы масштабирования:

(x, y) -> (x', y')

1) (1, 2) -> (1, -2)

1 = Sx * 1
-2 = Sy * 2

Sx = 1
Sy = -1

Ответ:
Код
|1  0  0|
|0 -1  0|
|0  0  1|
2) (1, 3) -> (-1, 3)

-1 = Sx * 1
3 = Sy * 3

Sx = -1
Sy = 1

Ответ:
Код
|-1  0  0|
| 0  1  0|
| 0  0  1|
3) Симметрия относительно оси X

x' = x
y' = -y

x = Sx * x
-y = Sy * y

Sx = 1
Sy = -1

Ответ:
Код
|1  0  0|
|0 -1  0|
|0  0  1|
4) Симметрия относительно оси Y

x' = -x
y' = y

-x = Sx * x
y = Sy * y

Sx = -1
Sy = 1

Ответ:
Код
|-1 0 0|
| 0 1 0|
| 0 0 1|
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
03.02.2017, 14:46 7
Цитата Сообщение от dashaLuna Посмотреть сообщение
симметрично относительно оси В
А это что за ось такая? Я, прочтя мельком, решил, что это какая-то произвольная прямая. Но, впрочем, это не важно. Объединяя все результаты, можно сказать, что все 4 задачи решены
0
Эксперт по математике/физике
505 / 465 / 100
Регистрация: 30.01.2017
Сообщений: 1,371
03.02.2017, 14:46 8
8Observer8, зачем вы выписываете матрицы третьего порядка? Задача решается в двумерном пространстве.
1
5158 / 2770 / 465
Регистрация: 05.10.2013
Сообщений: 7,322
Записей в блоге: 148
03.02.2017, 14:56 9
Цитата Сообщение от eropegov Посмотреть сообщение
зачем вы выписываете матрицы третьего порядка? Задача решается в двумерном пространстве.
Для матрицы масштабирования - да, согласен, это было лишним, а для матрицы переноса это было необходимо, потому что нужно было получить Tx и Ty
0
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
03.02.2017, 14:58 10
8Observer8, вы зарапортовались. При переносе каждая точка p переходит в точку p + v, где v — вектор переноса, один и тот же для всех точек. В координатах — (x, y) переходит в точку (x + a, y + b), где a и b — числа, одни и те же для всех x и y (а не Tx, Ty). В виде умножения на матрицу перенос на ненулевой вектор нельза записать (хотя бы потому, что умножение на матрицу переводит (0, 0) в себя, а ненулевой перенос — нет).
0
5158 / 2770 / 465
Регистрация: 05.10.2013
Сообщений: 7,322
Записей в блоге: 148
03.02.2017, 15:05 11
Цитата Сообщение от helter Посмотреть сообщение
v — вектор переноса
Да, а Tx и Ty - это компоненты этого вектора. Я всё правильно написал.

Добавлено через 2 минуты
Я забыл выложить решение задачи 3 через матрицу переноса:

3) Симметрия относительно оси X

x' = x
y' = -y

x' = x + Tx
y' = y + Ty

x = x + Tx
-y = y + Ty

Tx = x - x = 0
Ty = -y + (-y) = -2y

Ответ:
Код
|1 0  0 |
|0 1 -2y|
|0 0  1 |
0
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
03.02.2017, 15:24 12
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Да, а Tx и Ty - это компоненты этого вектора.
Хотя бы Tx и Ty тогда чтобы не путалось с координатами точки (x, y). А вообще, Tx люди воспринимают как «оператор T, применённый к вектору x».

Но это мелочи. Вектор переноса для всех точек один и тот же, а у вас почему-то T_x, T_y зависят от x и y.
0
Эксперт по математике/физике
505 / 465 / 100
Регистрация: 30.01.2017
Сообщений: 1,371
03.02.2017, 15:39 13
Я бы ещё спросил, зачем тут вообще переносы. Постановка задачи не очень внятная, но, скорее всего, надо предъявить линейные преобразования. По крайней мере, задача решается одними линейными преобразованиями, без переносов.
0
5158 / 2770 / 465
Регистрация: 05.10.2013
Сообщений: 7,322
Записей в блоге: 148
03.02.2017, 16:10 14
Цитата Сообщение от eropegov Посмотреть сообщение
Постановка задачи не очень внятная, но, скорее всего, надо предъявить линейные преобразования. По крайней мере, задача решается одними линейными преобразованиями, без переносов.
Я показал, как решить задачу с помощью двух линейных преобразований: транспонирование и масштабирование. Мы получили два оператора в виде матриц, которые применяются к вектору.

Цитата Сообщение от helter Посмотреть сообщение
Вектор переноса для всех точек один и тот же, а у вас почему-то T_x, T_y зависят от x и y.
Я же написал, что такое Тx и Ty:
Цитата Сообщение от 8Observer8 Посмотреть сообщение
, где Tx и Ty - это перемещения по оси X и по оси Y соответственно (см. рисунок по спойлером ниже)
Даже показал на рисунке:
0
Эксперт по математике/физике
505 / 465 / 100
Регистрация: 30.01.2017
Сообщений: 1,371
03.02.2017, 16:16 15
Цитата Сообщение от 8Observer8 Посмотреть сообщение
с помощью двух линейных преобразований: транспонирование...
Что за линейное преобразование "транспонирование"?
1
5158 / 2770 / 465
Регистрация: 05.10.2013
Сообщений: 7,322
Записей в блоге: 148
03.02.2017, 16:22 16
Цитата Сообщение от eropegov Посмотреть сообщение
Что за линейное преобразование "транспонирование"?
Как раз зашёл исправить. Я хотел написать "транслирование"

Добавлено через 2 минуты
Транспонирование - это если столбцы записать в строчки, а строчки в столбцы.
0
Эксперт по математике/физике
505 / 465 / 100
Регистрация: 30.01.2017
Сообщений: 1,371
03.02.2017, 16:33 17
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Я хотел написать "транслирование"
А что за линейное преобразование "транслирование"? Если вы имеете в виду параллельный перенос, так он не является линейным преобразованием.
0
5158 / 2770 / 465
Регистрация: 05.10.2013
Сообщений: 7,322
Записей в блоге: 148
03.02.2017, 17:13 18
Цитата Сообщение от eropegov Посмотреть сообщение
А что за линейное преобразование "транслирование"?
Я занимаюсь программированием игр и применил этот термин оттуда.

Цитата Сообщение от eropegov Посмотреть сообщение
Если вы имеете в виду параллельный перенос, так он не является линейным преобразованием.
Умножение матрицы на вектор и получение нового вектора не является линейным преобразованием? Значит, это по-вашему нелинейное проебразование? Или как по-другому тогда назвать такое проеобразование? Я хорошо знаю линейную алгебру. Линейно!
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
03.02.2017, 17:31 19
Господа! У меня такое ощущение, что вы говорите о разных вещах. Есть преобразование линейного пространства векторов. Оно задается матрицей 2х2. И есть преобразование точек плоскости. Которая (точки плоскости) не является линейным пространством. И там есть повороты (задаются матрицей 2х2) и сдвиги. Все это вместе можно задать матрицей 3х3.
http://studentpmr.ru/?p=8149

Добавлено через 3 минуты
Вот еще
https://ru.wikipedia.org/wiki/... 0%B8%D0%B5
0
Эксперт по математике/физике
505 / 465 / 100
Регистрация: 30.01.2017
Сообщений: 1,371
03.02.2017, 17:40 20
Байт, плоскость всё-таки традиционно рассматривается как линейное пространство, точки её отождествляются с радиус-векторами. Если мы хотим сдвигов, то о линейной структуре, конечно, придётся забыть. Но тогда нельзя говорить и о линейных преобразованиях, а надо - об аффинных. А 8Observer8, похоже, разницы между линейными и аффинными не понимает.

Добавлено через 2 минуты
Цитата Сообщение от eropegov Посмотреть сообщение
Если мы хотим сдвигов
(которые в поставленной задаче нужны только в том случае, если загадочная ось В не проходит через начало координат, то есть является аффинным подпространством, а не линейным).

Добавлено через 1 минуту
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Умножение матрицы на вектор и получение нового вектора не является линейным преобразованием?
Параллельный перенос не задается умножением вектора координат на матрицу. Это аффинное преобразование, а не линейное.
0
03.02.2017, 17:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.02.2017, 17:40
Помогаю со студенческими работами здесь

Выяснить тип и определить неподвижные точки изометрического преобразования
Задание дано в заголовке. Вот пример: \begin{pmatrix}x & \\ y & \end{pmatrix} \rightarrow...

Разработать функцию преобразования координат точки
Разработать функцию преобразования координат точки (X0, Y0) при повороте системы координат на угол...

Взаимные преобразования "Матрица смежности" <-> "Матрица инцидентности"
Вершины неорентированного графа без петель пронумерованы числами от 0 до некоторого n. Из матрицы...

Дана квадратная матрица A(n,n). Выполнить следующие преобразования : поставить k - ю строку на место j - го столбца;
пожалуйста


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

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