Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Частичное обращение матрицы, Нужен только один элемент 
:(
    Опции темы
StranikS
Дата 1.2.2006, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 1.2.2006

Репутация: нет
Всего: 2



Я реализовал обращение матрицы методом Жордана-Гаусса. И сейчас я его использую для получения обратных матриц. Но я не всегда использую всю обращенную матрицу - очень часто мне нужно получить значение только одного элемента обр. матрицы, лежащего на главной диагонали.

Можно ли модифицировать алгоритм, тем самым сократив лишние расчеты!
PM MAIL   Вверх
zogman2
Дата 2.2.2006, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 18.1.2006

Репутация: нет
Всего: нет



Насколько я понимаю, можно попробывать так:
пусть этот элемент он последний
по формуле Крамера тебе надо считать минор/определ
- если у тебя уже есть метод Гаусса - значит ты можешь считать опредлитель -
когда ты привел матрицу к верхне-диаг виду - то определетель это просто произв диаг элементов

ну типа все - когда привел к верхне диаг виду - то последний элемент - он=1/(то что тебе нужно)

то есть реально сократили только обратный ход в Гауссе - что конечно не супер много

наверно не ясно?
(может еще и не верно smile
если что-то умное узнаешь напиши пожалуйста в форум
мне тоже интересно


PM MAIL   Вверх
StranikS
Дата 2.2.2006, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 1.2.2006

Репутация: нет
Всего: 2



Я прекрасно понял, то что ты хотел сказать, но это неподходит, т.к:
1. Мой элемент размещен на диагонали случайно и почти не бывает последним;
2. Вся модификация в твоем примере будет сводиться к установке точки выхода из Ж-Г при расчете требуемого элемента, ведь если мой элемент является первым, то обращение будет проведено полностью, что совсем не то, что мне хотелась!

Дело в том, что данную проблему я решаю применительно к расчету сопротивлений электрической схемы:
диагональная матрица сопротивлений ветвей - Z;
матрица содинений схемы замещения - М;
матрица узловых проводимостей - Yu=M*1/Z*MT;
! матрица узловых сопротивлений - Zu=Revers(Yu);//азъ есим - обращение матрицы

Но мне нужно посчитать собственное сопротивление только одного узла, т.е. Zu[x,x].
Сначала я думал, что Zu[i,i]=1/Yu[i,i], но это утверждение работало для некоторых матриц, а для некоторых нет.

Из твоих слов я понял, что это справедливо только для последнего элемента в треугольной матрице, получаемой при прямом ходе в методе Гаусса. Тогда может необходимо делать какие-нибудь перестановки перед этим, что бы мой элемент оказывался в конце, например в самой матрице соединений М. А вот этого лучше не делать!
Поэтому я и ищу модификацию именного самого алгоритма обращения.

Это сообщение отредактировал(а) StranikS - 2.2.2006, 17:39
PM MAIL   Вверх
zogman2
Дата 2.2.2006, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 18.1.2006

Репутация: нет
Всего: нет



Да точно про перестановкуу надо еще подумать...

А у тебя матрица не какого-нибудь спец вида ?


PM MAIL   Вверх
StranikS
Дата 2.2.2006, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 1.2.2006

Репутация: нет
Всего: 2



Матрица обычная - квадратная десингулированная (т.е. неособенная)
PM MAIL   Вверх
StranikS
Дата 3.2.2006, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 1.2.2006

Репутация: нет
Всего: 2



Я, тут, поэксперементировал со своим МЖГ и заметил, что окончательные значения диагональных элементов формируются только на последней итерации, а следовательно никакие модификации не позволят получить значение выбранного диагонально элемента за меньшее число итераций.

Возможно мое утверждение справедливо только для метода Жордана-Гаусса, но тот вид его реализации, которым я пользуюсь наиболее быстрый.

Вероятно, нужно идти по пути удаления заведомо ненужных узлов. Я прочитал в С.Бернас и З.Цек "Мат. модели элементов ЭЭС", что есть методика "исключения" ненужных узлов в матрице Yu таким образом, что при обращении можно получить Zu c необходимыми значениями, но обращаться теперь будет не вся матрица. Описание метода там не было smile , но отдельно было добавлено, что

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

Вот этого я непонимаю, ведь матрица Y - квадратная и симметричная (или зеркальная) относительно главной диагонали и следовательно если есть нулевые элементы, то они будут с обоих сторон диагонали?!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0655 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.