Как преобразовать матрицу в вектор в R (с примерами)
Вы можете использовать следующий синтаксис для преобразования матрицы в вектор в R:
#convert matrix to vector (sorted by columns) using c() new_vector
Обратите внимание, что функции c() и as.vector() возвращают одинаковые результаты.
В следующих примерах показано, как использовать каждую из этих функций на практике со следующей матрицей:
#create matrix my_matrix
Пример 1: преобразование матрицы в вектор (отсортировано по столбцам) с использованием функции c()
Следующий код показывает, как преобразовать матрицу в вектор (отсортированный по столбцам) с помощью функции c() :
#convert matrix to vector (sorted by columns) new_vector
Пример 2. Преобразование матрицы в вектор (отсортированное по строкам) с использованием функции c()
В следующем коде показано, как преобразовать матрицу в вектор (отсортированный по строкам) с помощью функции c() :
#convert matrix to vector (sorted by rows) new_vector
Пример 3: преобразование матрицы в вектор (отсортировано по столбцам) с использованием функции as.vector()
В следующем коде показано, как преобразовать матрицу в вектор (отсортированный по столбцам) с помощью функции as.vector() :
#convert matrix to vector (sorted by columns) new_vector
Пример 4: преобразование матрицы в вектор (отсортировано по строкам) с использованием функции as.vector()
В следующем коде показано, как преобразовать матрицу в вектор (отсортированный по строкам) с помощью функции as.vector() :
#convert matrix to vector (sorted by rows) new_vector
Преобразовать матрицу и записать ее вектор ,а вектор вывести
У нас есть булева переменная, если она равна = 1 то матрицу мы записываем в вектор(masiv) по строкам, если равна = 0 по столбцам, а вектор выводим. Вот часть кода, помогите пожалуйста с переводом матрицы в вектор и вывода вектора на экран.
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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
#include #include #include #include using namespace std; void RandomMass(int n, int m, int** Mass) //Функция рандомного массива (в ней создается рандомный массив) { for (int i = 0; i n; i++) //строки for (int j = 0; j m; j++) //столбцы Mass[i][j] = rand() % 50 - 110; // делаем рандомный массив в рандомной среде } void DisplayMass(int n, int m, int** Mass) // Функция вывода рандомного массива (она выводит массив на экран) { setlocale(LC_ALL, "Russian"); cout <"---------------------------Массив---------------------------" ; for (int i = 0; i n; i++) { for (int j = 0; j m; j++) { cout <" " [ i][j]; } cout ; } cout ; } int main() // Функция выполняющая основную задачу { setlocale(LC_ALL, "Russian"); srand(time(0)); // делаем среду рандомной int STROK1; int STOLB1; cout <"Введиет количество строк" ; cin >> STROK1; cout <"Введите количество столбцов" ; cin >> STOLB1; int** Mass1 = new int* [STROK1]; for (int i = 0; i STROK1; i++) { Mass1[i] = new int[STOLB1]; } RandomMass(STROK1, STOLB1, Mass1); // Генерируем рандомный массив DisplayMass(STROK1, STOLB1, Mass1); // Выводим рандомный двумерный массив(первый) int razmer; razmer = STROK1 * STOLB1; bool check; cout <" Введите контрольное число 1(по строкам) или 0(по столбцам) " ; cin >> check; vector int> masiv; for (int i = 0; i STROK1; i++) { for (int j = 0; j STOLB1; j++) { masiv.push_back(Mass1[i][j]); } } system("pause"); return 0; }
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Преобразовать матрицу в вектор
создать подпрограмму преобразующую матрицу размерностью n*m в вектор соответствующей размерности
Преобразовать вектор в матрицу.
Составить только алгоритм решения задачи: Преобразовать вектор из 16 элементов в матрицу 4x4. .
Преобразовать вектор в матрицу
Здравствуйте, возникла следующая проблема: есть три вектора одинакового размера B, theta и Ur. B.
Вектор с неизвестным количеством чисел преобразовать в другой вектор, где числа будут стоять по возрастанию
Вектор с неизвестным количеством чисел нужно превратить в другой вектор, где числа будут стоять по.
7428 / 5021 / 2891
Регистрация: 18.12.2017
Сообщений: 15,692
Сообщение было отмечено Memorandym как решение
Решение
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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
#include #include #include #include #include using namespace std; void Random (int** a, int n, int m) { for (int i = 0; i n; i++) for (int j = 0; j m; j++) a[i][j]=rand()%50 - 110; } void Display (int** a, int n, int m) { for (int i = 0; i n; i++) { for (int j = 0; j m; j++) cout ( 4) [i][j] <" " ; cout <"\n"; } } int main() { srand((int)time(0)); int n, m; cout <"n="; cin >> n; cout <"m="; cin >> m; int** a = new int* [n]; for (int i = 0; i n; i++) a[i] = new int[m]; vector int> v; Random(a,n,m); cout <"Matrix:\n"; Display(a,n,m); int check; cout <"Make a choice: 0 or 1: "; cin >> check; if(check) { for (int i = 0; i n; i++) for (int j = 0; j m; j++) v.push_back(a[i][j]); } else { for (int j = 0; j m; j++) for (int i = 0; i n; i++) v.push_back(a[i][j]); } cout <"Vector:\n"; for(int e : v) cout <" "; cout <"\n"; system("pause"); return 0; }
числа по условию целые ? какому промежутку должны принадлежать числа ?
Сообщение от Memorandym
Как преобразовать массив vector в матрицу vector?
А как сделать наоборот?
Приветствуется хороший вариант с точки зрения производительности, потому что работаю с матрицами большого размера.
Отслеживать
задан 25 мая 2020 в 13:23
25 1 1 серебряный знак 6 6 бронзовых знаков
для представления матрицы, использование вектора, не самое оптимальное решение.
25 мая 2020 в 15:44
@ARHovsepyan, да, сейчас я в курсе, но когда начинал реализовывать свою задачу, думал, раз уж пишу на с++, то и писать надо в стиле с++, а не си
25 мая 2020 в 16:30
а я и не говорю про стиль си. Есть std::array, а std::valarray еще лучше
25 мая 2020 в 17:44
@ARHovsepyan, чем они лучше? Я думал, вы говорите про производительность
25 мая 2020 в 18:04
да, std::valarray например может представить любые свои срезы и имеет много полезных других функциональностей, которые избавят еще и от лишнеггоо кода, кроме того ничего не нужно копировать
Линейные преобразования для «чайников»
На двух ближайших уроках я вкратце расскажу вам ещё об одном разделе высшей алгебры, который касается линейных преобразований… и тут сразу, заметьте, напрашивается добавить «преобразований чего-то». Тема обширная, тема интересная, и моя скромная задача состоит в том, чтобы в доступной форме донести до читателя её основы. В этой связи статья будет посвящена не только абстрактным алгебраическим вопросам, но и наполнена богатым геометрическим содержанием. Кроме того, сегодня мы обобщим такое важное понятие как вектор, имеющий к сему содержанию лишь частное отношение.
Есть ли среди вас начинающие изучать высшую математику? …хотя, чего тут спрашивать, конечно же, есть… – не смогли ведь пройти мимо заголовка! …Ну вот вы мне и попались, голубчики =) Для эффективного изучения материала нужно знать основы алгебры, аналитической геометрии, а также уметь выполнять действия с матрицами. На самом деле всё довольно просто, но если у вас возникнут вопросы (или уже встретился какой-то непонятный термин), то, пожалуйста, воспользуйтесь ссылками.
Обобщение понятия вектора. Векторное пространство
Ожидание казни хуже самой казни и поэтому лучше сразу почувствовать леденящий холодок настоящей алгебры =) Начнём с обещанного разбора полётов, а именно с понятия вектора. Давайте вспомним, что мы о нём знаем. Палочка со стрелочкой, знакомая ещё из школы. В высшей математике эта палочка «поднялась» до свободного вектора плоскости и пространства. Хорошо…. Далее слово «вектор» встретилось нам в ходе изучения матриц. Так, например, матрицу «один на два» мы называем вектором-строкой, а матрицу «три на один» – вектором-столбцом. Это векторы? Да, это векторы! Причём эти векторы сами по себе не имеют никакого отношения к геометрии. В своих статьях по алгебре я неоднократно оговаривался, что «данный вектор нужно понимать в алгебраическом смысле» и на уроке о ранге матрицы привёл краткую теоретическую справку по этому поводу: вектор – это упорядоченный набор чисел (обычно действительных)… и далее по тексту. А вот это уже более близко к истине: здесь, скажем, двумерный вектор понимается именно как упорядоченная пара чисел, которую, в частности можно интерпретировать, как координаты геометрического вектора. Или как решение системы линейных уравнений (см., например, статью об однородных системах). Или ещё как-нибудь.
Но и это частность! На самом деле в определённом контексте векторами являются матрицы, многочлены, функции и т.д. …и даже наши «обычные» действительные числа! А почему нет? Пожалуйста: множество векторов (никаких геометрических ассоциаций!), имеющих в наборе одно действительное число .
Так что же такое вектор? Что объединяет все эти случаи?
Предположим, что для всех элементов некоторого множества определены операции их сложения и умножения на скаляр , причём результаты этих операций (полученные элементы) тоже принадлежат данному множеству. Если при этом выполнены следующие восемь аксиом (см. по ссылке), то рассматриваемые элементы называются векторами (никаких ассоциаций!!), а всё их множество – векторным или линейным пространством
Обратите внимание на обозначения: абстрактный вектор чаще всего записывают жирной буквой – чтобы не возникало путаницы с различными «конкретными» векторами. Для векторного пространства стандартно используется буква .
Итак, какие бы «частные семейства» векторов мы ни взяли (геометрические, матричные, строковые и т.д.) – для каждой из этих алгебраических структур справедливо следующее:
– все элементы рассматриваемого множества можно складывать и умножать на скаляр (далее работаем с действительными числами), причём результаты этих операций тоже принадлежат данному множеству.
– для операций сложения и умножения выполнены аксиомы векторного пространства.
И здесь следует отметить, что термины «сложение» и «умножение» тоже носят общий символический смысл – в зависимости от природы того или иного векторного пространства эти операции определяются по-разному.
В курсе линейной алгебры проводится скрупулезная проверка различных множеств на предмет того, образуют ли они линейное пространство. И если удастся определить сложение и умножение на скаляр медведей на велосипеде и доказать для данных операций выполнение указанных 8 аксиом, то векторами будут и эти объекты =)
А теперь к основной теме урока:
Что такое линейное преобразование?
Если в линейном пространстве каждому вектору по некоторому правилу поставлен в соответствие вектор этого же пространства, то говорят, что в данном пространстве задана векторная функция векторного аргумента: (во избежание разночтений с другими математическими записями скобки нередко опускают: ).
Данная функция называется линейным преобразованием, если для неё выполнены пресловутые свойства линейности, с которыми вы ещё не раз столкнётесь в ходе изучения высшей математики:
,
, где – произвольные векторы данного пространства, а – действительное число.
Линейное преобразование также называют линейным оператором.
Следующий пример оброс не только бородой, но и волосами на спине: рассмотрим линейное пространство векторов-строк вида , в котором определены операция сложения и умножения вектора на число .
Никакой геометрии. – то, что я сформулировал в статье о ранге матрицы, называется
-мерным арифметическим векторным пространством, и сейчас мы имеем дело с частным арифметическим пространством размерности 2.
Докажем, что функция векторного аргумента является линейным преобразованием. Доказательство состоит в проверке свойств линейности:
Здесь мы воспользовались дистрибутивностью умножения на скаляр относительно сложения векторов (одна из аксиом векторного пространства)
А здесь – аксиомой ассоциативности умножения на скаляр, коммутативностью (перестановочностью) самих действительных чисел (аксиома поля) и снова той же аксиомой ассоциативности.
Читателям, которым предстоит изучать теорию высшей алгебры, следует привыкнуть к таким доказательствам. Беспощадно формально, но, как сказали бы древние римляне, Dura algebra sed algebra =)
Таким образом, – это линейное преобразование.
Разумеется, далеко не всякий оператор является линейным, и в других источниках информации можно найти массу примеров, как на удачную, так и неудачную проверку различных преобразований на линейность. И со строгостью доказательств на практике обычно всё попроще, …хотя, тут от преподавателя зависит – и по-хорошему, в математике ещё нужно обосновать, почему «ноль не равен единице».
Ну а сейчас мы спускаемся на землю грешную и переходим к геометрическому смыслу линейных преобразований. Пусть – это множество геометрических векторов плоскости. Для простоты рассмотрим привычный ортонормированный базис и прямоугольную систему координат .
Если задан какой-либо базис, то линейное преобразование удобнее представить в матричном виде. Как записать оператор в виде матрицы? На этот счёт существует общее правило: чтобы записать матрицу линейного преобразования в -мерном базисе нужно последовательно и строго по порядку применять данный оператор к базисным векторам, а результаты заносить в столбцы матрицы (слева направо).
Наш случай элементарен: сначала применим линейное преобразование к первому базисному вектору: и запишем результат в 1-й столбец: . Затем «обрабатываем» 2-й орт: и заносим полученные координаты во 2-й столбец:
– матрица линейного преобразования в базисе .
Протестируем построенную матрицу с помощью вектора . Для этого «уложим» его координаты в вектор-столбец и выполним следующее матричное умножение:
– в результате «на выходе» получены координаты вектора , что и требовалось проверить.
Поскольку любая точка плоскости однозначно определяется её радиус-вектором ( – начало координат), то матрица преобразования, по существу, применима и к координатам точек. И далее для простоты я буду говорить, что, например, точка :
– перешла в точку .
Наверное, все уже поняли, что делает этот оператор. Мысленно представьте произвольный треугольник на плоскости. После применения рассматриваемого линейного преобразования данный треугольник увеличится в два раза. Такие треугольники (имеющие равные соответствующие углы), как многие помнят из школы, называются подобными. Да и сам оператор носит такое же название:
Линейное преобразование называется преобразованием подобия или гомотетией, причём:
– если , то речь идёт об однородном растяжении (увеличении) объектов плоскости в раз;
– если – то о сжатии (уменьшении) в раз;
– если , то преобразование тождественно (ничего не меняет).
И если меньше нуля, то дополнительно к растяжению/сжатию/неизменности векторы меняют направление, а точки отображаются симметрично относительно начала координат.
При имеет место так называемое нулевое преобразование.
Следует отметить, что на прикладном и «любительском» уровне линейные преобразования чаще всего как раз и ассоциируются именно с геометрическими преобразованиями. Рассмотрим ещё несколько популярных примеров по теме, и, чтобы разнообразить серые геометрические будни, мысленно нарисуем на координатной плоскости кошачью морду. Можно и не мысленно =)
…Представили? Нарисовали? Отлично!
Преобразование растягивает объекты плоскости по направлению вектора (горизонтали) в 2 раза, после чего кот Леопольд радует нас своей широкой-широкой улыбкой!
…хотя у многих, наверное, не кот… да и не факт, что с улыбкой… – как говорится, у каждого в голове своя морда =)
И в самом деле, преобразуем точку :
– «иксовая» координата увеличилась в 2 раза, а «игрековая» – не изменилась.
Преобразование сожмёт кота по горизонтали в 3 раза. Желающие могут по ходу объяснений приготовить мясорубку тестировать для рассматриваемых матриц различные векторы и точки. Читателям с маломальскими навыками матричного умножения не составит особого труда делать это устно.
Преобразование вытянет все ненулевые объекты плоскости по направлению вектора (по вертикали) в полтора раза. Это будет очень удивлённый кот.
Дополнительные знаки «минус» приведут к зеркальному отображению объектов (относительно оси ординат либо начала координат).
– образно говоря, «челюсть налево, лоб направо». Это преобразование называется перекосом или сдвигом плоскости в направлении вектора (в данном случае).
– данное преобразование поворачивает векторы системы против часовой стрелки на угол .
И, наконец, венчает все эти метаморфозы ещё один лохматый пример:
преобразование переводит единичный квадрат с вершинами в параллелограмм с вершинами .
А тут уж дело случая – может получиться, как комната смеха, так и комната страха – зависит от того или иного преобразования.
Из вышесказанного нетрудно понять, что в базисе любой квадратной матрице «два на два» соответствует некоторое линейное преобразование, и наоборот любому линейному преобразованию соответствует своя матрица «два на два». И данный факт справедлив вообще для любого аффинного базиса , причём одно и то же линейное преобразование в разных базисах будет иметь в общем случае разные матрицы (что следует из самого принципа формирования этих матриц).
По аналогичной схеме можно рассмотреть векторы нашего трёхмерного пространства, с тем отличием, что преобразований будет больше, преобразования будут веселее. И, разумеется, линейные преобразования «работают» в векторных пространствах бОльшей размерности, однако там они уже далеки от геометрии.
В некотором аффинном базисе задано линейное преобразование . Найти образ точки . Используя обратное преобразование, выполнить проверку.
Решение: потихоньку нагружаю вас терминологией: образ – это то, что должно получиться в результате преобразования. В данном случае, очевидно, должна получиться некоторая точка . Исходная точка , соответственно, является прообразом.
! Надеюсь, все понимают, что штрихи в данном контексте не имеют никакого отношения к производным.
Образы векторов и точек мы уже неоднократно находили выше:
Таким образом, линейное преобразование перевело точку в точку .
Теперь найдём матрицу обратного преобразования, которое превращает образы векторов и точек обратно в их прообразы. Для этого запишем простейшее матричное уравнение (где – координатный столбец прообразов, а – образов) и для его разрешения относительно умножим обе части на обратную матрицу слева:
«Развернём» уравнение в привычном порядке:
Обратную матрицу можно найти через алгебраические дополнения либо методом Гаусса-Жордана, но здесь я рекомендую первый способ, поскольку он позволит быстро выяснить, а существует ли матрица вообще.
Заряжаем стандартный алгоритм. Сначала вычислим определитель:
, значит, матрица линейного преобразования обратима. С содержательной точки зрения это означает, что обратное линейное преобразование существует и задаётся оно в точности матрицей .
Здесь и далее я не буду подробно расписывать процесс нахождения обратной матрицы. Итак, в результате стандартных действий находим и выясняем, во что превратится найденная точка :
– получены координаты исходной точки , что и требовалось проверить.
Ответ:
Следует отметить, что обратное преобразование осуществимо далеко не всегда. Так бывает, например, при проектировании векторов на координатные оси или при тривиальном нулевом преобразовании. В таких случаях определитель матрицы прямого оператора равен нулю и обратной матрицы не существует.
Творческая задача для самостоятельного решения:
В результате применения оператора в некотором базисе получены образы . Найти прообразы данных векторов.
Краткое решение и ответ в конце урока. Обратите внимание, что формулировка данной задачи вовсе не утверждает, что речь идёт именно о геометрических векторах. Как оно, собственно, и бывает в большинстве типовых заданий, которые для полного комфорта оформляются малопонятной клинописью:
Даны два линейных преобразования:
Спокойно, спокойно, сейчас во всём разберёмся…
Средствами матричного исчисления найти преобразование, выражающее через .
Решение: и как раз первое, что здесь можно сказать – это отсутствие информации о характере векторов . Известно только, что они заданы в некотором базисе, ибо матрица линейного преобразования НЕ МОЖЕТ существовать без базиса (т.к. она порождается базисными векторами). Сам базис нам тоже не известен, но для решения задачи информация о нём и не нужна.
Тем не менее, для пущего понимания предположим, что все дела происходят в обычной декартовой системе координат . И, чтобы не прослыть живодёром, я рассмотрю 3D-модель кота Леопольда =)
Запишем матрицу левого преобразования: . Данное преобразование переводит векторы в образы . Систему, кстати, удобнее переписать в виде уже знакомого матричного уравнения:
или, если короче: .
Данный оператор определённым образом преобразует все векторы (а значит и точки) пространства. Геометрически это означает, что кот Леопольд, оказывается, например, сплющенным (не знаю, не проверял).
Теперь ВНИМАТЕЛЬНО записываем матрицу второго преобразования: (здесь существует немалый риск поставить ноль не там где нужно). Данное преобразование переводит векторы в образы , в результате чего «сплющенный кот», скажем, растягивается вдоль какой-нибудь плоскости.
Аналогично – запишем преобразование в матричном виде:
или:
По условию, нужно найти результирующее (композиционное) преобразование, которое нам сразу даст «сплющенного и растянутого Леопольда». Подставим в уравнение :
Всё оказалось до безобразия просто – главное, матрицы перемножить в правильном порядке. Вычислим матрицу композиционного преобразования:
Если вы позабыли само матричное умножение, обратитесь к статье Свойства матричных операций, где я подробнейшим образом разобрал этот случай.
Осуществим матричное умножение в правой части:
Две матрицы равны, если равны их соответствующие элементы. Таким образом, итоговое преобразование, выражающее координаты векторов-образов через координаты векторов-прообразов, запишется в виде следующей системы:
Выполним проверку. Для этого подставим уравнения , левой системы (см. условие) в правую часть каждого уравнения 2-й системы:
Что и требовалось проверить.
Этот способ, кстати, можно было бы рискнуть взять и за основой, если бы итоговое преобразование не требовалось найти средствами матричного исчисления
Ответ:
Как пользоваться этой системой? Очень просто – берём например, вектор и тупо подставляем его координаты:
– таким образом, он превратился в вектор .
Более академичный способ – использование матричного уравнения .
Энтузиасты могут смоделировать деформацию кота Леопольда с помощью специализированного программного обеспечения и отправить мне картинку, которую я обязательно опубликую. Мне и самому интересно, что же там с ним на самом деле произошло =)
В том случае, если нужно «вернуть кота к первоначальному виду», следует найти обратную матрицу результирующего преобразования и воспользоваться уравнением .
«Плоский» случай для самостоятельного решения:
Даны два линейных преобразования в некотором базисе:
Найти образ вектора двумя способами:
1) путём последовательного применения преобразований и ;
2) с помощью композиционного оператора, выражающего координаты через .
Был велик соблазн вас запутать, но всё же я воздержался. Однако на практике нужно иметь в виду следующее:
– системы запросто могут быть переставлены местами;
– условие задачи может требовать выразить через и тогда потребуется дополнительно находить обратную матрицу результирующего преобразования;
В этой связи очень важно РАЗОБРАТЬСЯ в сути задания, и если что-то осталось недопонятым, обязательно перечитайте объяснения ещё раз – не лишним будет даже порисовать.
А сейчас переходим к вопросу, который назревал в течение всего урока:
Матрица линейного преобразования в различных базисах
В начале статьи мы выяснили происхождение матрицы линейного преобразования на примере оператора и ортонормированного базиса . Напоминаю: для того, чтобы записать матрицу линейного оператора в каком-либо базисе, нужно строго по порядку подействовать этим оператором на базисные векторы и полученные координаты занести в столбцы матрицы (слева направо). В результате «обработки» векторов нами была составлена матрица данного линейного преобразования в данном базисе.
Но ведь на «школьном» базисе свет клином не сошёлся! Ничто нам не мешает перейти к произвольному базису , где это же линейное преобразование, скорее всего, выразится другой матрицей. Но сам-то оператор не изменится – он будет по-прежнему увеличивать векторы плоскости в 2 раза. Таким образом, справедливо следующее утверждение, которое по существу уже было озвучено ранее:
Одно и то же линейное преобразование в разных базисах в общем случае имеет РАЗНЫЕ матрицы.
И следующие две задачи как раз посвящены этому вопросу:
В базисе задано линейное преобразование . Найти матрицу данного преобразования в базисе , если
Решение: в условии задачи опять ничего не сказано о характере векторов, но для наглядности предположим, что данные базисы являются аффинным базисами плоскости. Как заметили внимательные читатели, предложенное линейное преобразование вытягивает все ненулевые объекты плоскости в направлении координатного вектора в 2 раза, и наша задача состоит в том, чтобы записать матрицу этого же преобразования в новом базисе . Для решения этого вопроса существует специальная формула:
, где – матрица перехода от базиса к базису .
Составляется она просто: берём вектор и «укладываем» коэффициенты его разложения (внимание!) в 1-й столбец матрицы: . Затем рассматриваем вектор и заносим коэффициенты его разложения во 2-й столбец:
Внимание! Базисные векторы, в данном случае векторы , следует «перебирать» строго по порядку!
Остальное дело техники. Находим обратную матрицу:
И, наконец, матрицу рассматриваемого линейного преобразования в новом базисе:
Пользуясь ассоциативностью матричного умножения, можно было сначала найти , а затем , но, в общем-то, это уже несущественные детали.
Ответ:
Ещё раз повторим смысл задания: само линейное преобразование не поменялось – оно по-прежнему растягивает ненулевые объекты плоскости вдоль «старого» вектора в 2 раза и не деформирует их в направлении вектора , но в новом базисе матрица данного преобразования уже другая. И вы видите её в ответе.
Очевидно, что найденная матрица задаёт обратное преобразование, т. е. выражает старые базисные векторы через новые. Аккуратно «транспонируем» столбцы матрицы в коэффициенты соответствующей системы: . Таким образом, при желании всегда можно вернуться к старому базису: . Обратная формула следует из простых логических соображений, но её можно вывести и формально – разрешив матричное уравнение относительно .
Иногда матрицы и называют подобными.
Какой базис удобнее? Ну конечно, исходный , где матрица преобразования имеет вид , и сразу виднА характерная особенность этого преобразования. А что это за такой интересный базис, и как отыскать эту матрицу, вы узнаете на уроке о собственных векторах.
Трехмерный случай для самостоятельного решения:
Найти матрицу линейного преобразования в базисе , где , , , если она задана в базисе .
Пожалуйста, не путайте это задание с Примером № 3 – по первой оглядке здесь тоже какие-то похожие равенства, тоже штрихи, но смысл совершено другой. Если там шла речь о двух линейных преобразованиях и взаимосвязи координат векторов, то здесь – об одном и том же преобразовании и взаимосвязи векторов двух базисов.
Краткое решение и ответ совсем рядом.
И в завершении урока вернёмся к двумерному случаю и матрицам «два на два». Казалось бы, с геометрической точки зрения эти матрицы задают линейные преобразования плоскости и разговор закончен. Но на самом деле это не так – у матриц есть и другой геометрический смысл, с которым можно ознакомиться на уроке Переход к новому базису. Сначала я хотел включить пару соответствующих примеров в эту статью, но чуть позже решил, что материал будет уместнее опубликовать в разделе аналитической геометрии.
Ну и конечно, не забываем, что рассматриваемый материал касается не только геометрических векторов плоскости и пространства, но и вообще любых векторов.
Спасибо за внимание, жду вас на следующем, не менее увлекательном уроке о собственных числах и собственных векторах линейного преобразования.
Решения и ответы:
Пример 2: Решение: найдём матрицу обратного преобразования:
(см. урок. Как найти обратную матрицу)
Найдём прообразы:
Ответ:
Пример 4: Решение: запишем матрицы преобразований:
1) Последовательно применим к вектору преобразования и :
2) Найдём результирующее преобразование:
Таким образом:
Ответ: (нулевой вектор)
Пример 6: Решение: Решение: Используем формулу . Запишем матрицу перехода к новому базису:
Найдём матрицу обратного перехода:
Вычислим:
Ответ:
Автор: Емелин Александр
(Переход на главную страницу)
Zaochnik.com – профессиональная помощь студентам,
cкидкa 15% на первый зaкaз, при оформлении введите прoмoкoд: 5530-hihi5
© Copyright mathprofi.ru, Александр Емелин, 2010-2023. Копирование материалов сайта запрещено