Извлечение корня из матрицы

Автор темы SPerec 
ОбъявленияПоследний пост
ОбъявлениеОткрыта свободная публикация вакансий для математиков26.09.2019 16:34
ОбъявлениеСтуденты и преподаватели мехмата МГУ могут бесплатно получать лицензию на Wolfram Mathematica25.11.2020 00:55
ОбъявлениеАктуарий в PPF Life Insurance (Junior)25.03.2021 21:35
25.06.2004 09:59
Извлечение корня из матрицы
Подскажите проcтой алгоритм возведения матрицы в степень 1/2.
Или как это делается в пакете Stattistica
25.06.2004 10:12
Как вариант -- приведение к ЖНФ
Для вычисления какой-либо фукнции f (например, аналитической в окрестности 1) от матрицы ее (матрицу) обычно приводят к жордановой нормальной форме, а потом применяют f к каждой клетке отдельно. Клетка имеет вид E + \lambda I, где I -- матрица, у которой единицы стоят над главной диагональю. Поскольку I нильпотентна, то достаточно знать некоторое количество начальных коэффициентов Тейлора для f в точке 1. По крайней мере этот способ стандартно изучается на 2 курсе.

Насчет Statistica, правда, ничего определенного сказать не могу.
25.06.2004 12:31
В продолжение темы
Цитата

Maxim A. Babenko писал(а) :
Для вычисления какой-либо фукнции f (например, аналитической в окрестности 1) от матрицы ее (матрицу) обычно приводят к жордановой нормальной форме, а потом применяют f к каждой клетке отдельно. Клетка имеет вид E + \lambda I, где I -- матрица, у которой единицы стоят над главной диагональю. Поскольку I нильпотентна, то достаточно знать некоторое количество начальных коэффициентов Тейлора для f в точке 1. По крайней мере этот способ стандартно изучается на 2 курсе.

Ну и попробуйте Вашим методом найти значение аналитической в окрестности 1 функции f(z)=1/z от матрицы \begin{pmatrix}1&1\\1&1\end{pmatrix} :) На самом деле функция должна быть аналитична в окрестности спектра матрицы, а отнюдь не какой-то там "точки 1".

АлгориТма решения задачи в природе не имеется уже потому, что нет в русском языке слова "алгоритм" (как нет слов "логаритм" и "аритметика" ;)). Алгорифмов же имеется много (через ЖНФ, через интеграл Рисса, разного рода последовательные приближения и т.д.) Какой из них реализован в Statistica - чёрт его знает...

С уважением,
Гастрит

25.06.2004 13:13
Лингвист
Цитата

Гастрит писал(а) :
нет в русском языке слова "алгоритм" (как нет слов "логаритм" и "аритметика" ;))
и мафематик...

25.06.2004 14:15
Спасибо большое за КОНКРЕТНЫЙ ответ
Гастрит, я весьма уважительно отношусь к вашим высказываниям в темах типа "что такое математика...". И поддерживаю ваши идеи конструктивизма.

Но здесь я задал конкретный вопрос. А вы сомовыражением занимаетесь, наезжая сразу на всех и вся. По делу так ничего и не сказали: о существовании метода ЖНФ, Риса и т.д. я и без вас знаю.

Еще раз: мне нужен алгоритм (Гастрит может посмотреть в словаре русского языка) возведения матрицы в степень 1/2, который можно просто запрограммировать. Если кто-то знает, как это можно сделать в STATISTICA (именно последовательность кнопок, а не теоретические основы), то буду очень презнателен.

Гастрит, вы упали в моих глазах: это не коструктивизм, а словоблудие.
25.06.2004 16:03
Пожалуйста за КОНКРЕТНЫЙ вопрос
Цитата

SPerec писал(а) :
Еще раз: мне нужен алгоритм (Гастрит может посмотреть в словаре русского языка) возведения матрицы в степень 1/2, который можно просто запрограммировать. Если кто-то знает, как это можно сделать в STATISTICA (именно последовательность кнопок, а не теоретические основы), то буду очень презнателен.

Гастрит, вы упали в моих глазах: это не коструктивизм, а словоблудие.


Каков вопрос - таков ответ. Какая у Вас матрица? Если симметрическая и положительная - это одно дело. Если нет - совсем другое.

SPerec, ну как можно требовать последовательность кнопок, если дана не постановка задачи, а только её контуры?!

С уважением,
Гастрит

25.06.2004 16:14
Привет Базилию Тёдоровичу
Цитата

Sonte писал(а) :
и мафематик...

Думаете, поймали? :) "Математика" - это единственное известное мне исключение из правила, подтверждаемого не только логарифмами и арифметикой, но и другими словами, пришедшими в русский язык через Византию. Математика через "ф" если когда и писалась, то уж тому не одно столетие минуло. А вот удастся ли Вам найти "алгоритмы" в книгах хотя бы семидесятилетней давности? Вплоть до пятидесятых годов XX века каноническим написанием было именно "алгорифм".

Кстати, грамотные люди так пишут и до сих пор. И отнюдь не только в школе Маркова.

С уважением,
Гастрит

25.06.2004 16:16
Конкретизация
Я хочу запрограммировать некий алгоритм фильтрации и для промежуточных вычислений мне требуется возведение матрицу в степень -1/2 .

Пусть матрица будет симметрическая и положительноопределенная. Чего еще вам не хватает?

Если меня спроашивают "Как в Ворде проверяется орфография?", то ответ будет "F7", а не встречный вопрос "Какое слово надо проверить?".
25.06.2004 16:24
al
риТм
25.06.2004 16:45
Она же
Цитата

SPerec писал(а) :
Я хочу запрограммировать некий алгоритм фильтрации и для промежуточных вычислений мне требуется возведение матрицу в степень -1/2 .

Пусть матрица будет симметрическая и положительноопределенная. Чего еще вам не хватает?

Если меня спроашивают "Как в Ворде проверяется орфография?", то ответ будет "F7", а не встречный вопрос "Какое слово надо проверить?".


Не хватает мне того, что у аналитической функции f(z)=\sqrt{z} имеется точка ветвления при z=0. Соответственно, корней у матрицы, вообще говоря, много. Но по смыслу задачи иногда понятно, что нужен не корень вообще, а некий конкретный корень (например, арифметический). Что нужно именно Вам - не знаю, ибо не обладаю телепатическими способностями. Это во-первых.

Во-вторых, построение функционального исчисления для симметрических и несимметрических матриц - две большие разницы. Первое строится проще, однако алгорифмы, замечательно работающие на симметрических матрицах, могут со свистом слетать на несимметрических. Это два.

А теперь по существу. Если матрица не слишком большая, то, вероятно, оптимальным действительно будет путь, предложенный Babenko. А именно:
Шаг 1: Диагонализируем исходную матрицу, то есть находим собственный базис из единичных векторов e_k, k=1,...,n, и соответствующие собственные значения l_k. Координаты векторов e_k в исходном базисе обозначим через e_kj.
Шаг 2: Заменяем собственные значения на \sqrt{l_k}, не трогая базис, и возвращаемся в исходные координаты. Получаем матрицу c элементами a_{ij}=\sum_{k=1}^n e_ki \sqrt{l_k} \overline{e_kj}. Она и будет корнем.

Если матрица не симметрическая, то слететь может уже шаг 1, так как могут полезть жордановы клетки (о чём Babenko тоже упоминал). Из них корень извлекается сложнее (надо вытягивать первые члены аналитического разложения корня в окрестности отвечающего клетке СЗ и так далее). Кроме того, в общем случае надо как-то определяться, какой из двух корней СЗ мы будем использовать для данной клетки.

С уважением,
Гастрит

P.S.: А что Вы отвечаете, когда Вас спрашивают "А как здесь проверяется орфография?", не уточняя при этом, что это за "здесь" - M$ Word, Notepad, или vi в Linux-системе без русского словаря? ;)

25.06.2004 16:47
???
Не понял :( К чему Вы это?

26.06.2004 00:19
Anonim
Что такое алгорифм?
26.06.2004 00:25
Anonim
У вас описка.
Правильно
lambda*E + I
26.06.2004 02:24
egor
как строить жорданов базис?
Интересно, какие известны методы построения жорданового базиса (в несамосопряжённом случае). Я знаю, фактически, только один: итерировать матрицу B=(lambda E-A), где E - единичная матрица, пока ранг не перестанет понижаться; найти фундаментальную систему решений соответствующего уравнения B^k=0; пусть это u_1,...,u_m; протянуть от векторов u_j цепочки (запись такая, будто цепочки тянутся влево):
B^{k-1}u_j, B^{k-2}u_j, ..., B^2 u_j, B u_j, u_j,
затем делать элементарные преобразования цепочек, сдвигая влево при получении на первом месте нулевых векторов. Остановиться, когда левые векторы цепочек станут линейно независимыми.

Кстати, каким образом в конструктивной математике обращаются с такими (неустойчивыми) понятиями, как жордановы формы и базисы? Пожалуй, лучше сначала разобраться с линейно зависимыми системами векторов и нулевыми определителями.

P. S. Ещё пара примеров, где "спорная буква" превратилась в русскую "т" (правда, перед гласной): тема (theme), теорема (theorem), термос (thermos).

26.06.2004 20:10
egor
наверное, можно и методом итераций
насколько я понял, нужен неотрицательный корень из неотрицательной матрицы

увы, сейчас нет времени вспоминать итерационную формулу, но это стандартная формула извлечения корня из числа; кажется, она есть и в задачнике Кириллова и Гвишиани (функции от операторов или т. п.)
06.07.2004 12:16
Усложнение
Как взять корень из матрицы в классе прямоугольных матриц. Т.е. решить матричное уравнение X*X^T = A, где A - матрица размера n*n (положительноопределенная и симметрицеская), а X-матрица размера n*m.
06.07.2004 15:30
:(
Цитата

SPerec писал(а) :
Как взять корень из матрицы в классе прямоугольных матриц. Т.е. решить матричное уравнение X*X^T = A, где A - матрица размера n*n (положительноопределенная и симметрицеская), а X-матрица размера n*m.

Боюсь, что никак. Попробуйте поискать "корень" матрицы 1&0\\0&1 среди матриц размера 2*1.

С уважением,
Гастрит

06.07.2004 15:54
:-)))
Допустим, что у меня такие матрицы для которых решение априори существует.
Понятно, что можно составить систему из n*m квадратичных уравнений и решать ее... При этом система может оказаться и не разрешима (как в вашем случае). Может есть какой-нибудь метод поизящнее?
07.07.2004 02:59
Anonim
Нули приписать :)
Допустим, X * Xt = A, A, X - матрицы n x n.
Матрица X ищется как корень из A (т.к. A симметрическая и положительно определённая)
Тогда X' * X't = A, где X' - матрица n x m, полученная приписыванием нулей справа.
07.07.2004 09:33
Увы =(
2Аноним: Да, вы правы, конечно \lambda E + I, отсюда заодно и необходимость раскладывать функцию в окрестности \lambda, а не 1 (как я почему-то написал).

2Гастрит: конечно, мехмат и его выпускники -- люди весьма своеобразные, с высокой самооценкой и все такое, но со стороны ваше поведение производит крайне негативное впечателние. Пренебрежительно-нравоучительный тон, которым вы так часто пользуетесь, отнюдь не делает ваши доводы более убедительными, тем более что спорить вы почему-то беретесь на пустом месте. Я понимаю, в определенном возрасте всем хочется посамовыражаться, но мы-то с вами его давно преодолели...

Извините, только зарегистрированные пользователи могут публиковать сообщения в этом форуме.

Кликните здесь, чтобы войти