Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2010, 10:28   #1
Estimate
 
Регистрация: 05.06.2010
Сообщений: 8
По умолчанию След и Ранг Матрицы

Здравствуйте уважаемые форумчане.

Возникла пара вопросов следующего содержания:

1) Вычисление следа матрицы в Excel. След матрицы - это сумма всех диагональных элементов матрицы. Необходимо записать в ячейку формулу, которая будет считать след для больших матриц (100 на 100, к примеру).

2) Вычисление ранга матрицы. Ранг - это максимальное число линейно-независимых строк\столбцов.

Первое пытался сделать через СУММЕСЛИ, но так и не смог придумать, как задать условие равенства номера строки и столбца для значений матрицы.

Заранее спасибо!
Estimate вне форума Ответить с цитированием
Старый 05.06.2010, 10:54   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

след, если я правильно понял определение:
=сумм(матрица*(строка(матрица)=стол бец(матрица)))
где
матрица - ссылка на Вашу матрицу, которая должна быть записана, начиная с А1, В2, С3 или любой другой ячеки по главной диагонали листа.
это формула массива: F2, Ctrl+Shift+Enter
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 05.06.2010, 11:28   #3
Estimate
 
Регистрация: 05.06.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
след, если я правильно понял определение:
=сумм(матрица*(строка(матрица)=стол бец(матрица)))
где
матрица - ссылка на Вашу матрицу, которая должна быть записана, начиная с А1, В2, С3 или любой другой ячеки по главной диагонали листа.
это формула массива: F2, Ctrl+Shift+Enter
К примеру, есть матрица 3 на 3, все нули, только по диагонали от А1 до C3 единицы. След должен давать значение A1+B2+C3=3.

Возможно я чего-то не понял в вашей формуле, для этой же матрицы делаю так: СУММ(A1:C3*(СТРОКА(A1:C3)=СТОЛБЕЦ(A 1:C3)), выдает ошибку.

Пробовал Вашу формулу видоизменять, полагая, что возможно Вы допустили опечатку, но так и не считает.
Estimate вне форума Ответить с цитированием
Старый 05.06.2010, 13:27   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Всё считает как надо:

Код:
  Ячейка: B10     Формула массива  (стиль A1):   =СУММ(матрица*(СТРОКА(матрица)=СТОЛБЕЦ(матрица)))
                  Формула массива  (стиль R1C1): =СУММ(матрица*(СТРОКА(матрица)=СТОЛБЕЦ(матрица)))

  Ячейка: B11     Формула  (стиль A1):   =СУММПРОИЗВ(матрица*(СТРОКА(матрица)=СТОЛБЕЦ(матрица)))
                  Формула  (стиль R1C1): =СУММПРОИЗВ(матрица*(СТРОКА(матрица)=СТОЛБЕЦ(матрица)))

  Ячейка: E10     Формула массива  (стиль A1):   =СУММ(A1:H8*(СТРОКА(A1:H8)=СТОЛБЕЦ(A1:H8)))
                  Формула массива  (стиль R1C1): =СУММ(R[-9]C[-4]:R[-2]C[3]*(СТРОКА(R[-9]C[-4]:R[-2]C[3])=СТОЛБЕЦ(R[-9]C[-4]:R[-2]C[3])))

  Ячейка: E11     Формула  (стиль A1):   =СУММПРОИЗВ(A1:H8*(СТРОКА(A1:H8)=СТОЛБЕЦ(A1:H8)))
                  Формула  (стиль R1C1): =СУММПРОИЗВ(R[-10]C[-4]:R[-3]C[3]*(СТРОКА(R[-10]C[-4]:R[-3]C[3])=СТОЛБЕЦ(R[-10]C[-4]:R[-3]C[3])))

Внимание: ввод формул массива завершается нажатием CTRL+SHIFT+ENTER вместо ENTER
Посмотрите формулы в зеленых ячейказх:

EducatedFool вне форума Ответить с цитированием
Старый 06.06.2010, 16:59   #5
Estimate
 
Регистрация: 05.06.2010
Сообщений: 8
По умолчанию

Ох, большое Вам спасибо, все получилось.
Estimate вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ранг матрицы и рекурсия M1ham Общие вопросы C/C++ 4 23.01.2011 22:29
Сумма при заданных условиях + Ранг Acro Microsoft Office Excel 2 14.04.2009 00:03
След матрицы NauDS Помощь студентам 5 11.03.2009 15:06
След матрицы r00tus Помощь студентам 2 25.02.2009 14:43
Показывать ранг процесса в Диспетчере Задач как системный BanDit Win Api 1 30.07.2007 15:02